收藏 分享(赏)

51单片机入门基础教程V1.0.doc

上传人:tangtianxu1 文档编号:2902735 上传时间:2018-09-29 格式:DOC 页数:63 大小:5.63MB
下载 相关 举报
51单片机入门基础教程V1.0.doc_第1页
第1页 / 共63页
51单片机入门基础教程V1.0.doc_第2页
第2页 / 共63页
51单片机入门基础教程V1.0.doc_第3页
第3页 / 共63页
51单片机入门基础教程V1.0.doc_第4页
第4页 / 共63页
51单片机入门基础教程V1.0.doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、单片机基础教程第一节、机基础知识一、单片机概念1、单片机:在一片集成电路芯片上集成微处理器( CPU) 、存储器(ROM 和 RAM) 、I/O 接口电路,从而构成了单芯片微型计算机,即单片机( single chip Microcomputer)也叫微控制器(MCU ) 。 CPU( Central Processing Unit ):由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM( Random-Access Memory ):用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM (Read-Only Memory):用以存放程序、一些原始数

2、据和表格;I/O( input/output)口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出;T/C (timer/counter):两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;Intel 公司 1980 年推出了 MCS-51 系列单片机:集成 8 位 CPU、4K 字节 ROM、128 字节 RAM、4 个 8 位并口、1 个全双工串行口、2 个 16 位定时/计数器。寻址范围 64K,并有控制功能较强的布尔处理器。80C51 是 MCS-51 系列中的一个典型品种;其它厂商以 8051 为基核开发出的 CMOS 工艺单片机产品统称为 80C51 系列。主要

3、的 80C51 单片机Intel:80C31 、 80C51、80C32、80C52、87C52ATMEL:AT89C51、AT89C52 、AT89C2051 等;STC:89C51 、89C52、90C51、STC15wPhilips:P80C54、P80C58 、P87C54华邦:W78C54 、W78C58 、W78E54Siemens:C501-1R、C513A-H等公司的许多产品 。芯片封装简介单片机用途凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51 ,arm 等工业自动化:数

4、据采集、测控技术。智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC 卡、汽车电子设备等。通讯方面:调制解调器、程控交换技术、手机、小灵通等。武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。一、 学习 51 单片机 C 语言编程基本知识电平特性数字电路中只有两种电平:高和低单片机为 TTL 电平: 高 +5V 低 0VRS232 电平:计算机的串口 高 -12V 低+12V所以计算机与单片机之间通讯时需要加电平转换芯片 max232 等其他芯片二进制数字电路中的两种电平特性决定了它使用二进制运算十

5、进制 十六进制 二进制 十进制 十六进制 二进制0 0x0 0000 1 0x1 00012 0x2 0010 3 0x3 00114 0x4 0100 5 0x5 01016 0x6 0110 7 0x7 01118 0x8 1000 9 0x9 100110 0xA 1010 11 0xB 101112 0xC 1100 13 0xD 110114 0xE 1110 15 0xF 1111二进制逻辑运算逻辑变量 : 只有两个:“0”(假)和“1”(真) 。 逻辑“与” (逻辑乘)运算 L=AB 或者 L=AB“与”的运算法则为:00=0 , 01=0 ,10=0 , 11=1A0=0,A1

6、=A,AA=A逻辑“或” (逻辑加)运算 L=A+B 或者 L=A B“或”的运算法则为: 0+0=0 , 0+1=1 1+0=1 , 1+1=1A+0=A ,A+1=1 ,A+A=A逻辑“非”(逻辑取反)运算 L= A“非”的运算法则为: 0 = 1 ,1 = 0 A + A = 1 ,AA = 0 ,A = A “异或”其运算规则是: 01,10, C 语言基本数据类型基本语法变量定义数据类型 变量名int num1;double num2 = 2;unsigned short num3;if()语句if(条件)分支 if(条件)分支 1else分支 2if(x=0)y=y/2;elsey

