资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,十天学会单片机 完整版,十天学会单片机 完整版,第一讲,学单片机需要什么基础?,什么是单片机、单片机能做什么、怎么开始学习单片机。,学单片机需要的一些预备知识,C51,基础知识。,了解,TX-1C,单片机学习板系统结构,如何用,TX-1C,单片机学习板在短时间内掌握,51,单片机和,C,语言编程。,KEIL,工程建立详细介绍及,KEIL,软件使用方法,从点亮实验板上的一个发光二极管开始,学单片机需要什么基础?,与以前所学的知识关联很少;,只需要掌握很基本的数电模电知识,如二进制、十进制、十六进制之间的转换,与、或、非逻辑关系等;,对各种器件的概念基本上是从,0,开始;,如果要用,C,语言编程,需具备简单的,C,语言基础;,所有人都站在了同一起跑线上,;,什么是单片机?,单板机,将,CPU,芯片、,存储器,芯片、,I/O,接口,芯片和简单的,I/O,设备,(小键盘、,LED,显示器)等装配在一块印刷电路板上,再配上,监控程序,(固化在,ROM,中),就构成了一台单板微型计算机(简称单板机)。,单板机,单板机的,I/O,设备简单,软件资源少,使用不方便。早期主要用于微型计算机原理的,教学,及,简单的测控系统,,现在已很少使用。,单片机,在一片集成电路芯片上集成微处理器、存储器、,I/O,接口电路,从而构成了,单芯片微型计算机,即单片机,。,Intel,公司推出了,MCS-51,系列单片机:,集成,8,位,CPU,、,4K,字节,ROM,、,128,字节,RAM,、,4,个,8,位并口、,1,个全双工串行口、,2,个,16,位定时,/,计数器。寻址范围,64K,,并有控制功能较强的布尔处理器。,单板机,单片机,单片机能做什么,实物展示,用到单片机的项目经验介绍,手持粮库温度寻检设备,毕设答辩打分器,电话台灯,自动感应水龙头,凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:,atmel,stc,pic,avr,凌阳,,80C51,,,arm,等,工业自动化:数据采集、测控技术。,智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等。,消费类电子产品:洗衣机、电冰箱、空调机、电视机、微波炉、手机、,IC,卡、汽车电子设备等。,通讯方面:调制解调器、程控交换技术、手机、小灵通等。,武器装备:飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。,等等,.,怎么开始学习?,实践第一。,补充必要的理论知识,即缺什么补什么。,做工程项目积累经验。(可在网络上搜集题目,也可自己有什么想法大胆的去试验),预备知识,电平特性,2,进制与,16,进制的表示及转换,二进制数的逻辑运算,8051,单片机介绍,C51,基础知识,关于电平特性,数字电路中只有两种电平:高和低,(本课程中)定义单片机为,TTL,电平:,高,+5V,低,0V,RS232,电平:计算机的串口,高,-12V,低,+12V,所以计算机与单片机之间通讯时需要加电平转换芯片,max232,(实验板上左下角)。,二进制,数字电路中的两种电平特性决定了它,0 0 6 110,1 17111,2 1081000,3 1191001,4 100101010,5 10111 1011,十六进制,是二进制的简短表示形式。,十进制中的,0-15,分别表示为十六进制的,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,、,8,、,9,、,A,、,B,、,C,、,D,、,E,、,F,熟练掌握二进制与十六进制之间的转换。,规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。,如:,0001B - 1 - 1H,B,表示为二进制,,H,为十六进制,1001B - 9 - 9H,1010B - 10 - AH,0010 1100 - 44 - 2CH,各种进位制的对应关系,十进制,二进制,十六进制,十进制,二进制,十六进制,0,0,0,9,1001,9,1,1,1,10,1010,A,2,10,2,11,1011,B,3,11,3,12,1100,C,4,100,4,13,1101,D,5,101,5,14,1110,E,6,110,6,15,1111,F,7,111,7,16,10000,10,8,1000,8,二进制数的逻辑运算,1.,“,与,”,运算,“,与,”,运算是实现,“,必须都有,否则就没有,”,这种逻辑关系的一种运算。 运算符为,“,”,其运算规则如下,:,0,0=0, 0,1=1,0=0, 1,1=1,2.,“,或,”,运算,“,或,”,运算是实现,“,只要其中之一有,就有,”,这种逻辑关系的一种运算,其运算符为,“,+,”,。,“,或,”,运算规则如下,:,0+0=0, 0+1=1+0=1, 1+1=1,3.,“,非,”,运算,“,非,”,运算是实现,“,求反,”,这种逻辑的一种运算,如变量,A,的,“,非,”,运算记作 。 其运算规则如下,:,A,4.,“,异或,”,运算,“,异或,”,运算是实现,“,必须不同,否则就没有,”,这种逻辑的一种运算,运算符为,“,”,。其运算规则是,:,80C51,系列介绍,Intel,的:,80C31,、,80C51,、,87C51,,,80C32,、,80C52,、,87C52,等;,ATMEL,的:,89C51,、,89C52,、,89C2051,等;,Philips,、华邦、,Dallas,、,STC,Siemens(Infineon),等公司的许多产品 。,补充:关于型号的介绍,80C51,是,MCS-51,系列中的一个典型品种;其它厂商,以,8051,为基核,开发出的,CMOS,工艺单片机产品,统称为,80C51,系列,。当前常用的,80C51,系列单片机主要产品有:,80C51,的引脚封装,总线型,非总线型,P3,第二功能各引脚功能定义:,P3.0,:,RXD,串行口输入,P3.1,:,TXD,串行口输出,P3.2,:,INT0,外部中断,0,输入,P3.3,:,INT1,外部中断,1,输入,P3.4,:,T0,定时器,0,外部输入,P3.5,:,T1,定时器,1,外部输入,P3.6,:,WR,外部写控制,P3.7,:,RD,外部读控制,总线(,BUS,)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是,CPU,内部之间的连线。外部总线是指,CPU,与其它部件之间的连线。 外部总线有三种,:,数据总线,DB,(,Data Bus,),地址总线,AB,(,Address Bus,)和控制总线,CBControl Bus,)。,CPU,:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;,RAM,:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;,ROM,:用以存放程序、一些原始数据和表格;,I/O,口:四个,8,位并行,I/O,口,既可用作输入,也可用作输出;,T/C,:两个定时,/,记数器,既可以工作在定时模式,也可以工作在记数模式;,五个中断源的中断控制系统;,一个全双工,UART,(通用异步接收发送器)的串行,I/O,口,用于实现单片机之间或单片机与微机之间的串行通信;,片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。,C51,知识,C,语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用,C,语言进行程序设计已经成为软件开发的一个主流。用,C,语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对,8051,的,C,语言日趋成熟,成为了专业化的实用高级语言。,C,语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用,C,语言编程,如:各种单片机、,DSP,、,ARM,等,.,C,语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。,C,提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。,C-51,的特点,C-51,与,ASM-51,相比,有如下优点:,1.,对单片机的指令系统不要求了解,仅要求对,8051,的存贮器结构有初步了解;,2.,寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;,3.,程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;,4.,提供的库包含许多标准子程序,具有较强的数据处理能力;,5.,由于具有方便的模块化编程技术,使已编好程序可容易地移植;,C,51,的数据类型,基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(signed) long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,C,语言中的基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(signed) long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,C,51,的数据类型扩充定义,sfr:,特殊功能寄存器声明,sfr16:sfr,的16位数据声明,sbit:,特殊功能位声明,bit,:,位变量声明,例:,sfr SCON = 0X98;,sfr16 T2 = 0xCC;,sbit OV = PSW2;,例:,数据类型 变量名,char var1;,bit flags;,unsigned char vextor10;,int wwww;,注意:变量名不能用,C,语言中的关键字表示。,C-51,数据的存储类型,C-51,的包含的头文件,通常有,:,reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h,常用有,:,reg51.h reg52.h,(定义特殊功能寄存器和位寄存器);,math.h,(定义常用数学运算);,C-51,的运算符,与,C,语言基本相同:,+ - * /,(加 减 乘 除), = ,(位右移 位左移),& |,(,按位与 按位或,), ,(,按位异或 按位取反,),C-51,的基本语句,与标准,C,语言基本相同:,if,选择语言,while,循环语言,for,循环语言,switch/case,多分支选择语言,do-while,循环语言,中断服务程序,函数名(),interrupt,n,using,m,函数内部实现,.,I/O,口定义,sbit beep=P23;,单片机主要掌握以下几点,最小系统能够运行起来的必要条件。,1.,电源,2.,晶振,3.,复位电路,对单片机任意,IO,口的随意操作,1.,输出控制电平高低,2.,输出检测电平高低。,定时器:重点掌握最常用的方式,2,中断:外部中断、定时器中断、串口中断,串口通信:单片机之间、单片机与计算机间,KEIL,的使用,掌握,KEIL,工程的建立和软件的开发;,掌握,KEIL,中软件仿真的基本应用;,掌握用,KEIL,直接硬件仿真,TX-1C,单片机学习板的方法,Main,函数格式:,void main(),特点:无返回值,无参。任何一个,C,程序有且仅有一个,main,函数,它是整个程序开始执行的入口。例:,void main() ,总程序从这里开始执行,;,其他语句;,课后练习,对照,TX-1C,单片机学习板原理图写程序,用位操作和总线操作两种方法完成以下题目,1.,熟练建立,KEIL,工程,2.,点亮第一个发光管,.,3.,点亮最后一个发光管,4.,点亮,1,、,3,、,5,、,7,5.,点亮二、四、五、六,6.,尝试让第一个发光管闪烁,7.,尝试设计出流水灯程序,自己动手实践需要硬件材料,DIP40,脚座一个。,杜邦线,单头带冒,,40,根。,单排针 两排。,小电路板一块。,DS12C887,一片(旧,10,元,新,22,元)。,焊锡、,单片机工作的基本时序,机器周期和指令周期,(,1,) 振荡周期,:,也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,,TX,实验板上为,11.0592MHZ,。 ,(,2,) 状态周期,:,每个状态周期为时钟周期的,2,倍,是振荡周期经二分频后得到的。,(,3,) 机器周期,:,一个机器周期,包含,6,个状态周期,S1S6,也就是,12,个时钟周期,。 在一个机器周期内, CPU,可以完成一个独立的操作。,(,4,) 指令周期,:,它是指,CPU,完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。,MCS - 51,系统中,有单周期指令、双周期指令和四周期指令。,第二讲,如何申请免费样片,简单延时程序,子程序调用,带参数子程序设计,C51库函数的方便调用,如何驱动蜂鸣器,如何驱动继电器,集电极开路的概念及应用。,While,(表达式),语句(内部也可为空),特点:先判断表达式,后执行语句。原则:若表达式不是,0,,即为真,那么执行语句。否则跳出,while,语句。,For (,表达式,1;,表达式,2;,表达式,3),语句(内部可为空),执行过程:,1.,求解一次表达式,1.2.,求解表达式,2,,若其值为真(非,0,即为真),则执行,for,中语句。然后执行第,3,步。否则结束,for,语句,直接跳出,不再执行第,3,步。,3.,求解表达式,3.4.,跳到第,2,步重复执行。,集电极开路典型图,课后练习,第一个发光管以间隔,200ms,闪烁,8,个发光管由上至下间隔,1s,流动,其中每个管亮,500ms,灭,500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。,8,个发光管来回流动,第个管亮,100ms,流动时让蜂鸣器发出“滴滴”声。,用,8,个发光管演示出,8,位二进制数累加过程。,8,个发光管间隔,200ms,由上至下,再由下至上,再重复一次,然后全部熄灭再以,300ms,间隔全部闪烁,5,次。重复此过程。,间隔,300ms,第一次一个管亮流动一次,第二次两个管亮流动,依次到,8,个管亮,然后重复整个过程。,间隔,300ms,先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;,8,个全部闪烁,3,次;关闭发光管,程序停止。,第三讲,数码管是如何显示出字符的,数码管静态显示与动态显示原理,中断概念,单片机的定时器应用,显示器及其接口,单片机系统中常用的显示器有:,发光二极管,LED(Light Emitting Diode),显示器、液晶,LCD(Liquid Crystal Display),显示器、,CRT,显示器等。,LED,、,LCD,显示器有两种显示结构:段显示(,7,段、米字型等)和点阵显示(,58,、,88,点阵等)。,使用,LED,显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计,8,段。因此为,LED,显示器提供的编码正好是一个字节。,TX,实验板用共阴,LED,显示器,根据电路连接图显示,16,进制数的编码已列在下表。,共阴极,共阳极,共阴数码管码表,0x3f,0x06 , 0x5b , 0x4f , 0x66 , 0x6d,0 1 2 3 4 5,0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c,6 7 8 9 A B,0x39 , 0x5e , 0x79 , 0x71 , 0x00,C D E F,无显示,LED,数码显示方式及电路,静态显示方式,LED,显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个,8,位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用,CPU,时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。,动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。,中断系统,3.1 80C51,的中断系统,3.1.1 80C51,的中断系统结构,一、中断的概念,CPU,在处理某一事件,A,时,发生了另一事件,B,请求,CPU,迅速去处理(,中断发生,);,CPU,暂时中断当前的工作,转去处理事件,B,(,中断响应和中断服务,);,待,CPU,将事件,B,处理完毕后,再回到原来事件,A,被中断的地方继续处理事件,A,(,中断返回,),这一过程称为,中断,。,MCS-51,单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,引起,CPU,中断的根源,称为,中断源,。中断源向,CPU,提出的中断请求。,CPU,暂时中断原来的事务,A,,转去处理事件,B,。对事件,B,处理完毕后,再回到原来被中断的地方(即,断点,),称为中断返回。实现上述中断功能的部件称为,中断系统,(中断机构)。,随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速,I/O,设备的数据传送问题,而且还具有如下优点:,分时操作,。,CPU,可以分时为多个,I/O,设备服务,提高了计算机的利用率;,实时响应,。,CPU,能够及时处理应用系统的随机事件,系统的实时性大大增强;,可靠性高,。,CPU,具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。,80C51,中断系统的结构,80C51,的中断系统有,5,个中断源,(,8052,有,6,个),,,2,个优先级,可实现二级中断嵌套,。,1,、(,P3.2,)可由,IT0(TCON.0),选择其为低电平有效还是下降沿有效。当,CPU,检测到,P3.2,引脚上出现有效的中断信号时,中断标志,IE0(TCON.1),置,1,,向,CPU,申请中断。,2,、,(P3.3,)可由,IT1(TCON.2),选择其为低电平有效还是下降沿有效。当,CPU,检测到,P3.3,引脚上出现有效的中断信号时,中断标志,IE1(TCON.3),置,1,向,CPU,申请中断。,3,、,TF0,(,TCON.5,),片内定时,/,计数器,T0,溢出中断请求标志。当定时,/,计数器,T0,发生溢出时,置位,TF0,,并向,CPU,申请中断。,4,、,TF1,(,TCON.7,),片内定时,/,计数器,T1,溢出中断请求标志。当定时,/,计数器,T1,发生溢出时,置位,TF1,,并向,CPU,申请中断。,5,、,RI,(,SCON.0,)或,TI,(,SCON.1,),串行口中断请求标志。当串行口接收完一帧串行数据时置位,RI,或当串行口发送完一帧串行数据时置位,TI,,向,CPU,申请中断。,二、中断请求标志,1,、,TCON,的中断标志,IT0,(,TCON.0,),外部中断,0,触发方式控制位。,当,IT0=0,时,为电平触发方式。,当,IT0=1,时,为边沿触发方式(下降沿有效)。,IE0,(,TCON.1,),外部中断,0,中断请求标志位。,IT1,(,TCON.2,),外部中断,1,触发方式控制位。,IE1,(,TCON.3,),外部中断,1,中断请求标志位。,TF0,(,TCON.5,),定时,/,计数器,T0,溢出中断请求标志位。,TF1,(,TCON.7,),定时,/,计数器,T1,溢出中断请求标志位。,2,、,SCON,的中断标志,RI,(,SCON.0,),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬件置位,RI,。注意,,RI,必须由软件清除。,TI,(,SCON.1,),串行口发送中断标志位。当,CPU,将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位,TI,。,CPU,响应中断时,不能自动清除,TI,,,TI,必须由软件清除。,一、中断允许控制,CPU,对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器,IE,控制的。,3.1.3 80C51,中断的控制,EX0,(IE.0),,外部中断,0,允许位;,ET0,(IE.1),,定时,/,计数器,T0,中断允许位;,EX1,(IE.2),,外部中断,0,允许位;,ET1,(IE.3),,定时,/,计数器,T1,中断允许位;,ES,(,IE.4),,串行口中断允许位;,EA,(IE.7),,,CPU,中断允许(总允许)位。,二、中断优先级控制,80C51,单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器,IP,中的相应位的状态来规定的,。,PX0,(,IP.0,),外部中断,0,优先级设定位;,PT0,(,IP.1,),定时,/,计数器,T0,优先级设定位;,PX1,(,IP.2,),外部中断,0,优先级设定位;,PT1,(,IP.3,),定时,/,计数器,T1,优先级设定位;,PS,(,IP.4,),串行口优先级设定位;,PT2,(IP.5),,定时,/,计数器,T2,优先级设定位。,PX0,(,IPH.0,),外部中断,0,优先级设定位;,PT0,(,IPH.1,),定时,/,计数器,T0,优先级设定位;,PX1,(,IPH.2,),外部中断,0,优先级设定位;,PT1,(,IPH.3,),定时,/,计数器,T1,优先级设定位;,PS,(,IPH.4,),串行口优先级设定位;,PT2,(IPH.5),,定时,/,计数器,T2,优先级设定位。,而,80C52,单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先级寄存器,IP,和,IPH,中的相应位的状态来规定的,。,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,设置,52,单片机的,4,个中断源,使他们的优顺序为,T1,INT1,INT0,T0.,IPH = 0X08;PT1 = 1;,IP = 0X40;PX1 = 1;,80C51,单片机的中断优先级有三条原则:,CPU,同时接收到几个中断时,,首先响应优先级别最高的中断请求,。,正在进行的中断过程,不能被新的同级或低优先级的中断请求所中断,。,正在进行的低优先级中断服务,,能被高优先级中断请求所中断,。,为了实现上述后两条原则,,中断系统内部设有两个用户不能寻址的优先级状态触发器。,其中一个置,1,,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置,1,,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。,3.2,80C51,单片机中断处理过程,中断响应条件,中断源有中断请求;,此中断源的中断允许位为,1,;,CPU,开中断(即,EA=1,)。,以上三条同时满足时,,CPU,才有可能响应中断,。,3.2.1,中断响应条件和时间,3.3,80C51,的定时,/,计数器,实现定时功能,,比较方便的办法是利用单片机内部的定时,/,计数器,。也可以采用下面三种方法:,软件定时,:软件定时不占用硬件资源,但占用了,CPU,时间,降低了,CPU,的利用率。,采用时基电路定时,:例如采用,555,电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。,采用可编程芯片定时,:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时,/,计数器不够用时,可以考虑进行扩展。,3.3.1,定时,/,计数器的结构和工作原理,一、定时,/,计数器的结构,定时,/,计数器的实质是加,1,计数器(,16,位),由高,8,位和低,8,位两个寄存器组成。,TMOD,是定时,/,计数器的工作方式寄存器,确定工作方式和功能;,TCON,是控制寄存器,控制,T0,、,T1,的启动和停止及设置溢出标志,。,二、定时,/,计数器的工作原理,加,1,计数器,输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经,12,分频后送来;一个是,T0,或,T1,引脚输入的外部脉冲源。每来一个脉冲计数器加,1,,当加到计数器为全,1,时,再输入一个脉冲就使计数器回零,且计数器的溢出使,TCON,中,TF0,或,TF1,置,1,,向,CPU,发出中断请求(定时,/,计数器中断允许时)。如果定时,/,计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。,可见,由溢出时计数器的值减去计数初值才是加,1,计数器的计数值,。,设置为定时器模式时,,加,1,计数器是对内部机器周期计数(,1,个机器周期等于,12,个振荡周期,即计数频率为晶振频率的,1/12,)。,计数值,N,乘以机器周期,Tcy,就是定时时间,t,。,设置为,计数器模式时,,外部事件计数脉冲由,T0,或,T1,引脚输入到计数器。在每个机器周期的,S5P2,期间采样,T0,、,T1,引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加,1,,更新的计数值在下一个机器周期的,S3P1,期间装入计数器。由于检测一个从,1,到,0,的下降沿需要,2,个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为,12MHz,时,,最高计数频率不超过,1/2MHz,,即计数脉冲的周期要大于,2,s,。,3.3.2,定时,/,计数器的控制,80C51,单片机定时,/,计数器的工作由两个特殊功能寄存器控制。,TMOD,用于设置其工作方式;,TCON,用于控制其启动和中断申请。,一、工作方式寄存器,TMOD,工作方式寄存器,TMOD,用于设置定时,/,计数器的工作方式,低四位用于,T0,,高四位用于,T1,。其格式如下:,GATE,:门控位。,GATE,0,时,只要用软件使,TCON,中的,TR0,或,TR1,为,1,,就可以启动定时,/,计数器工作;,GATA,1,时,要用软件使,TR0,或,TR1,为,1,,同时外部中断引脚或也为高电平时,才能启动定时,/,计数器工作。即此时定时器的启动多了一条件。,:,定时,/,计数模式选择位。 ,0,为定时模式;,=1,为计数模式。,M1M0,:工作方式设置位。定时,/,计数器有四种工作方式,由,M1M0,进行设置。,二、控制寄存器,TCON,TCON,的低,4,位用于控制外部中断,已在前面介绍。,TCON,的高,4,位用于控制定时,/,计数器的启动和中断申请。其格式如下:,TF1,(,TCON.7,):,T1,溢出中断请求标志位。,T1,计数溢出时由硬件自动置,TF1,为,1,。,CPU,响应中断后,TF1,由硬件自动清,0,。,T1,工作时,,CPU,可随时查询,TF1,的状态。所以,,TF1,可用作查询测试的标志。,TF1,也可以用软件置,1,或清,0,,同硬件置,1,或清,0,的效果一样。,TR1,(,TCON.6,):,T1,运行控制位。,TR1,置,1,时,,T1,开始工作;,TR1,置,0,时,,T1,停止工作。,TR1,由软件置,1,或清,0,。所以,用软件可控制定时,/,计数器的启动与停止。,TF0,(,TCON.5,):,T0,溢出中断请求标志位,其功能与,TF1,类同。,TR0,(,TCON.4,):,T0,运行控制位,其功能与,TR1,类同。,3.3.3,定时,/,计数器的工作方式,一、方式,0,方式,0,为,13,位计数,,由,TL0,的低,5,位(高,3,位未用)和,TH0,的,8,位组成。,TL0,的低,5,位溢出时向,TH0,进位,,TH0,溢出时,置位,TCON,中的,TF0,标志,向,CPU,发出中断请求。,定时器模式时,有,:N,t/ Tcy,计数初值计算的公式为:,定时器的初值还可以采用计数个数直接取补法获得,。,计数模式时,计数脉冲是,T0,引脚上的外部脉冲。,门控位,GATE,具有特殊的作用。当,GATE=0,时,经反相后使,或门输出为,1,,此时仅由,TR0,控制与门的开启,与门输出,1,时,控制开关接通,计数开始;,当,GATE=1,时,,由外中断引脚信号控制或门的输出,此时控制,与门的开启由外中断引脚信号和,TR0,共同控制,。当,TR0=1,时,外中断引脚信号引脚的,高电平启动计数,,外中断引脚信号引脚的,低电平停止计数,。这种方式常用来测量外中断引脚上正脉冲的宽度。,二、方式,1,方式,1,的计数位数是,16,位,由,TL0,作为低,8,位、,TH0,作为高,8,位,组成了,16,位加,1,计数器 。,计数个数与计数初值的关系为:,三、方式,2,方式,2,为自动重装初值的,8,位计数方式。,工作方式,2,特别适合于用作较精确的脉冲信号发生器。,计数个数与计数初值的关系为,:,四、方式,3,方式,3,只适用于定时,/,计数器,T0,,,定时器,T1,处于方式,3,时相当于,TR1=0,,停止计数。,工作方式,3,将,T0,分成为两个独立的,8,位计数器,TL0,和,TH0,。,3.3.4,定时,/,计数器应用举例,初始化程序应完成如下工作:,对,TMOD,赋值,以确定,T0,和,T1,的工作方式。,计算初值,并将其写入,TH0,、,TL0,或,TH1,、,TL1,。,中断方式时,则对,IE,赋值,开放中断。,使,TR0,或,TR1,置位,启动定时,/,计数器定时或计数。,例 利用定时,/,计数器,T1,的方式,1,,产生,10ms,的定时,并使,P1.0,引脚上输出周期为,20ms,的方波,采用中断方式,设系统时钟频率为,12 MHz,。,解:,1,、计算计数初值,X,:,由于晶振为,12 MHz,,所以机器周期,Tcy,为,1,s,。,所以:,N,t/ Tcy,10000/1,10000,X,65536,10000,55536,D8F0H,即应将,D8H,送入,TH0,中,,F0H,送入,TL0,中,2,、求,T1,的方式控制字,TMOD,:,M1M0=01,,,GATE=0,,,C/T=0,,可取方式控制字为,01H,;,1,、利用定时,/,计数器,T0,从,P1.0,输出周期为,1s,的方波,让发光二极管以,1HZ,闪烁,设晶振频率为,12MHz,。,2,、利用定时,/,计数器,T1,产生定时时钟,由,P1,口控制,8,个发光二极管,使,8,个指示灯依次一个一个闪动,闪动频率为,10,次,/,秒,(8,个灯依次亮一遍为一个周期,),,循环。,3,、同时用两个定时器控制蜂鸣器发声,定时器,0,控制频率,定时器,1,控制同个频率持续的时间,间隔,300ms,依次输出,1,,,10,,,50,100,,,200,400,800,1k,(,hz,)的方波。,4,、用定时器以间隔,500MS,在,6,位数码管上依次显示,0,、,1,、,2,、,3.C,、,D,、,E,、,F,,重复。,动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。,MCS-51,单片机的中断系统结构,执行主程序,主程序,继续执行主程序,断点,中断请求,中断响应,执行中断处理程序,中断返回,一、中断允许控制,CPU,对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器,IE,控制的。,4.1 80C51,中断的控制,EX0,(IE.0),,外部中断,0,允许位;,ET0,(IE.1),,定时,/,计数器,T0,中断允许位;,EX1,(IE.2),,外部中断,0,允许位;,ET1,(IE.3),,定时,/,计数器,T1,中断允许位;,ES,(,IE.4),,串行口中断允许位;,EA,(IE.7),,,CPU,中断允许(总允许)位。,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:,4.2,80C51,单片机中断处理过程,中断响应条件,中断源有中断请求;,此中断源的中断允许位为,1,;,CPU,开中断(即,EA=1,)。,以上三条同时满足时,,CPU,才有可能响应中断,。,4.2.1,中断响应条件和时间,定时,/,计数器的结构和工作原理,一、定时,/,计数器的结构,定时,/,计数器的实质是加,1,计数器(,16,位),由高,8,位和低,8,位两个寄存器组成。,TMOD,是定时,/,计数器的工作方式寄存器,确定工作方式和功能;,TCON,是控制寄存器,控制,T0,、,T1,的启动和停止及设置溢出标志,。,4.2.2,定时,/,计数器的控制,80C51,单片机定时,/,计数器的工作由两个特殊功能寄存器控制。,TMOD,用于设置其工作方式;,TCON,用于控制其启动和中断申请。,一、工作方式寄存器,TMOD,工作方式寄存器,TMOD,用于设置定时,/,计数器的工作方式,低四位用于,T0,,高四位用于,T1,。其格式如下:,GATE,:门控位。,GATE,0,时,只要用软件使,TCON,中的,TR0,或,TR1,为,1,,就可以启动定时,/,计数器工作;,GATA,1,时,要用软件使,TR0,或,TR1,为,1,,同时外部中断引脚,INT0/1,也为高电平时,才能启动定时,/,计数器工作。即此时定时器的启动条件,加上了,INT0/1,引脚为高电平这一条件。,:,定时,/,计数模式选择位。 ,0,为定时模式;,=1,为计数模式。,M1M0,:工作方式设置位。定时,/,计数器有四种工作方式,由,M1M0,进行设置。,二、控制寄存器,TCON,TCON,的低,4,位用于控制外部中断,已在前面介绍。,TCON,的高,4,位用于控制定时,/,计数器的启动和中断申请。其格式如下:,TF1,(,TCON.7,):,T1,溢出中断请求标志位。,T1,计数溢出时由硬件自动置,TF1,为,1,。,CPU,响应中断后,TF1,由硬件自动清,0,。,T1,工作时,,CPU,可随时查询,TF1,的状态。所以,,TF1,可用作查询测试的标志。,TF1,也可以用软件置,1,或清,0,,同硬件置,1,或清,0,的效果一样。,TR1,(,TCON.6,):,T1,运行控制位。,TR1,置,1,时,,T1,开始工作;,TR1,置,0,时,,T1,停止工作。,TR1,由软件置,1,或清,0,。所以,用软件可控制定时,/,计数器的启动与停止。,TF0,(,TCON.5,):,T0,溢出中断请求标志位,其功能与,TF1,类同。,TR0,(,TCON.4,):,T0,运行控制位,其功能与,TR1,类同。,定时,/,计数器的工作方式,一、方式,0,方式,0,为,13,位计数,,由,TL0,的低,5,位(高,3,位未用)和,TH0,的,8,位组成。,TL0,的低,5,位溢出时向,TH0,进位,,TH0,溢出时,置位,TCON,中的,TF0,标志,向,CPU,发出中断请求。,二、方式,1,方式,1,的计数位数是,16,位,由,TL0,作为低,8,位、,TH0,作为高,8,位,组成了,16,位加,1,计数器 。,计数个数与计数初值的关系为:,第四课练习,1.,利用动态扫描方法在六位数码管上显示出稳定的,654321.,2.,用动态扫描方法和定时器,1,在数码管的前三位显示出秒表,精确到,1%,秒,即后两位显示,1%,秒,一直循环下去。,3.,利用动态扫描和定时器,1,在数码管上显示出从,765432,开始以,1/10,秒的速度往下递减直至,765398,并保持显示此数,与此同时利用定时器,0,以,500MS,速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,,3,秒后(用,T0,定时)流水灯全部关闭、数码管上显示出“,HELLO”,。到此保持住。,键盘的应用,1,、键盘的分类,键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘,.,而靠软件编程来识别的称为非编码键盘;,在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。,非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。,按键在闭合和断开时,触点会存在抖动现象:,数码管前三位显示一个跑表,从,000,到,999,之间以,1%,秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。,(,用定时器设计表,),。,在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。,按下,16,个矩阵键盘依次在数码管上显示,1-16,的平方。如按下第一个显示,1,,第二个显示,4.,第六讲,D/A & A/D,转换器及其与单片机接口,D/A,6.1,D/A,转换器及其与单片机接口,6.1.1 D/A,转换器的原理及主要技术指标,一、,D/A,转换器的基本原理及分类,型电阻网络,D/A,转换器,:,输出电压 的大小与数字量具有对应的关系,。,二、,D/A,转换器的主要性能指标,1,、分辨率,分辨率,是指输入数字量的最低有效位(,LSB,)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。,分辨率与输入数字量的位数有确定的关系,可以表示成,FS /,。,FS,表示满量程输入值,,n,为二进制位数。对于,5V,的满量程,采用位的,DAC,时,分辨率为,5V/256,19.5mV,;当采用,12,位的,DAC,时,分辨率则为,5V/4096,1.22mV,。显然,位数越多分辨率就越高。,2,、线性度,线性度(也称非线性误差),是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如,是指实际输出值与理论值之差在满刻度的,以内。,3,、绝对精度和相对精度,绝对精度(简称精度),是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由,DAC,的增益误差(当输入数码为全,1,时,实际输出值与理想输出值之差)、零点误差(数码输入为全时,,DAC,的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于,1,个,LSB,。,相对精度,与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。,4,、建立时间,建立时间,是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的,1/2LSB,所需的时间。是描述,D/A,转换速率的一个动态指标。,电流输出型,DAC,的建立时间短,。,电压输出型,DAC,的建立时间主要决定于运算放大器的响应时间,。根据建立时间的长短,可以将,DAC,分成超高速(,1S),、高速(,10,1S,)、中速(,100,10S,)、低速(,100S,)几档。,应当注意,精度和分辨率具有一定的联系,但概念不同。,DAC,的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使,DAC,的精度变差。,6.1.2 DAC0832,芯片及其与单片机接口,DAC0832,是使用非常普遍的位,D/A,转换器,由于其片内有输入数据寄存器,故可以直接与单片机接口。,DAC0832,以电流形式输出,当需要转换为电压输出时,可外接运算放大器。属于该系列的芯片还有,DAC0830,、,DAC0831,,它们可以相互代换。,DAC0832,主要特性,:,分辨率位;,电流建立时间,S,;,数据输入可采用双缓冲、单缓冲或直通方式;,输出电流线性度可在满量程下调节;,逻辑电平输入与,TTL,电平兼容;,单一电源供电(,5V,15V,);,低功耗,,20m,。,一、,DAC0832,内部结构及引脚,二、,DAC0832,与,80C51,单片机的接口,、单缓冲工作方式,此方式,适用于只有一路模拟量输出,或有几路模拟量输出但并不要求同步的系统,。,双极性模拟输出电压,:,双极性输出时的分辨率比单极性输出时降低,1/2,,这是由于对双极性输出而言,最高位作为符号位,只有,7,位数值位。,2,、双缓冲工作方式,多路,D/A,转换输出,如果要求同步进行,就应该采用双缓冲器同步方式,。,3,、直通工作方式,当,DAC0832,芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号,ILE,引脚接,5V,时,,DAC0832,芯片就处于直通工作方式,数字量一旦输入,就直接进入,DAC,寄存器,进行,D/A,转换。,http:/www,.Alldatasheet.com/,6.2,/,转换器及其与单片机接口,6.2.1,转换器的原理及主要技术指标,一、逐次逼近式,ADC,的转换原理,二、双积分式,ADC,的转换原理,三、,A/D,转换器的主要技术指标,1,、分辨率,ADC,的分辨率,是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如,12,位,ADC,的分辨率就是,12,位,或者说分辨率为满刻度,FS,的,1/,。一个,10V,满刻度的,12,位,ADC,能分辨输入电压变化最小值是,10V1/ =2.4mV,。,2,、量化误差,ADC,把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。,量化误差是,ADC,的有限位数对模拟量进行量化而引起的误差,。实际上,要准确表示模拟量,,ADC,的位数需很大甚至无穷大。一个分辨率有限的,ADC,的阶梯状转换特性曲线与具有无限分辨率的,ADC,转换特性曲线(直线)之间的最大偏差即是量化误差。,3,、偏移误差,偏移误差,是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定,ADC,没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。,、满刻度误差,满刻度误差,又称为增益误差。,ADC,的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。,5,、,线性度,线性度,有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。,6,、绝对精度,在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为,绝对精度,。对于,ADC,而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。,7,、转换速率,ADC,的,转换速率,是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次,A/D,转换所需的时间(包括稳定时间),则是转换速率的倒数。,第七讲,7,.2 80C51,的串行口,7,.1,计算机串行通信基础,7,.3,单片机串行口编程应用举例,7.1,计算
展开阅读全文