单片机MCS51数字时钟_第1页
单片机MCS51数字时钟_第2页
单片机MCS51数字时钟_第3页
单片机MCS51数字时钟_第4页
单片机MCS51数字时钟_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机mcs-51数字时钟课程设计系别: 专业: 班级: 姓名: 学号: 日期: 一、课程设计的目的二、设计内容三、代码说明四、组件说明与图示五、mcs-51单片机系统简介六、mcs-51单片机内部定时器/计数器中断系统简介七、键盘和led数码管显示器简介八、总结一、课程设计的目的本课程设计是自动化专业、电子信息技术专业学生在学完单片机原理及课程之后必修课程,它的教学目的和任务是综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。二、设计内容利用单片机的定时计数器,中断系统,以及阵列键盘

2、和led显示器进行设计。在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。用定时计数器t0,工作于定时,采用方式1,对12mhz的系统时钟进行定时计数,初值设为c34f。形成定时时间为50ms。用片内ram的7bh单元对50ms计数,计20次产生秒计数器7bh单元加1,秒计数器加到60则分计数器79h单元加1,分计数器加到60则时计数器7ah单元加1,时计数器加到24则时计数器清0。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为小时十位、小时个位-分十位、分个位-秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。三、代

3、码说明;主程序start:mov r0,#70hmov r7,#04hinit: mov r0,#78hinc r0djnz r7,init;对787b初始化00mov 72h,#10mov 75h,#10;72h、75h=#10,这个是时钟间隔的段选码mov tmod,#01hmov tl0,#0b0hmov th0,#03ch;定时t0初始化setb easetb et0;开启定时中断setb tr0;定时开始start1:lcall scan;输出时间(动态显示)lcall keyscan;检测按键sjmp start1;延时1ms子程序dl1ms:mov r6,#14hdl1:mov

4、r7,#19hdl2:djnz r7,dl2djnz r6,dl1ret;延时20ms子程序dl20ms:acall scanacall scan; 实际上包括了对数码管的3次动态显示acall scanret;数码管显示程序scan:mov a,78h ;处理时间缓冲数据:将60进制化为两个十进制(开始)mov b,#0ahdiv ab;处理秒mov 71h,amov 70h,bmov a,79hmov b,#0ahdiv ab;处理分钟mov 74h,amov 73h,bmov a,7ahmov b,#0ahdiv ab;处理时钟mov 77h,amov 76h,bmov r1,#70h

5、;r1是时间缓冲区首地址mov r5,#80h;r5是位选码,实现数码动态显示mov r3,#08hscan1:mov a,r5mov p2,a;位选码,r5实现数码动态显示mov a,r1;从时间缓冲区提取一位数mov dptr,#tab;码表首地址tabmovc a,a+dptr;将该位数译码输出mov p0,a;将该位数译码输出并显示mov a,r5lcall dl1ms;每位输出后延迟1ms,然后进行下一位的输出显示inc r1;r1指向下一位时间缓冲区地址mov a,r5rr amov r5,a;r5会选择下一位数码管djnz r3,scan1mov p2,#0fh;mov p0,#

6、0c0h;这两句是扫描程序scan没有执行时数字时钟的状态,当按键按下不放时,前4位会显示0,rettab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh;"09","-"的共阳极字段码秒速五厘米;定时器/计数器t0中断服务程序intt0:push accpush psw;store the sceneclr et0; 停止定时时中断clr tr0; 停止定时mov tl0,#0b0hmov th0,#03chsetb tr0;restart toinc 7bh;mov a,7bhcjne a,#

7、14h,outt0;count the tf0 for 20 timesmov 7bh,#00inc 78h;increase 1 second when (7bh) has counted "tf0=1" for 20 times,that is 1s in total!mov a,78hcjne a,#3ch,outt0mov 78h,#00inc 79h;increase 1 minute when second is overflowmov a,79hcjne a,#3ch,outt0mov 79h,#00inc 7ah;increase 1 hour when m

8、inute is overflowmov a,7ahcjne a,#18h,outt0mov 7ah,#00;the next dayoutt0:setb et0;中断服务结束,恢复定时中断0pop pswpop acc;recovery the scenereti;按键处理程序keyscan:clr ea;屏蔽中断jnb p1.0,keyscan0jnb p1.1,keyscan1jnb p1.2,keyscan2keyout:setb ea;恢复中断ret;按键处理程序细节keyscan0:lcall dl20msjb p1.0,keyout;持续按下20ms以上按键才有效,这20ms间实

