1、保定东电自动化俱乐部 http:/www.dong- TEL:15284220125东电自动化俱乐部题 目 名 称 数字电子时钟 课 程 名 称 单片机原理及应用 学 生 姓 名 保定东电自动化俱乐部 学 号 代做毕设 QQ1620516415 专 业 自动化 电 话 15284220125 2011 年 06 月 29 日保定东电自动化俱乐部 http:/www.dong- TEL:15284220125设计(论文)任务书年级专业 电气自动化 学生姓名 学 号题目名称 数字电子时钟 设计时间课程名称 单片原理及其接口技术 课程编号 121200105 设计地点一、课程设计(论文)目的通过课程
2、设计,使学生巩固和加深对单片机基本知识的理解,学生查询资料、方案设计、方案比较,以及单元电路设计计算环节,进一步提高学生综合运用所学知识的能力,提高分析理解解决实际问题的能力。锻炼分析、解决电子电路问题的实际本领,通过此综合训练,为以后毕业设计打下基础。二、已知技术参数和条件1 .89c51 单片机2 .LED 数码显示管任务和要求(1) 设计一个基于单片机的电子时钟,并且能够实现分秒的现实和调节。(2) 设计出硬件电路(3) 设计出软件编程方法,并写出源代码(4) 用 proteus 进行仿真。保定东电自动化俱乐部 http:/www.dong- TEL:15284220125摘要单片计算机
3、即单片微型计算机。由 RAM ,ROM,CPU 构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而 51 系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。基于单片机课程的学习,本小组成员利用单片机实现时钟的显示,利用键盘和门电路控制时间的调整,充分利用单片机的资源和空间,较大限度的实现了功能,设计时主要应用了一个基于 AT89C51 单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用 Proteus 的 I
4、SIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。关键词:AT89C51 单片机 、 键盘控制 、 Proteus 仿真保定东电自动化俱乐部 http:/www.dong- TEL:15284220125目录摘要1 方案选取.51.1 总体方案介绍61.2 多功能电子表计时方案6.1.3 多功能电子表键盘显示方案.6.2 电路设计.72.1 键盘的设计72.2门电路的设计.72.3显示电路83 软件设计.103.1 程序流程图103.2 汇编源程序114 系统仿真.17.5 结束语18参考文献.18附录19保定东电自动化俱乐部 http:/www.don
5、g- TEL:152842201251 方案选取1.1 总体方案介绍本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。而单片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种设计方案的考虑:1.2 多功能电子表计时方案方案一:采用实时时钟芯片实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。计算机可通过中断或查询方式读取计时数据进行显示,因此计时功能的实现无需占用 CPU
6、的时间,程序简单。此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性 RAM,可用来存放需长期保存但有时也需变更的数据。由于功能完善,精度高,软件程序设计相对简单,且计时不占用 CPU 时间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。方案二: 软件控制。利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时及秒表计时。该方案节省硬件成本,且能使设计者对单片机的指令系统能有更深入的了解,从而掌握单片机应用技术 MCS-51 汇编语言程序设计方法,
7、因此,本系统设计采用此种软件控制方法来实现计时。而由于 ATMEL 公司的 AT89S51 单片机是低功耗的具有 4KB 在线可编程 Flash 存储器的单片机。它与通用 80C51 系列单片机的指令系和引脚兼容。片内的 Flash 可允许在线重新编程,也可使用通用非易失性存储器编程。它将通用 CPU 和在线可编程 Flash 集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。它的功能强大,而且也较容易购买,故本设计中所选的单片机为 AT89S51 单片机。保定东电自动化俱乐部 http:/www.dong- TEL:152842201251.2 多功能电子表键盘显示方
8、案方案一: 8279 扩展。该方案方框图如图 1.2.1 所 示,8279 是一种可编程的键盘/显示接 口专用芯片,它含有键盘输入和显示输 出两种功能,键扫描程序和动态显示程 序全由8279 硬件自动完成,此种方案能 以比较简单的硬件 电路和较少的软件开销实现单 片机与键盘、LED 显示器的接口。方案二: 8155 扩展,LED 动态显示。 该方案方框图如图 1.2.2 所示, 8155 是一块可编程的接口芯片,与单片机的 接口非常简单,它的键盘、显示共用一个接 口电路,可节省 I/O 口。但动态扫描方式需占用 CPU 较多的时间,在单片机没有太 多实时测控任务的情况下可以采用。方案三: 串口
9、扩展,LED 静态显 示。该方案方框图如图 1.2.3 所示,独立式键盘配置灵 活,软件结构简单,按键较多时 不宜采用。静态显示占用口资源少, 采用串口传输实现静态显示, LED 数码管与单片机之间通过 6 个移位寄 存器相连,显示亮度有保证,但此 方案的硬件开销大,电路复杂, 信息刷新速度慢,比较适用于并行口资源较少的场合。方案四: 独立式按键,LED 动态显示。 该方案方框图如图 1.2.4 所示,独立式按键直接与单片机 I/O 口相连构成键盘,每个按键不会相互影响,因本系统用到的按键比较 少,采用独立式键盘不会浪费 I/O 口线,所以本系统 采用保定东电自动化俱乐部 http:/www.
10、dong- TEL:15284220125独立式键盘。动态显示的亮度虽然不如静态显示,但其硬件电路较简单,可节省硬件成本,虽然动态扫描需占用 CPU 较多的时间,但本系统中的单片机没有很多实时测控任务,因此,本系统采用此种方案。 2 电路设计2.1 键盘的设计考虑到时间误差的存在以及调整时间的方便性,采用独立式键盘。提高 CPU 的工作效率,采用中断工作方式四个键盘接于 P1 口,用 74ls21 与门接于外部中断 0,实现了调整时间的快速性,当四个键盘有中断发生,首先判断四个键哪个按下,向 CPU 发一个中断请求信号,然后调用相应的中断程序。参考电路如下:键盘的工作过程可分为两步:第一步是
11、CPU 首先检测键盘上是否有按键被按下,第二步是识别哪一个减按下。检查键盘上有无键按下可采用查询工作方式、定时扫描工作方式和中断工作方式。查询工作方式(例如用 8155 扩展 I/O 组成的行列式键盘):键盘上有无键按下是有列线送出全扫描字,然后读入行线状态来识别的。其方法是 PA 口输出 00H,即所有列线置成低电平,然后将行线电平状态读入累加器 A 中,保定东电自动化俱乐部 http:/www.dong- TEL:15284220125如果有键按下,总会有一根行线拉置低电平,从而使行输入状态不全为“1”。键盘中哪一个键按下是有列线逐列置低电平后,检查行输入状态,称为逐列扫描。方法是:从 P
12、C 口读入行线状态,如果全为 “1”,则所按下之键不在此列,如果不全为 “1”,则在此列,并且是与“0”电平行线相交的交点上的那个键。2.2 门电路的设计为了达到调整时间的快速性与准确性,采用中断方式,四个键盘采用与门芯片74LS21。当四个键盘有一个按下后就会向 CPU 申请中断。2.3 显示电路设计显示采用 led 动态显示方式,共阴极端由 P2 口线控制,分为段选线和位选线,利用人的视觉停留达到显示的效果,段选线控制字符选择,位选线控制显示位的亮或暗。从段选线 I/O 口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通
13、位就显示相应字符,并保持几毫秒的延时,为选通不显示字符(保持熄灭)。这样,对各位显示就是一个循环过程。从计算机工作来看,在一个瞬间只有一位显示字符,而其他位都是熄灭的。但由于人的视觉停留,这种动态变化是察觉不到的。从效果上看,各位显示器能连续而稳定地显示不同的字符。保定东电自动化俱乐部 http:/www.dong- TEL:152842201253 软件设计3.1 程序流程图 开始有键按下否?调用延时子程序调用延时子程序有键按下否?否?判断闭合键,键码入栈保护闭合键释放否?键码 A返回保定东电自动化俱乐部 http:/www.dong- TEL:152842201253.2 汇编源程序ORG
14、 0000HAJMP STARTORG 0003HLJMP ST1ORG 000BHAJMP TT0ORG 0030HSTART: MOV 30H,#00H ;秒个位内存单元MOV 31H,#00H ;秒十位内存单元MOV 32H,#00H ;分个位内存单元MOV 33H,#00H ;分十位内存单元MOV 34H,#00H ;时个位内存单元 MOV 35H,#00H ;时十位内存单元MOV TMOD,#01H ;定时器 T0,工作方式1,MOV TH0,#3CH ;定时 50MSMOV TL0,#0B0H ;MOV R0,#30H ;指针指向显示单元MOV R5,#0FEH ;选中秒个位MOV
15、 R1,#20 ;MOV 36H,#00H ;时位键盘判断时用MOV R3,#6 ;秒十位判断时用MOV R2, #6 ;分十位判断时用 MOV R4,#10 ;MOV 40H,#10保定东电自动化俱乐部 http:/www.dong- TEL:15284220125MOV IE, #81H ;SETB EA ;开中断SETB ET0 ;开 T0 中断SETB TR0 ;记时开始MAIN: LCALL DISLJMP MAIN;#显示子程序#DIS: MOV A,R5 ;先位码MOV DPTR,#7FFFH ;位码选择 p2.7MOVX DPTR,AMOV A,R0 ;再段码MOV DPTR,
16、#TAB ;表地址MOVC A,A+DPTR ;查表MOV DPTR,#0BFFFH ;段码选择 p2.6;#显示小数点#CJNE R0,#32H,GO111 ;小数点选择(R0)=/=32H 转移ORL A,#80HGO111: CJNE R0,#34H,MINORL A,#80HMIN: MOVX DPTR,A ;送出去显示LCALL DELAY ;1MS 延时LCALL DELAY LCALL DELAYINC R0 ;修改指针指向下一显示单元MOV A,R5 ;也可写为 XCH A,R5保定东电自动化俱乐部 http:/www.dong- TEL:15284220125JNB ACC.
17、5,LH ;判断显示完否?RL A ;也可写为 XCH R5,AMOV R5,A AJMP ENR ;返回循环显示LH: MOV R0,#30H ;重心定义显示指针MOV R5,#0FEH ;重设位码,形成循环 ACC.0-ACC.3ENR: RET;#定时中断#TT0: MOV TH0,#3CH ;MOV TL0,#0B0H ;DJNZ R1,FANHUI ;判断 1 秒到否?未到跳转MOV R1,#20 ;INC 30H ;秒个位加一DJNZ R4,FANHUI ;判断 10 秒到否?未到跳转MOV R4,#10 ;MOV 30H,#00H ;INC 31H ;DJNZ R3,FANHUI
18、 ; MOV R3,#6 ; MOV 31H,#00H ;INC 32H DJNZ 40H,FANHUI ;MOV 40H,#10MOV 32H,#00H保定东电自动化俱乐部 http:/www.dong- TEL:15284220125INC 33HDJNZ R2,FANHUIMOV R2,#6MOV 33H,#00H INC 36H ;时位判断时用MOV A,36HCJNE A,#24,JUMPMOV 36H,#00HJUMP: MOV A,36HMOV B,#10DIV ABMOV 34H,BMOV 35H,AFANHUI: RETI;*键盘处理程序* ST1: CLR EX0 ;键盘
19、1 判断时用PUSH BPUSH ACCJB P1.0,ST2LCALL DELAY111JNB P1.0,$LCALL DELAY111DJNZ R3,GOMOV R3,#6GO: INC 31HMOV A,31H保定东电自动化俱乐部 http:/www.dong- TEL:15284220125CJNE A,#6,$+3JNB P1.0,$JC ST2MOV 31H,#00HMOV A,31HST2: JB P1.1,ST3 ;键盘 2 判断时用LCALL DELAY111JNB P1.1,$LCALL DELAY111DJNZ 40H,GO1MOV 40H,#10GO1: INC 32H
20、MOV A,32HCJNE A,#10,$+3JNB P1.1,$JC ST3MOV 32H,#00HMOV A,32HST3: JB P1.2,ST4 ;键盘 3 判断时用LCALL DELAY111JNB P1.2,$LCALL DELAY111DJNZ R2,GO2MOV R2,#6GO2: INC 33HMOV A,33HCJNE A,#6,$+3保定东电自动化俱乐部 http:/www.dong- TEL:15284220125JNB P1.2,$JC ST4MOV 33H,#00HMOV A,33HST4: JB P1.3,ST6 ;键盘 4 判断时用LCALL DELAY111J
21、NB P1.3,$LCALL DELAY111INC 36HMOV A,36HCJNE A,#24,JUMP1MOV 36H,#00HJUMP1: MOV A,36HMOV B,#10DIV ABMOV 34H,BMOV 35H,AST6: POP ACC ;键盘中断返回POP BSETB EX0RETI;#延时 1MS 子程序#DELAY: MOV R7,#02HDE1: MOV R6,#0FEHDE2: DJNZ R6,DE2DJNZ R7,DE1RET;#键盘延时消抖程序#保定东电自动化俱乐部 http:/www.dong- TEL:15284220125DELAY111:MOV 50H
22、,#2 ;键盘消抖程序DE1111: MOV 51H,#255DJNZ 51H,$DJNZ 50H,DE1111RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00HEND4 系统仿真保定东电自动化俱乐部 http:/www.dong- TEL:152842201255 结束语我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和
23、讲解下,渐渐对这门课逐渐保定东电自动化俱乐部 http:/www.dong- TEL:15284220125产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。参考文献李建忠编著,单片机原理及应用西安电子科技大学出版社,2008。胡汉才编著,单片机原理及其接口技术清华大学出版社,2004。贾金铃等编著,微型计算原理及应用重庆大学出版社,2006。吴清秀,周荷琴编著,微型计算机原理与接口技术中国科学技术大学出版社,2004。吴向军、罗源明等编著汇编语言程序设计高等教育出版社,2001。俱乐部简介保定东电自动化俱乐部成立于 2008 年,专注于工业自动化的
24、研发设计、生产和制造,为客户提供完整的行业技术解决方案。俱乐部与华北电力大学、河北农业大学深入合作,不断创新,在现场总线技术、检测技术等方面获得了大量的知识和经验,极大地提高了俱乐部新产品的技术起点,加快了科技研发成果转化速度和制造流程的质量水平。俱乐部充分发挥科研人员的才智和联合优势,将电力、计算机、自动控制、通讯、网络等现代先进的多科理论和技术综合应用,成功研制出各种电力自动化、继电保护、检测等产品。俱乐部产品已广泛应用于电力、煤炭、化工、石油、冶金等行业,俱乐部以高品质的产品和高标准的服务,获得了国内广大新老朋友的信赖和好评。俱乐部时刻关注和分析国内外同类产品,做到引进、消化、吸收、和再创新,全体员工本着对社会、对自己高度负责的责任感和使命感,热忱欢迎各界人士和同行莅临指导,洽谈商务,共谋发展大计。网址:http:/www .dong- QQ:1620516415 TEL:15284220125