7、=y*x;while()语句while(条件)循环体while(i10)s+=k;for()语句for(表达式 1;条件 2;表达式 3)循环体for(i=0;x!=y;j+)z/=3;函数定义数据类型 函数名(形参列表) 函数体int add(int num1,int num2)return num1+num2;三、80C51 引脚简介1. 电源引脚:Vcc (40 脚):电源端,接+5V 电源。Vss(Gnd) (20 脚):接地端,接 +5V 电源地端2. 外接晶体引脚:XTAL1 和 XTAL289C51 内部有一个振荡器和时钟产生电路。XTAL1(19 脚): 片内振荡电路反相放大器

8、输入 XTAL2(18 脚):片内振荡电路反相放大器输出 当采用内部时钟时,片外连接石 英晶体和微调电容,产生原始 的振荡脉冲信号。采用外部时钟时, XTAL1 输入 外部时钟脉冲信号, XTAL2 悬空.3. 控制信号引脚:RST、ALE、 PSEN、 EARST (9 脚) : 复位信号输入端,高电平有效。保持两个机器周期高电平时,完成复位操作。ALE/PROG (30 脚) :地址锁存允许输出端/编程脉冲输入端 正常时,连续输出振荡器频率的 1/6 正脉冲信号。访问片外存储器时:作为锁存 P0 口低 8 位地址的控制信号。对 8751 片内 ROM 编程写入时:作为编程脉冲输入端。 PS

9、EN (29 脚): 外部程序存储器读选通输出信号 访问片外 ROM 时, 输出负脉冲作为读 ROM 选通.常连接到片外 ROM 芯片的输出允许端( OE)作外部 ROM 的读选通信号。 EA/Vpp (31 脚): 外部程序存储器地址使能输入/编程电压输入端. 平常, 接“1”时,CPU 访问片内 4KB 的 ROM,当地址超 4KB 时,自动转向片外 ROM 中的程序。当接“0”时,CPU 只访问片外 ROM。 第 2 功能 Vpp 对 8051 编程时,编程电压输入端。4. 输入/ 输出端口引脚 P0、P1、P2、P34 个 8 位的并行输入/输出端口,共 32 个引脚。作为通用输入/

10、输出端口1 通用输入/输出端口 准双向口: 作输入时要先对锁存器写“1” 。默认启动初始化为高电平P0 端口(P0.0 P0.7,第 3932 脚):漏极开路的准双向口, 内部没有上拉电阻,为搞阻状态,不能正常输出高低电平,做 I/O 时需要接上拉电阻(10K)P1 端口(P1.0 P1.7,第 18 脚):内部带上拉电阻的准双向口,在做输入时要先 1P2 端口(P2.0 P2.7,第 2128 脚):内部带上拉电阻的准双向口,与 P1 相似P3 端口(P3.0 P3.7,第 1017 脚):内部带上拉电阻的准双向口,做 I/O 时与 P1 相似,另外有第二功能P3 口的第二功能 四、 仿真软

11、件 ProteusProteus 软件是由英国 Labcenter Electronics 公司开发的EDA(Electronic Design Automation)工具软件,已有近 20 年的历史,在全球得到了广泛应用。Proteus 软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩,是近年来备受电子设计爱好者青睐的一款新型电子线路设计与仿真软件。在 Proteus 中,从原理图设计、单片机编程、系统仿真到 PCB 设计一气呵成,真正实现了从概念到产品的完整设计。主要功能I

12、SIS智能原理图输入系统,系统设计与仿真的基本平台。ARES 高级 PCB( Printed Circuit Board)布线编辑软件VSM(虚拟仿真模式)交互式仿真 实时直观地反映电路设计的仿真结果;基于图表的仿真(ASF) 用来精确分析电路的各种性能,如频率特性、噪声特性等。工具箱中各图标按钮对应的操作如下库元件的分类1. 大类(Category)在左侧的“Category”中,共列出了以下几个大类要从库中拾取一个元件时,首先要清楚它的分类是位于哪一类,然后在打开的元件拾取对话框中,选中“Category”中相应的大类2 子类(Sub-category)选取元件所在的大类(Category

13、)后,再选子类(Sub-category),也可以直接选生产厂家(Manufacturer),这样会在元件拾取对话框中间部分的查找结果(Results)中显示符合条件的元件列表。从中找到所需的元件,双击该元件名称,元件即被拾取到对象选择器中去了。如果要继续拾取其他元件,最好使用双击元件名称的办法,对话框不会关闭。如果只选取一个元件,可以单击元件名称后单击“OK”按钮,关闭对话框。如果选取大类后,没有选取子类或生产厂家,则在元件拾取对话框中的查询结果中,会把此大类下的所有元件按元件名称首字母的升序排列出来各子类介绍1. Analog ICs模拟集成器件共有 8 个子类2Capacitors电容共