9、际上是对数码管作3次动态显示wait0:jnb p1.0,wait0inc 7ch;7c代表状态,其初值为0(调整小时),第一次按下变为1(暂停并调整小时),二次按下变为2(暂停并调整分钟),三次按下变回0(从暂停中恢复)mov a,7chclr tr0;停止计时clr et0;停止计时中断cjne a,#03h,keyout;当7c不为03时,停止计时mov 7ch,#00;setb tr0;恢复计时setb et0;恢复计时中断sjmp keyoutkeyscan1:lcall dl20ms;持续按下20ms以上按键才有效jb p1.1,keyoutwait1:jnb p1.1,wait1

10、mov a,7ch;20ms后放下按键后cjne a,#02h,kscan11;increase minute when "(7c)=2)",or hour otherwiseinc 79h;increase minutemov a,79hcjne a,#3ch,keyoutmov 79h,#00sjmp keyoutkscan11:inc 7ah;increase hourmov a,7ahcjne a,#18h,keyoutmov 7ah,#00sjmp keyoutkeyscan2:lcall dl20msjb p1.2,keyoutwait2:jnb p1.2,wa

11、it2;按下20ms以上按键才有效mov a,7chcjne a,#02h,kscan21;increase minute when "(7c)=2)",or hour otherwisedec 79h;decrease minutemov a,79hcjne a,#0ffh,keyoutmov 79h,#3bhsjmp keyout;kscan21:dec 7ah;decrease hourmov a,7ahcjne a,#0ffh,keyoutmov 7ah,#17hsjmp keyoutend四、组件说明与图示本设计主要组件为:时钟振荡源、复位电路、数码管接口、按键电

12、路1、复位电路说明:当rst保持10ms以上的高电平时,单片机复位,但是内部ram不会复位。2、时钟振荡源说明:本设计使用内部时钟振荡电路,外接石英晶体和微调电容。3、数码管接口说明:p0接数码管的段选口,p2接位选口。数码管属共阴极,段选信号低电平有效。4、按键电路说明:由于使用内部程序rom,所以ea接高电平;p1.0p1.2接按键,低电平有效。5、电子时钟效果图五、mcs-51单片机系统简介mcs-51单片机是美国inte公司于1980年推出的产品,与mcs-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,mcs-51单片机可以算是相

13、当成功的产品,一直到现在,mcs-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与mcs-51单片机作为代表进行理论基础学习。我们也以这一代表性的机型进行系统的讲解。    mcs-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:·8位cpu    ·4kbytes 程序存储器(rom)    ·128bytes的数据存储器(ram)    ·32条i/o口线  

14、;  ·111条指令,大部分为单字节指令    ·21个专用寄存器    ·2个可编程定时/计数器    ·5个中断源,2个优先级    ·一个全双工串行通信口    ·外部数据存储器寻址空间为64kb    ·外部程序存储器寻址空间为64kb    ·逻辑操作位寻址功能  &#

15、160; ·双列直插40pindip封装    ·单一+5v电源供电mcs-51以其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“名机”,为以后的其它单片机的发展奠定了基础。正因为其优越的性能和完善的结构,导致后来的许多厂商多沿用或参考了其体系结构,有许多世界大的电气商丰富和发展了mcs-51单片机,象philips、dallas、atmel等著名的半导体公司都推出了兼容mcs-51的单片机产品,就连我国的台湾winbond公司也发展了兼容c51(人们习惯将mcs-51简称c51,如果没

16、有特别声明,二者同指mcs-51系列单片机)的单片机品种。 下表是80c51系列单片机的主要分类及功能特性: 系列    典型芯片 i/o口 定时/计数器 中断源 串行通信口 片内ram   片内rom     说明 80c31   4x8位   2x16位     5     1        128字节 

17、    无   80c51   4x8位   2x16位     5     1        128字节    4kb掩膜rom   87c51   4x8位   2x16位     5   

18、60; 1         128字节   4kbeprom   89c51   4x8位   2x16位     5     1         128字节   4kbeeprom   80c32   4x8位

19、0;  2x16位     6      1        256字节    无   80c51   4x8位   2x16位     6      1        256字节&

20、#160;   8kb掩膜rom   87c52   4x8位   2x16位     6      1        256字节    4kbeprom   89c52   4x8位   2x16位     6 

