项目3 手动计数器的设计与制作_第1页
项目3 手动计数器的设计与制作_第2页
项目3 手动计数器的设计与制作_第3页
项目3 手动计数器的设计与制作_第4页
项目3 手动计数器的设计与制作_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机系统设计与制作项目3手动计数器的设计与制作目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试1、中断的概念及功能什么是中断?中断:计算机在执行程序的过程中,由CPU以外的服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行,转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。1、中断的概念及功能主程序断点继续执行主程序响应中断请求返回主程序RETI中断服务程序中断执行过程2中断响应4中断返回中断请求13中断处理1、中断的概念及功能向CPU发出中断请求的来源,或引起中断的原因。来自单片机内部称为内部中断源;来自单片机外部,称之为外部中断源。中断源也叫中断申请,中断源要求服务的请求。中断请求主程序被断开的位置(或地址)。断点也叫中断处理子程序,中断之后所执行的处理程序。中断服务程序1、中断的概念及功能调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先却无法确定。因为中断的发生取决于申请中断的外部事件,无法事先在程序中安排指令,中断服务程序的处理过程是由硬件自动完成的。调用中断服务程序与调用子程序的区别RETRETI1、中断的概念及功能分时操作解决快速CPU与慢速外设工作速度不一致的问题。实时处理在实时控制中,及时对外部条件变化做出反应。故障处理出现掉电、存储错误等意外状况或故障时,转到相应的故障处理程序处理中断的功能1、中断的概念及功能2个中断优先级4个相关特殊功能寄存器5个中断源MCS-51中断系统外部中断0定时器/计数器0外部中断1定时器/计数器1串行口收发中断定时器/计数器控制寄存器TCON串行口控制寄存器SCON中断允许控制寄存器IE中断优先级控制寄存器IP高优先级低优先级2、中断系统及管理图4.1

MCS-51单片机中断系统内部结构2、中断系统及管理两个外部中断(INT0、INT1),两个定时器溢出中断(T0溢出、T1溢出)和一个串行口中断,各中断源对应的中断服务程序入口地址及中断信号产生的条件如表所示。中断源中断源中断入口地址中断信号产生外部中断0(INT0)0003HP3.2脚输入低电平或下降沿T0溢出中断000BH定时器0计数满溢出外部中断1(INT1)0013HP3.3脚输入低电平或下降沿T1溢出中断001BH定时器1计数满溢出串行口中断0023H串行口发送或接受完一帧数据表4.1

中断入口地址及中断信号产生2、中断系统及管理与中断控制相关的特殊功能寄存器。中断控制寄存器TCONSCONIEIP2、中断系统及管理位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT088H8FH8EH8DH8CH8BH8AH89H88H表4.2TCON位格式定义TCON(TimerControl)定时器/计数器控制寄存器TCON用于锁存外部中断请求标志以及定时器/计数器控制,其各位格式定义如表4.2所示。(1)TCON2、中断系统及管理TF1:

定时器T1溢出中断标志位。硬件置1,CPU响应中断后,由

硬件(或软件)清0。TR1:

定时器T1运行控制位,由软件置位或清0。TR1置1时,定时

器T1启动;TR1清0时,定时器T1停止。TF0:

定时器T0溢出中断标志位,功能与TF1类似。TR0:

定时器T0运行控制位,功能与TR1类似。位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT02、中断系统及管理IE1:

外部中断1请求标志位。当INT1引脚上中断请求信号有效时,

则IE1由硬件置1,向CPU申请中断。IT1:

外部中断1触发方式控制位。当IT1=0时,INT1为电平触发方

式。当IT1=1时,INT1为边沿触发方式。IE0:

外部中断0请求标志位,功能与IE1类似。IT0:

外部中断0触发方式控制位,功能与IT1类似。位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT02、中断系统及管理位D7D6D5D4D3D2D1D0SCONSM0SM1SM2RENTB8RB8TIRI98H9FH9EH9DH9CH9BH9AH99H98H表4.3

SCON位格式定义SCON(SerialControl)串行口控制寄存器SCON位格式定义如表4.3所示。(2)

SCONTI:串行口发送中断标志位。硬件置1,软件清0。RI:串行口接收中断标志位。硬件置1,软件清0。2、中断系统及管理位D7D6D5D4D3D2D1D0IEEA——ESET1EX1ET0EX0A8HAFH——ACHABHAAHA9HA8H表4.4

