《单片机论文定时闹钟.doc》由会员分享,可在线阅读,更多相关《单片机论文定时闹钟.doc(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、- -单片机论文题 目: 单片机定时闹钟设计系 别: 机械系专 业:机械设计制造及自动化_班 级:机自二班_学 号: 1010111016_姓 名: 邓灵杰_ 指导教师: 海深 一、1.1 单片机根底知识 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。 MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS- 48单片机相比,它的构造更先进,功能更强,在原来的根底上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机
2、仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进展理论根底学习。 MCS-51系列单片机主要包括8031、8051和8751等通用产品。 DP-51S单片机仿真实验仪是由致远电子设计的DP系列单片机仿真实验仪之一,是一种功能强大的单片机应用技术学习、调试。二、2.1 硬件设计80C51 芯片部集成了 CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由部总线把这些不见连接在一起。80C51单片机部包含以下一些功能部件:1、 一个8位CPU;2、一个片振荡器和时钟电路;3、 4KB ROM80C51有4KB掩膜ROM,87C51有4KB EPROM,80
3、C31片有无ROM;4、 128BRAM;5、 可寻址64KB的外ROM和外RAM控制电路;6、 两个16位定时/计数器;7、 21个特许功能存放器;8、 4个8位并行I/O口,共32条可编程I/O端线;9、 一个可编程全双工串行口;10、 5个中断源,可设置成2个优先级。三、STC89C52RC单片机简要介绍单片机应用系统由硬件系统和软件系统两局部组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进展控制。与单片机配套的有相应的复位电路、时钟
4、电路以及扩展的存储器和IO接口,使单片机应用系统能够运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进展处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是LED指示灯,也可以是LED数码管,也可以是LCD显示器,还可以使用CRT显示器。单片机应用系统中键盘一般用的比拟多是矩阵键
5、盘,显示器用的比拟多的是LED数码管还LCD显示器。部定时器计数器中断系统1、MCS-51系列中51子系列有两个16位的可编程定时计数器可:定时计数器T0和定时计数器T1。它由加法计数器、方式存放器TMOD、控制存放器TCON等组成。方式存放器用于设定定时计数器T0和T1的工作方式,控制存放器用于对定时计数器启动、停顿进展控制。 2、每个定时计数器既可以对系统时钟计数实现定时,也可以外部信号计数实现计数功能通过编程设定来实现。 3、每个定时计数器都有多种工作方式,其中T0有四种工作方式,T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某种方式。四种工作方式为:13位定时计数器、16
6、位定时计数器、8位自动重置定时计数器、两个8位定时计数器只有T0有 4、每一个定时计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。中断系统:1、MCS-51单片机提供5个硬件中断源,2个外部中断源,2个定时计数器T0和T1的溢出中断TF0和TF1,1个串行口发送TI和接收RI中断。2、MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由部的中断允许存放器IE的各位来控制的。中断允许存放器IE的字节地址为A8H,可以进展位寻址。系统复位时,中断允许存放器IE的容为00H,如果要开放某个中断源,那么必须使IE中的总控置位和对应的中断允许位
7、置“1”。3、MCS-51单片机有5个中断源,为了处理方便,每个中断源有两级控制,高优先级和低优先级。通过由部的中断优先级存放器IP来设置,中断优先级存放器IP的字节地址为B8H,可以进展位寻址。如果某位被置“1”,那么对应的中断源被设为高优先级;如果某位被清零,那么对应的中断源被设为低优先级。对于同级中断源,系统有默认的优先权顺序,从高到低优先权顺序为外部中断0、定时计数器T0中断、外部中断1、定时计数器T1中断、串行口中断。通过设置中断优先级存放器IP能够改变系统默认的优先级顺序。4、MCS-51单片机响应中断的条件为:中断源有请求且中断允许。键盘和LED数码管显示器简介键盘是单片机应用系
8、统中最常用的输入设备,在单片机应用系统中,操作人员一般都是通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。键盘的构造形式一般有两种:独立式键盘和矩阵式键盘。矩阵式键盘的工作方式有3种:查询工作方式、定时扫描工作方式和中断工作方式。LED数码管显示器在单片机应用系统中,经常用到LED数码管作为显示输出设备,LED数码管显示器虽然显示信息简单,但它具有显示清晰、亮度高、使用电压低、寿命长、与单片机接口方便等特点,根本上能够满足单片机应用系统的需要,所以在单片机应用系统中经常用到。LED数码管显示器是由发
9、光二极管按一定的构造组合起来的显示器件。在单片机应用系统常使用的是8段式LED数码管显示器,它有共阴极和共阳极两种。所谓译码方式是指由显示字符转换得到对应的字段码的方式。对于LED数码管显示器,通常的译码方式有两种:硬件译码方式和软件译码方式。LED数码管在显示时,通常有两种显示方式:静态显示方式和动态显示方式。在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,那么通常用软件译码动态显示。主程序流程图定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到那么中断,在中断效劳程序中用一个计数器对50ms计数,
10、计20次那么对秒单元加1,秒单元加到60那么对分单元加1,同时秒单元清0;分单元加到60那么对时单元加1,同时分单元清0;时单元加到24那么对时单元清0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。定时器/计数器T0中断效劳程序流程图,如图,见下页开场现场保护,重置初值启动下一个50ms50ms 计数器加1秒单元加1,50ms计数器清0,秒写入秒个位和秒十位50ms 计数器=20?是分单元加1,秒单元清0,分写入分个位和分十位秒单元=60?分单元=60?中断返回否否否是是设计思想及操作用定时计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进展定时计数,设
11、初值。形成定时时间为50ms。用片RAM的7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60那么分计数器79H单元加1,。然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。显示格式为分十位、分个位-秒十位、秒个位。在处理过程中加上了按键判断程序,能对按键处理。按键处理设置为:如没有按键,那么时钟正常走时。当按下K0按键时,进入调分状态,时钟停顿走动;按K1可K2按键可进展加1或减1操作;继续按K0键可分别进展分的调整;最后按K0键将退出调整状态,时钟开场计时运行。1、在PROTEUS中设计硬件PROTEUS软件使用过程如下:1选择元
12、器件2放置元器件3连线4添加程序5运行仿真2、在KEIL51中编写程序,编译、连接形成HEX文件。3、在PROTEUS中把HEX文件加载到单片机芯片上。4、运行仿真看结果。四、4.1 设计总结 单片机的设计至今为止已经进入了令人鼓舞的阶段,在进展了长达几个月的时间的摸索与实验,使我不仅仅是对于单片机入门软件与硬件的常用设计与功能,还使我对于一项设计研究的制作过程所需要的详细步骤和具体的实现方法的力度的掌握。基于此作品作为毕业设计的创作成果,在当其中机器的功能等方面并非处于一个成熟的阶段,而且仅仅是因为向延元教师的要求以及我们的初步尝试,当中的缺点是无可非议地存在着。 当然在这次珍贵的结业设计活
13、动中,经历才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,用受益匪浅这个词语来概括这次难忘的活动我觉得再适宜不过了。但是,光是完成了作品还是不可以自我满足的,在从一开场的时候就怀着将作品制作得更加人性化,更加令人满意,更加地使功能完美又方便地被应用领域这个最终目的下,随着对单片机这门学科的认识加深,到达了拓展的程度,我想这个目的将在不远的时期被实现。 总之,这次设计从软件编写、调试到软硬件联机调试,我倾注了大量的时间和心血。真是曾经为程序的编写而冥思查找过,曾经为无法找出错误而郁闷苦恼过,也曾经为某一功能不能实现而犹豫彷徨过,但最终我成功了。 因为我不仅品味到了结
14、果的喜悦,更明白了过程的弥足珍贵。大收获和财富,使我终身受益。参考程序#include #define uint unsigned int#define uchar unsigned charuchar code segcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /09uchar code segcode2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /带小数点09uchar buffer=0,0,0,0;uchar buffer2=0,0,0,0; /闹钟uint h
15、ou,min,sec;uint hou2,min2=0; /闹钟uint i,status,num;bit flag,flag1,keyrelease;sbit alarm=P37;uchar buf,keyinput;void display();void keyscan();void keyprocess(unsigned char key);void delayMS(uint t)uint i;while(t-)for(i=0;i125;i+);void init() /初始keyrelease=1;buf=0x0f;min2=2; /防止翻开就鸣叫,设闹钟分=2flag=0;TMOD=
16、0x21;TH0=(65536-5000)/256;TL0=(65536-5000)%256;TH1=0xfd;TL1=0xfd;SCON=0x50;PCON=0x00;TR1=1;IP=0x10;TR0=0;IE=0x92; /开总、定时器0,串口中断void main()init();while(1)keyscan();display();if(hou=hou2&min=min2&sec5) /仿真使用alarm=alarm;/ if(hou=hou2&min=min2&sec=3) status = 0;break;case 0x0b:switch(status) /按下K3 加1 键,
17、2 种模式下加1case 1:if(flag1=0) if(min59) min+;else min=0;if(flag1=1)if(min259) min2+;else min2=0;break;break;case 2:if(flag1=0) if(hou23) hou+;else hou=0;if(flag1=1)if(hou20) min-;else min=59;if(flag1=1)if(min20) min2-;else min2=59;break;case 2:if(flag1=0) if(hou0) hou-;else hou=23;if(flag1=1)if(hou20)
18、hou2-;else hou2=23;break;default:break; /case 0break;default:break;void display()if(flag1=0)buffer0=hou/10; / 显示时的十位buffer1=hou%10; / 显示时的个位buffer2=min/10; / 显示分的十位buffer3=min%10; / 显示分的个位P2=0xef;/位选第1 个管P0=segcodebuffer0;delayMS(1);P2=0xdf;/位选第2 个管if(flag=1)P0=segcodebuffer1;elseP0=segcode2buffer1;
19、delayMS(1);P2=0xbf;/位选第3 个管P0=segcodebuffer2;delayMS(1);P2=0x7f;/位选第4 个管P0=segcodebuffer3;delayMS(1);if(flag1=1)buffer20=hou2/10; / 显示时的十位buffer21=hou2%10; / 显示时的个位buffer22=min2/10; / 显示分的十位buffer23=min2%10; / 显示分的个位P2=0xef;/位选第1 个管P0=segcodebuffer20;delayMS(1);P2=0xdf;/位选第2 个管P0=segcode2buffer21; /
20、便于区别,闹钟时间都带有小数点delayMS(1);P2=0xbf;/位选第3 个管P0=segcodebuffer22;delayMS(1);P2=0x7f;/位选第4 个管P0=segcodebuffer23;delayMS(1);void timer0() interrupt 1static uint count;TH0=(65536-5000)/256; / 定时器0 设置初始值1ms 中断初始值TL0=(65536-5000)%256;TR0=1;count+; /正常计时if(count=100) / 定时1S 到,以下为时钟的正常走钟逻辑flag=1;if(count=200)f
21、lag=0;count=0;sec+;if(sec= 60)sec=0; min+;if(min= 60)min=0; hou+;if(hou= 24)hou=0;void sint()interrupt 4i=+i%4;if(RI&i=1)RI=0;hou=SBUF;if(RI&i=2)RI=0;min=SBUF;if(RI&i=3)RI=0;hou2=SBUF;if(RI&i=0)RI=0;min2=SBUF;参考文献:MCS-51单片机原理,系统设计与应用 万福君 松峰 芳 吴贺荣 王秀梅 编著清华大学 景元.基于单片机的多用途定时器的设计与实现.电子工程师胡汉才.单片机原理及接口技术M,:清华大学.余永权,单片机与家用电器智能化设计M.:电子工业. 房小翠,王金凤.单片微型计算机与机电接口技术M.国防工业出版 社.皮红梅,英顺.单片机开发中的定时方法.石油化工高等专科学校学 报.- word.zl
限制150内