14、有 23 个分类3. CMOS 4000 seriesCMOS 4000 系列数字电路共有 16 个分类4. Connectors接头共有 8 个分类5. Data Converters数据转换器共有 4 个分类6. Debugging Tools调试工具数据共有 3 个分类7. Diodes二极管共有 8 个分类8. Inductors电感共有 3 个分类9. Laplace Primitives拉普拉斯模型共有 7 个分类10. Memory ICs存储器芯片共有 7 个分类11. Microprocessor ICs微处理器芯片共有 13 个分类12. Modelling Primiti

15、ves 建模源共有 9 个分类13. Operational Amplifiers运算放大器共有 7 个分类14.Optoelectronics光电器件共有 11 个分类15.Resistors电阻共有 11 个分类16.Simulator Primitives仿真源共有 3 个分类17.Switches and Relays开关和继电器共有 4 个分类18. Switching Devices开关器件共有 4 个分类19.Thermionic Valves热离子真空管共有 4 个分类20.Transducers传感器共有 2 个分类21.Transistors晶体管共有 8 个分类五编译软件

16、 KeilKeil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行 Keil 软件需要 Windows 操作系统。使用 C 语言编程,那么 Keil 几乎就是不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51 软件提供

17、丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C51 有以下扩展关键字 (共 21 个):_at_ alien bdata bit code compact data far idata interrupt large pdata _priority_ reentrant sbit sfr sfr16 small _task_ using xdata常用关键字说明sfr:sfr 用来定义特殊

18、功能寄存器sfr16:定义一个 16 位的特殊功能寄存器sbit:定义一个特殊功能寄存器的某一位bit:定义位变量code: 指定存储位置位于程序存储器interrupt:声明中断服务程序using:指定的寄存器组扩展函数需要包含 intrins.h 头文件常用函数_irol_、_iror_ 对 unsigned int 数循环左移、右移_lrol_、_lror_ 对 unsigned long 数循环左移、右移_crol_、_cror_对 unsigned char 数循环左移、右移六、点亮第一个 LED 灯LED 发光二极管一般压降为 1.7 V 电流 3mA 即可点亮,因此串联 1K 电

19、阻限流限压,长脚的为正极。D1 点亮 p1.0 设置为低电平,有电流流过,二极管发光D2 不亮 p1.1 默认为高电平,没有点亮流过,二极管不会发光仿真时 红色代表高电平,蓝色代表低电平,灰色代表高阻态第二节、 流水灯的实现一、80c51的最小应用系统电源+5v 3V接C6 (104 为10 *10 4 0.1uF)和C5(10uF)提高抗干扰性复位电路外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位管脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态,将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处开始正

20、常工作。当系统上电时,电容充电会给rst引脚高电平,等电容稳定后将没有电流流过.振荡电路 振荡频率越高表示单片机运行速度越快,但同时对存储器的速度和印刷电路板的要求也就越高。如同木桶原理。同时单片机性能的好坏,不仅与CPU运算速度有关,而且与存储器的速度、外设速度等都有很大关系。因此一般选用612MHZ。并联谐振电路对电容的值没有严格要求,但会影响振荡器的稳定、振荡器频率高低、起振快速性等。一般根据手册说明选定.二、下载程序到stc90c51单片机三、单片机工作的基本时序(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期,常用12MHZ,11.0592MHZ。 (2

21、) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。四、简单的软件延时使用keil查看程序执行时间延时100ms函数延时1s闪烁流水灯设计从上到下每隔500ms依次点亮P0口上拉电阻P0口是开路漏极只能输出低电平,不能正常输出高电平。所以做I/O时需要加上拉电阻每隔500ms依次点亮其中一个来回依次循环点亮一个led加减速流水灯花样流水灯利用_crol_、_cror_实现流水灯多I/O口的流水灯

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报