IE位格式定义IE(InterruptEnable)中断允许控制寄存器中断的类型:非屏蔽中断和可屏蔽中断。MCS-51系列单片机的5个中断源都是可屏蔽中断,各中断源的开放与禁止由中断允许控制寄存器IE控制。IE寄存器各位格式定义如表4.4所示。(3)

IE2、中断系统及管理EA:CPU中断允许控制位。EA相当于控制所有中断源开放与屏蔽的总开关。ES:串行口中断允许位。ET1:定时器T1中断允许位EX1:外部中断1中断允许位。ET0:定时器T0中断允许位。EX0:外部中断0中断允许位。位D7D6D5D4D3D2D1D0IEEA——ESET1EX1ET0EX02、中断系统及管理只允许定时器T1中断,编写开放中断的指令。例8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。SETB EA ;EA置1SETB ET1 ;ET1置1EA=1;ET1=1;MOV IE,#88H ;EA置1,ET1置1,88H=10001000BIE=0x88;或只用一条字节指令:2、中断系统及管理位D7D6D5D4D3D2D1D0IP———PSPT1PX1PT0PX0B8H———BCHBBHBAHB9HB8H表4.5

IP位格式定义IP(InterruptPriority)中断优先级控制寄存器IP用于设置各中断源优先级,IP的各位均可由软件置1或清0,1表示高优先级,0表示低优先级。(4)

IP2、中断系统及管理PS:串行口中断优先级控制位。PT1:定时器T1中断优先级控制位。PX1:外部中断1中断优先级控制位。PT0:定时器T0中断优先级控制位。PX0:外部中断0中断优先级控制位。系统复位后,IP低5位全部0,所有中断源均设定为低优先级中断。可通过指令设定中断源为高优先级或低优先级中断。位D7D6D5D4D3D2D1D0IP———PSPT1PX1PT0PX02、中断系统及管理几个同一优先级的中断源同时向CPU申请中断,则CPU按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成。中断优先级控制串行口中断定时器T1中断外部中断1定时器T0中断外部中断0最低最高2、中断系统及管理1高优先级的中断请求可以打断正在执行的低优先级中断。2同级或低优先级的中断请求不能打断正在执行的中断。中断优先响应的三条原则3两个以上同级中断源同时向CPU申请中断时,CPU按自然优先级顺序确定先响应哪一个中断。在实际应用中,将IP寄存器和自然优先级结合使用,就可以自由控制各中断源的响应顺序。2、中断系统及管理当CPU正在执行某个中断服务程序时,若有更高优先级的中断源发出中断请求,则CPU会中断当前中断服务程序,并保留程序断点,转而响应高级中断,待高级中断处理结束以后,再返回被中断的中断服务程序。中断嵌套主程序断点继续执行主程序响应低级中断请求返回主程序RETI高级中断服务程序断点低级中断程序继续执行返回低级中断程序响应高级中断请求3、中断处理过程中断的处理过程1中断响应3中断返回2中断处理3、中断处理过程图4.2中断处理过程流程图3、中断处理过程(1)中断响应CPU响应中断需要满足的条件1有中断源向CPU发出中断申请,且CPU中断控制和申请中断的中断源控制均处于开放状态。3CPU已执行完当前指令。2CPU正在执行的不是RETI中断返回指令或访问IE和IP的指令。3、中断处理过程(2)中断响应过程中断响应过程包括断点保护和中断服务程序的入口地址跳转。各中断源的中断入口地址之间只相隔8个字节,无法容纳一般的中断服务程序,因此,在中断入口地址单元通常存放一条无条件转移指令,将中断服务程序转至用户指定的其他空间。中断服务程序从中断入口地址开始执行,到返回指令RETI为止。

中断服务程序的入口地址 ORG 0000H ;主程序入口地址 AJMP MAIN ORG 0003H ;外部中断0入口地址 AJMP F_INT0 ORG 000BH ;定时器T0入口地址 AJMP F_T0 ……MAIN: ;主程序 ……F_INT0: ;外部中断0中断服务程序 ……

RETIF_T0: ;定时器/计数器T0中断服务程序 …….

RETI ENDC51的中断服务程序void函数名() interrupt中断号[using工作寄存器组]{ …… }中断号中断源0外部中断01定时器/计数器02外部中断13定时器/计数器14串行口收发中断工作寄存器组0(默认)1233、中断处理过程(3)中断返回中断返回:指中断服务完后,计算机返回原来断点的位置,继续执行原来的程序。中断返回由中断返回指令RETI来实现。中断源发出中断请求后,相应的中断请求标志位被置1。CPU响应中断请求后,在中断返回前,应删除该中断请求标志,否则会再次响应该中断,进入死循环。目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试1、LED数码管结构LED七段数码管由7个长型发光二极管和一个圆点型发光二极管组成,可以显示数字、某些字母及其他符号。LED数码管根据公共引脚与电源和地的连接方式,分共阴型和共阳型。1、LED数码管结构1、LED数码管结构

