51单片机通过计数器中断实现数字的加1、减1和单片机外部中断计数器清0功能,在3位数码管上显示

扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
51单片机问题,想问一下IT0=1和TI=1有什么区别,尽量解释清楚一些,以下程序是想让数码管一直工作,当在给外部中断0一个跳变电压时让蜂鸣器响一下,但不影响数码管显示,但是结果却是一接跳变电压,蜂鸣器一直响,数码管停止显示.最后查出原因(在程序上写出来了)#includesbit dula=P2^6;sbit wela=P2^7;sbit beer=P2^3;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main(){ int num=0;tt=0;EA=1;EX0=1;TI=1; //这里是错的,最后改成了 IT0=1;就好了TMOD=0x01;TH0=()/256;TL0=()%256;ET0=1;TR0=1;wela=1;P0=0x00;wela=0;dula=1;P0=0x3f;dula=0;while(1){ if(tt==20){tt=0;num++;if(num==16)num=0;dula=1;P0=table[num];dula=0;} }}void waibuzhongduan() interrupt 0{beer=0;for(i=5000;i>0;i--);beer=1;}void dingshi() interrupt 1{TH0=()/256;TL0=()%256;tt++;}
waggas2327
扫二维码下载作业帮
1.75亿学生的选择
1、设置TI=1,是人为的设置了串行发送请求完毕的中断请求标志.但是你并没有致能(es=1)串口中断.实际上你的interrupt5的处理程序也没有写,是空的.(注意这点)2、你既然没有设置it0=1(跳变触发中断),那么就是IT0=0(...
为您推荐:
其他类似问题
扫描下载二维码利用51单片机,4个数码管设计一个计时器,要求在数码管上显示的数据从0开始每1秒钟加1。
提问者:网友
没有定时器的不过有数字钟的你可以参考下 其中可有有用的摘要本题给出基于单片机的数字中的设计,设计由单片机作为核心控制器,通过频率计数实现计时功能,将实时时间经由单片机输出到显示设备——数码管上显示出来,并通过键盘来实现启动、停止、复位和调整时间的功能。关键词: 单片机、数字钟、AT89S52、LED 1 引言在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,五脏俱全”。现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们一旦遇到重要的事情而忘记了时间,这将会带来很大的损失,因此我们需要一个计时系统来提醒这些忙碌的人。 然而,随着科技的发展和社会的进步,人们对时钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能上还是在样式上都发生了质的变化,如电子闹钟、数字闹钟等等。 单片机在多功能数字钟中的应用已是非常普遍的,基于单片机的数字钟给人们带来了极大的方便。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。本文利用单片机实现数字时钟计时功能的主要内容,其中AT89S52是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。2 方案论证2.1 方案一数字钟采用FPGA作为主控制器。由于FPGA具有强大的资源,使用方便灵活,易于进行功能扩展,特别是结合了EDA,可以达到很高的效率。此方案逻辑虽然简单一点,但是一块FPGA的价格很高,对于做电子钟来说有一点浪费,而且FPGA比较难掌握,本设计中不作过多研究,也不采用此方案。2.2 方案二数字钟由几种逻辑功能不同的CMOS数字集成电路构成,共使用了10片数字集成电路,其原理图如图2.1所示。它是由秒信号发生器(时基电路)、小时分钟计数器及译码和驱动显示电路3部分组成,其基本工作过程是:时基电路产生精确周期的脉冲信号,经过分频器作用给后面的计数器输送1HZ的秒信号,最后由计数器及驱动显示单元按位驱动数码管时间显示,但是这样设计的电路比较复杂,使用也不灵活,而且价格比较高,故不采用此方案。 图2.1 方案二原理示意图2.3 方案三 AT89S52是一种低功耗、高性能CMOS 8位微控制器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。它具有串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。基于AT89S52单片机来实现系统的控制,外围电路比较简单,成本比较低,此系统控制灵活能很好地满足本课题的基本要求和扩展要求,因此选用该方案。其硬件框图如图2.2所示,原理图见附录图6.1。 图2.2 数字钟硬件框图2.4 电路组成及工作原理本文数字时钟设计原理主要利用AT89S52单片机,由单片机的P0口控制数码管的位显示,P2口控制数码管的段显示,P1口与按键相接用于时间的校正。在设计中引入220V交流电经过整流、滤波后产生+5V电压,用于给单片机及显示电路提供工作电压。整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”计数器的输出,通过六个七段LED显示器显示出来。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。在本设计中,24小时时钟显示、秒表的设计和显示都是依靠单片机中的定时器完成。使用定时器T0产生1s的中断,在中断程序中完成每一秒数字的变化,并在主程序中动态显示该字符。其功能框图如图2.3所示。 图2.3
秒表外中断的功能示意图数字钟的电路设计主要功能是提供单片机和外部的LED显示、273地址锁存和片选以及外部存储器2764的接口电路,此外还需要设计相关的LED驱动电路。(1)电路原理和器件选择本实例相关的关键部分的器件名称及其在数字钟电路中的主要功能:89S52:单片机,控制LED的数据显示。LED1--LED6:用于显示单片机的数据,其中三个采用7段显示用于显示时、分、秒的十位,另三个采用8段显示用于显示时、分、秒的个位。74LS273:锁存器,LED显示扩展电路中的段码和位码使用了两片74LS273,上升沿锁存。74LS02:与非门,与单片机的读写信号一起使用,选中外部的74LS273,决定LED的字段和字位的显示内容。7407:驱动门电路,提供数码管显示的驱动电流。74LS04:非门,对单片机的片选信号取反,并和读写信号一起使用,决定74LS273的片选。L1--L4:发光二极管,通过单片机的P1.4--P1.7控制,用以显示秒表和时钟的时间变化。BUZZER:扬声器,在程序规定的情况下,发出声音,提示计时完毕。74LS373:地址锁存器,将P0口的地址和数据分开,分别输入到2764的数据和地址端口。2764:EPROM,为单片机提供外部的程序存储区。开关K0、K1、K2分别调整秒、分、时。按键RESET:在复位电路中,起到程序复位的作用。按键PULSE:提供单脉冲,从而实现单片机对外部脉冲的计数功能,利用单脉冲实现相应位加1。(2)地址分配和连接P2.7:和写信号一起组成字位口的片选信号,字位口的对应地址位:和写信号一起组成字段口的片选信号,字段口的对应地址位4000HD0--D7:单片机的数据总线,LED显示的内容通过D0--D7数据线从单片机传送到LEDP2.0--P2.5:单片机的P2口,和2764的高端地址线相连,决定2764中的存储单元的地址。P1.4--P1.7:单片机的P1口,和反光二极管L1--L4相连,通过单片机的P1.4--P1.7控制,用以显示秒表和时钟的时间变化。(3)功能简介LED显示模块与单片机的连接中,对LED显示模块的读写和字位、字段通道的选择是通过单片机的P2.6、P2.7口完成。其中,P2.6、P2.7口的片选信号需要和读写信号做一定的逻辑操作,以保证字位和字段选择的正确性。外部存储器2764是通过74LS373和单片机相连,并且通过P2口的相关信号线进行地址的分配。地址范围为0000H--1FFFH。3 各电路设计和论证3.1电源电路设计在各种电子设备中,直流稳压电源是必不可少的组成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。要想得到我们所要的+5V输出电压,就需将交流220V的电压经过二极管全波整流、电容滤波、7805稳压输出稳定的5V直流电压为整个电路提供电源。 图3.1 电源电路图4个IN4004组成桥式整流电路,电容(104uf)用于滤波,LM7805将经过整流滤波的电压稳定在5V输出。3.2 晶体振荡器51系列单片机内部有一个时钟电路(其核心时一个反相放大器),但并没有形成时钟的振荡信号,因此必须外接谐振器才能形成振荡。如何用这个内部放大器,可以根据不同的场合做出不同的选择。这样就对应了单片机时钟产生的不同方式:若采用这个放大器,产生振荡即为内部方式;若采用外部振荡输入,即为外部方式。方案一、内部方式如果在51单片机的XTAL1和XTAL2引脚之间外接晶体谐振器,便会产生自激振荡,即可在内部产生与外加晶体同频率的振荡时钟。最常见的内部方式振荡图如图3.2所示。 图3.2 晶体振荡电路不同单片机最高工作频率不一样,如AT89C51的最高工作频率为24MHZ,AT89S51的最高工作频率可达33MHZ。由于制造工艺的改进,现在单片机的工作频率范围正向两端延伸,可达40MHZ以上。振荡频率越高表示单片机运行的速度越快,但同时对存储器的速度和印刷电路板的要求也就越高。频率太高有时反而会导致程序不好编写(如延时程序)。一般来说,不建议使用很高频率的晶体振荡器。51系列的单片机应用系统一般都选用频率为6~12MHZ的晶振。这个电路对C1、C2的值没有严格的要求,但电容的大小多少会影响振荡器的稳定性、振荡器频率的高低、起振的快速性等。一般外接晶体时,C1、C2的值通常选为20~100PF。晶体振荡器是数字钟的核心。振荡器的稳定度和频率的精确度决定了数字钟计时的准确程度,通常采用石英晶体构成振荡器电路。一般说来,振荡器的频率越高,计时的精度也就越高。在此设计中,信号源提供1HZ秒脉冲,它是采用晶体分频得到的。AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件,XTAL2可以不接,而从XTAL1接入,由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要
回答者:网友
相关已解答问题
在移动端查看:
还没有汽配人账号?单片机原理及应用课后习题答案第5章作业_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机原理及应用课后习题答案第5章作业
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 单片机计数器实验 的文章

 

随机推荐