21、60;    1        256字节    4kbeeprom   8051是mcs-51系列单片机中的代表产品,它内部集成了功能强大的中央处理器,包含了硬件乘除法器、21个专用控制寄存器、4kb的程序存储器、128字节的数据存储器、4组8位的并行口、两个16位的可编程定时/计数器、一个全双工的串行口以及布尔处理器。mcs-51具有比较大的寻址空间,地址线宽达16条,即外部数据存储器和程序存储器的寻址范围达216=64kb,这作为单片机控制

22、来说已是比较大的,这同时具备对i/o口的访问能力。此外,mcs-51采用模块化结构,可方便地增删一个模块就可引脚和指令兼容的新产品。从而容易使产品形成系列化。由于mcs-51集成了几乎完善的8位中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,硬件的加、减、乘、除法器和布尔处理机及各种逻辑运算和转移指令,这给应用提供了极大的便利。mcs-51的指令系统近乎完善,指令系统中包含了全面的数据传送指令、完善的算术和逻辑运算指令、方便的逻辑操作和控制指令、对于编程来说,是相当灵活和方便的。    mcs-51单片机的工作频率为2-12mhz,当振荡频率为

23、12mhz时,一个机器周期为1us,这个速度应该说是比较快的。8051中集成了完善的各种中断源,用户可十分方便地控制和使用其功能,使得它的应用范围加大,可以说它可以满足绝大部分的应用场合。mcs-51把微型计算机的主要部件都集成在一块心片上,使得数据传送距离大大缩短,可靠性更高,运行速度更块。由于属于芯片化的微型计算机,各功能部件在芯片中的布局和结构达最优化,抗干扰能力加强,工作亦相对稳定。因此,在工业测控系统中,使用单片机是最理想的选择。单片机属于典型的嵌入式系统,所以它是低端控制系统最佳器件。mcs-51的开发环境要求较低,软件资源十分丰富,介绍其功能特性书籍和开发软件随处可取,只需配备一

24、台pc(个人电脑对电脑的配置基本上无要求),一台仿真编程器即可实现产品开发,早期的开发软件多使用dos版本,随着windows视窗软件的普及,现在几乎都使用windows版本,并且软件种类繁多,琳琅满目,在众多的单片机品种中,c51的环境资源是最丰富的,这给c51用户带来极大的便利。六、mcs-51单片机内部定时器/计数器中断系统简介(一)定时/计数器1 工作方式0 定时/计数器t0工作在方式0时,16位计数器只用了13位,即th0的高8位和tl0的低5位,组成一个13位定时器/计数器。 1)、工作在定时方式 2)、工作在计数方式 2 工作方式1 定时器t0工作方式1与工作方式0类同,差别在于

25、其中的计数器的位数。工作方式0以13位计数器参与计数,工作方式1则以16位计数器参与计数。 1)、工作在定时方式 2)、工作在计数方式 工作方式1是16位计数器。这是工作方式1与工作方式0在计数方式时唯一差别。 3 工作方式2 定时器t0在工作方式2时,16位的计数器分成了两个独立的8位计数器th0和tl0。 1)、工作在定时方式 2)、工作在计数方式 工作方式2与工作方式0、方式1的差别,在于工作方式2是一个8位的计数器。 4 工作方式3 工作方式3仅对定时器t0有效。当定时器t0工作在方式3时,将16位的计数器分为两个独立的8位计数器th0和tl0。当定时器t0工作在方式3时,定时器t1只

26、能工作在方式02,并且工作在不需要中断的场合。(二)中断系统什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。 仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。第一、什么可以引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了.等等诸如此类的事件,我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串

27、行口中断。第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。第三、中断的响应过程:当有事件产生,进入

28、中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应可以分为以下几个步骤:1、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。2、寻找中断入口,根据5个不同的中断源所产生

29、的中断,查找5个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。3、执行中断处理程序。4、中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。七、键盘和led数码管显示器简介键盘是一组按键组合的开关的集合,平时按键开关处于断开状态,当按下时它才闭合。当键位没按下时输出为高电平,键位按下时输出低电平。通常一个单片机系统用到的键盘都包含很多键位,这些键位都通过io接口进行连接,按下一个键位后通过键盘接口电路就得到该键位的编码。通常有两种方法进行编码。一是用连接键盘的io线的二进制组合进行编码。二是顺序排列编码。此处是用的共阳极的led数码管,共阳就是7段的显示字码共用一个电

温馨提示

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

评论

0/150

提交评论