(a)(b)(c)图4.2LED数码管外形引脚及结构图(a)外形及引脚(b)共阴极结构(c)共阳极结构1、LED数码管结构各二极管一般参数:正向压降:1.5~2V 额定电流:10~30mA最大电流:不超过40mA。LED数码管参数代码位D7D6D5D4D3D2D1D0显示段dpgfedcba表4.8LED数码管代码位与显示字段1、LED数码管结构在显示时需把待显示的数字转换成相应的段选码。译码常用74LS48、74LS49、74LS164等集成译码电路实现。常用指令MOVCA,@A+DPTR以查表法实现。硬件译码软件译码译码方法1、LED数码管结构

LED的段选码段位名dpgfedcba共阳极段码10010010十六进制92H段位名dpgfedcba共阴极段码01101101十六进制6DH反码1、LED数码管结构字型共阳极代码共阴极代码字型共阳极代码共阴极代码0COH3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HdA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H8.00HFFH880H7FH灭FFH00H表4.9LED数码管十六进制段选码2、LED数码管的显示控制字段控制字位控制

显示控制用于控制显示什么字符用于控制某一位或某几位显示多位LED数码管显示2、LED数码管的显示控制静态显示动态显示数码管的显示控制每一时刻只有一个数码管显示所有数码管都处于显示状态3、LED数码管的静态显示静态显示:当数码管显示某一字符时,该位的各段选线和位选线的电平保持不变,即对应发光二极管保持导通或者截止的状态。连线方法:将各位LED数码管的位选线(即共阴极或共阳极)连接在一起,接地或者接+5V电源;其段选线(dp~a)分别接到一个8位的控制端口。3、LED数码管的静态显示图4.74位LED数码管静态显示3、LED数码管的静态显示静态显示的特点01显示稳定,不易闪烁,显示亮度高02编程简单03占用的I/O口太多,硬件资源消耗过大04功耗大仅适用于显示位数较少的情况。注意4、LED数码管的动态显示多位LED数码管共享段选线,依次输出段选码,同时依次在LED数码管的公共端送入有效电平,逐位进行扫描。所有的LED数码管会按顺序逐个点亮。利用人眼的视觉残留效应,只要扫描频率足够快(100Hz以上),将扫描周期控制在视觉停顿时间内,则可以达到不闪烁的效果,使所有数码管看起来似乎是同时点亮的。动态显示与发光二极管的导通电流有关,也与点亮的持续时间和间隔时间的比值有关,合理选择参数,就可以得到亮度高、稳定性好的显示效果。显示效果4、LED数码管的动态显示将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。连线方法

动态显示工作原理—连线acegbfddpcom段码位码

动态显示工作原理—扫描过程段码位码0010010100010000001110011111010010010010010010004、LED数码管的动态显示动态显示的特点01占用端口少,节省硬件资源。02功耗低03控制过程较复杂,降低了CPU工作效率04显示亮度较静态显示低。在显示位数多,硬件控制端口资源紧张的情况注意4、LED数码管的动态显示100ms10Hz25ms40Hz10ms100Hz1ms1KHz目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试1、静态显示接口电路利用单片机控制LED数码管静态显示,显示几位,就需要几个8位并行I/O口,当单片机I/O口不够用时,则需要进行I/O口扩展。若采用共阳极数码管,单片机I/O口通过限流电阻接在LED数码管的a~dp口即可。若采用共阴极数码管,由于单片机I/O口驱动能力不足,无法提供发光二极管导通所需电流,除了限流电阻以外,还应在I/O口与LED数码管段选口之间增加缓冲器或三极管驱动电路。(不推荐)1、静态显示接口电路8051单片机与共阳极LED数码管的接口电路如图4.9所示,利用P0口并行输出控制LED数码管,完成0~9循环显示的程序。例4.1图4.9单数码管静态显示接口电路1、静态显示接口电路汇编源代码查表 ORG 00HMAIN: MOV R1,#0AH MOV R0,#00H MOV DPTR,#SEGTAB ;赋表头地址LOOP: MOV A,R0 ;查表并送P1口显示

MOVC A,@A+DPTR MOV P0,A LCALL DELAY ;调用延时

INC R0 DJNZ R1,LOOP ;循环未到10次则继续

