|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
51单片机学习随笔
版权
51单片机感觉还是很好触摸的,二十多块买了一个最小系统板,一个keil uVision4,再有一个stc-isp就基本可以先简单的玩一玩学一学了。在学习过程中我遇到了一些问题,简单的记一下随笔。
一、最小系统板(电源+单片机+晶振+复位电路)使用流程
1.安装接口驱动。
2.安装编译软件,用注册机破解。
安装好后遇到问题:Keil报错failed to execute 'd:\Keil\C51\BIN\C51.EXE'
错误是因为直接拷贝的安装目录,里面的TOOLS.INI配置文件仍然保留了他电脑的路径,与你放置Keil的实际路径不符。
解决办法:
找到自己的keil安装目录,下面有个TOOLS.INI文件。用记事本打开这个文件,找到:
[C51] PATH="d:\Keil\C51"
或类似字样,将PATH=后面的内容改为自己keil实际安装的目录,最后一个文件夹是C51。
我的keil装在了C:\Keil这个目录,那么最后类似于这样:
[C51]
PATH="C:\Keil\C51"
然后保存TOOLS.INI。重启keil即可生效(务必要重启keil)。
3.安装烧写软件,因为用的是STC公司的主控芯片所以直接用其公司的stc-isp-15xx-v6.82、
做完以上三步就可以写程序下载到单片机里使用了,不过单片机连接到电脑前最好先确认下主控芯片有没装反,记住豁口朝的位置,装反会导致主控芯片烧坏。
二、51单片机最小系统版学习顺序
认识了解51单片机----->C语言基础----->单片机最小系统组成----->使用LED灯----->使用数码管----->定时器\计数器----->使用键盘----->中断系统----->串口通讯----->IIC总线的EEPROM----->数模转换……
1.认识了解51单片机
单片机技术发展过程可分为三个主要阶段:
①单芯片微机形成阶段
1976年,Intel公司推出了MCS-48系列单片机 。8位CPU、1K字节ROM、64字节RAM、27根I/O线和1个8位定时/计数器。
特点是:存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。
②性能完善提高阶段
1980年,Intel公司推出了MCS-51系列单片机:8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。
特点是:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种 。
③微控制器化阶段
1982年,Intel推出MCS-96系列单片机。
芯片内集成:16位CPU、8K字节ROM、232字节RAM、5个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K。片上还有8路10位ADC、1路PWM输出及高速I/O部件等。
特点是:片内面向测控系统外围电路增强,使单片机可以方便灵活地用于复杂的自动测控系统及设备。
“微控制器”的称谓更能反应单片机的本质。
单片机工作的基本时序
机器周期和指令周期
(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。
(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。
(3) 机器周期: 一个机器周期包含 6 个状态周期S1~S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。
(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。
stc89C52主控芯片原理图
2.c51语言基础
C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。
单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。
(1)刚开始使用时主要需要记住两个c语言扩充定义:
①sfr:特殊功能寄存器声明。
②sbit:特殊功能位声明。
(2)常用运算符:
+ - * / (加 减 乘 除)
> >= < <= (大于 大于等于 小于 小于等于)
== != (测试等于 测试不等于)
&& || ! (逻辑与 逻辑或 逻辑非 )
>> << (位右移 位左移)
& | (按位与 按位或)
^ ~ (按位异或 按位取反)
(3)最常用的基本数据类型:
unsigned char 占8位 表示0~255
unsigned int 占16位 表示0~65535
signed char 占8位 表示-128~127
(4)c51包含的头文件
通常有:reg51.h math.h ctype.h stdio.h stdlib.h absacc.h
常用有:reg51.h (定义特殊功能寄存器和位寄存器);
math.h (定义常用数学运算);
|
|