AJMP MAINSEGTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;0~9共阳极段码表

DB 92H,82H,0F8H,80H,90HDELAY: MOV R5,#100 ;延时子程序D1: MOV R6,#20D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END定义数据表C程序代码#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineN10ucharcodePattern[N]={0xC0,0xF9,0xA4,0xB0,0x99,//共阳极段码表

0x92,0x82,0x0F8,0x80,0x90};voidDelayMS(uintx) //延时{ uchari; while(x--) for(i=0;i<120;i++);}voidmain() //主程序{ uchari; while(1) { for(i=0;i<N;i++) { P0=Pattern[i];//查表取值,送P0口显示

DelayMS(600); } }}2、动态显示接口电路选用一个8位I/O口作为段选信号,用另一个8位I/O口作为位选信号。

为了节省端口资源,还可以74LS138、8155等集成电路进行扩展。例如,采用译码器74LS138,则可实现用3根位选线实现8位LED数码管的动态扫描。也可以利用可编程接口芯片8155进行并口扩展。另外,也可以利用串口实现显示控制,但是实现程序和电路较复杂。单片机控制多位LED数码管动态显示2、动态显示接口电路8051单片机与4位共阳极数码管的接口电路如图4.10所示。利用8051单片机实现4位LED数码管的动态扫描电路,使数码管显示“2015”4个字符。例4.274LS245:8路同相三态双向总线收发器74LS04:反相器2、动态显示接口电路图4.10数码管动态显示接口电路段选码依次送:2、0、1、5对应的段选码位选码依次送:1000010000100001C程序代码#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodePattern[]={0xC0,0xF9,0xA4,0xB0,0x99,//共阳极段码表

0x92,0x82,0x0F8,0x80,0x90};ucharcodeLed_Dis[4]={2,0,1,5}; //显示数据表voidDelayMS(uintx) //延时{ uchari; while(x--) { for(i=0;i<120;i++); }}C程序代码voidmain() //主程序{ uchari,temp; while(1) { temp=0xef; //11101111

for(i=0;i<4;i++) { P1=0xff;

P0=Pattern[Led_Dis[i]];//查表取值,送段码

temp>>=1;

P1=temp; //送位码

DelayMS(10); //控制扫描频率 } }}扫描一轮目录

知识链接一、中断的基本概念及应用二、数码管静态和动态显示三、数码管与单片机的接口电路任务实施一、任务分析二、安装与调试1、任务要求本任务要求设计一个最大计数值为9的手动加法计数器。该计数器有两个按键,通过外部中断完成清零和计数功能。清零键按下后显示归零;计数键按下后,计数值加1,如计数值为9,再按下计数键则归零。P0口接共阳极数码管,静态显示计数值。用KeilC51、Proteus等作开发工具,进行仿真,并完成实物电路制作并测试,最后需完成项目报告。手动计数器任务要求2、总体设计方案AT89C51单片机按键控制复位电路时钟电路LED数码管显示3、硬件电路设计复位电路时钟电路显示电路复位电路可以提供“上电复位”和“手动复位”两种复位方式。时钟电路以12MHz的频率向单片机提供时钟,保证单片机以规定的频率运行。共阳极数码管通过限流电阻连接到P0口,a~dp分别对应P0.0~P0.7,控制电平低有效,即控制端口输出低电平时,对应字段点亮,控制端口输出高电平时,控制端口熄灭。由AT89C51单片机、时钟电路、复位电路构成的单片机最小系统的基础上,在P3.2(外部中断0)和P3.3(外部中断1)两个引脚上分别接按键,P0口接共阳极数码管及限流电阻,即构成手动计数器的硬件电路。3、硬件电路设计4、软件设计

程序流程图C源程序#include"reg51.h"unsignedcharsegtab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~9共阳极段码表unsignedcharcount;voidDELAY(unsignedcharn) //延时程序{ unsignedchari,j; for(i=0;i<n;i++) for(j=0;j<200;j++);}voidKey0()interrupt0 //外部中断0中断服务程序{ count=0; DELAY(10); }C源程序voidKey1()interrupt2 //外部中断1中断服务程序{ count++; if(count==10) count=0; DELAY(10);}voidmain() //主程序{ TCON=0x05; //设置边沿触发方式

IE=0x85; //开中断10000101

count=0; //计数值初始化

while(1) //显示计数值,并等待中断 {

P0=segtab[count]; }}5、扩展任务在加法计数器的基础之上,在P1.0口上增加一个拨码开关,P2口按P1口连接方式增加一位数码管,可将简单的加法计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论