+-+机电工程系课程设计报告题目:专业:班级:学号:姓名:同组人:指导老师:答辩日期:一、绪论当今世界但片机以飞快的速度在发展,了解和掌握单片机技术是我们机电系学生应该学习的课程之一,基于本学期对单片机的学习,现在对单片机语言所写出的电子时钟展开说明,现在生活很多东西都是离不开电子了,许许多多的东西都被电子产品所代替,时钟就是一种在我们生活之中很普通的电子产品,它虽然在单片机机之中算是一种比较简单的东西,但它在我们生活在是普遍存在的,它能让我们对更多的电子产品有所了解,所以我们想要了解更多的电子产品,电子时钟也是我们应该了解的,所以我们对电子时钟展开课程设计,并对其工作原理及工作方式进行了解,这样能让我们初步学习到有关的电子产品。
设计过程中我们将对生活中电子时钟的工作方式进行了解,接着我们要在学过的单片机语言基础上,对电子时钟这样的工作方式进行单片机解释,有单片机语言解释,为什么电子时钟要这样工作,接着我们有汇编语言写出电子时钟程序,在报告中我们将对单机汇编语言的有关语句进行解释,并对单片机的电路板的工作原理进行解释,并对电子时钟工作方式进行说明。
二、对本课程设计的分析2.1 工作原理当电子时钟上电时候将在电子时钟上显示23-30-00,带表现在是时间,电子时钟将按正常的时间一样走动,有对应的四个按钮用来调整时钟所对应的时间,第一个按钮对应设置按钮,当它按下去时候,时钟将停止走动,这时候将进入调时间模式,第二个按键用来选择调的是时还有分还秒,第三个按键用来加运算的,第四个按键用来减运算的。
2.2 P3口对应的按键操作功能系统框图开始P3.0是否按下P3.1是否按下YES P3.2是否按下P3.3是否按下NOP3.3是否按下21H 是否为几YESP3.2是否按下P3.3是否按下P3.2是否按下NO时加一YES NO时减一是否为一YES NO分加一分减一是否为2NOYES YES NO秒加一秒减一说明:以上框图是系统版上对应的四个按键对电子时钟的操作功能,在什么情况下,对应的按键实现什么样的功能。
三、 主要电路模块的实现方案比较及选择3.1 电子时钟显示电路说明:P2口对应的为数码管的位选当P2为01H时候对应的最右边的数码管被点亮,将01H依次左移,数码管从右到左依次扫描,对应的数码管依次点亮,而我们就是根据数码管的动态显示让每位数码管显示1MS从右到左依次显示,而人的眼睛看上去就是同时看到8位数码管都亮了。
数码上另外8个端口接到P1口,,用来点亮每位数码管里对应的LED的亮灭,从而在数码管上显示我们想要她显示的数字。
3.2:51单片机最小系统版电路说明:左上角对应的是时钟复位电路,当S5按下时候,对应的时钟值会回到初始设定的值,左下角对应的是时钟晶体振荡电路,其产生的脉冲直接送给内部时钟电路,外接晶振时,C10和C11通常选择20-30pF,C10和C11对频率有微调作用,影响晶振的稳定性和起振的速度。
3.3 :电源指示灯电路说明:该电路用来观看电路是否有上电3.4:电子时钟按键调节电路说明:,该电路由4个按键组成,其中S1是设置按键,该按键功能是让电子时钟进入调时模式;S2是选择按键,该按键功能是用来选择是时调整,分调整,还是秒调整;S3按键对应的功能是加1操作;S4对应的功能是减一操作。
3.5:蜂鸣器电路说明:该电路我们设定时间到时将报警呼叫3.6 :下载程序电路说明:该电路是用来下载我们对应的时钟程序的,Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。
该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
四、系统电路图说明:电源模块上电后给单片机上电,整个电路只有上电后才能工作,串口模块一边连接到单片机,一边连接到电脑,通过STC将程序下载单片机,当单片机上电后,电子时钟就能工作了,系统电路图对应的8个9012的基极连接到单片机的P2口,用来开关9012从而达到数码管动态显示的位选效果,8个9012集电极连接到数码管的的位选。
数码管的a-g连接到单片机的P1口,单片机的的P1口将给数码管送码值以显示我们要的数字。
按键电路通过导线接到P3.0到P3.3,通过按键调整时间,蜂鸣器电路通过导线接到P1.7口,当设定时间到时候将报警呼叫。
五、系统的软件设计5.1 :程序初始化SHI EQU 51HFEN EQU 52HMIAO EQU 53HCNTR EQU 21H ;选择设置对象计数器ORG 00HJMP STARTORG 0BH ;中断入口地址JMP T0_INTORG 30HSTART: MOV 20H,#0MOV TMOD,#01HMOV TL0,#LOW(15536)MOV TH0,#HIGH(15536)MOV SHI,#23MOV FEN,#00MOV MIAO,#00MOV 56H,#10MOV 59H,#10MOV R7,#20SETB ET0SETB EASETB TR05.2 :主程序MAIN:CALL KSCAN ;调用按键扫描子程序CALL DISPLAY ;调用显示子程序MOV A,51HCJNE A,#01,MAIN0MOV A,52HCJNE A,#00,MAIN0CALL KSCANL2: CALL DISPLAY ;调用显示子程序CLR P1.7LCALL DL1MSSETB P1.7LCALL DL1MSLCALL DL1MSDJNZ R5,L2MAIN0: JMP MAIN5.3 :按键扫描子程序KSCAN:JB P3.0,KN ;判断P3.0是否有按下,没按跳到KN,否则接下去执行CALL DISPLAYJB P3.0,KN ;二次判断P3.0是否按下KSC3: CPL 20H.0 ;20H.0为1时进入按键操作KSC5: JB P3.0,KSC4 ;判断按键是否放开CALL DISPLAYJMP KSC5KSC4: JNB 20H.0,KN ;判断20H.0是否为1,为1向下执行KSC: JNB P3.1,SWITCH ;判断P3.1是否按下,按下执行SWTICHJNB P3.2,KINC ;判断P3.2是否按下,按下执行KINCJNB P3.3,KDEC ;判断P3.3是否按下,按下执行KDECJNB P3.0,KSC2CALL DISPLAYJMP KSCKSC2: CALL DISPLAYJB P3.0,KSC ;判断P3.0按键是否放开JMP KSC3KN: RET;//***************选择处理******************//SWITCH: CALL DISPLAYJB P3.1,KSC ;二次判断INC CNTRMOV R5,CNTRCJNE R5,#3,SW2MOV CNTR,#0SW2: JB P3.1,KSC ;等待按键放开?CALL DISPLAYJMP SW2;//**************加一********************//KINC: CALL DISPLAYJB P3.2,KSCMOV R3,CNTRCJNE R3,#0,KINCFEN ;加时INC SHIMOV R6,SHICJNE R6,#24,KINC2MOV SHI,#0KINCFEN: CJNE R3,#1,KINCMIAO ;加分INC FENMOV R6,FENCJNE R6,#60,KINC2MOV FEN,#0KINCMIAO: CJNE R3,#2,KINC2 ;加秒INC MIAOMOV R6,MIAOCJNE R6,#60,KINC2MOV MIAO,#0KINC2: JB P3.2,KSC ;等待按键放开CALL DISPLAYJMP KINC2;//*************减一******************//KDEC: CALL DISPLAYJB P3.3,KSCMOV R3,CNTRCJNE R3,#0,KDECFEN ;减时DEC SHIMOV R6,SHICJNE R6,#-1,KDEC2MOV SHI,#23KDECFEN: CJNE R3,#1,KDECMIAO ;减分DEC FENMOV R6,FENCJNE R6,#-1,KDEC2MOV FEN,#59KDECMIAO: CJNE R3,#2,KDEC2 ;减秒DEC MIAOMOV R6,MIAOCJNE R6,#0FFH,KDEC2MOV MIAO,#59KDEC2: JB P3.3,KDEC3 ;等待按键放开CALL DISPLAYJMP KDEC2KDEC3: JMP KSCRET5.4 :显示子程序5.4.2:程序系统框图开始设定位选的初值R4为01H分离时分秒,并将其放在@R0中,R0首地址为54H将@R0给P0口,将位选值给P2口延时1MSRLR4INC R0判断R0是否为5CHNO结束显示子程序YSE5.4.1:程序部分DISPLAY:MOV R0,#54HMOV A,MIAOCALL FENLIMOV A,FENCALL FENLIMOV A,SHICALL FENLIMOV DPTR,#TABMOV R0,#54HMOV R4,#01HDISLP: MOV P2,R4MOV A,@R0MOVC A,@A+DPTRMOV P0,ACALL DL1MSINC R0MOV A,R4RL AMOV R4,ACJNE R0,#5CH,DISLPRET5.5 :中断服务子程序5.5.1:系统框图 开始进入中断1S 时间是否到秒加1YES 60秒是否到分加1秒赋值个0个它YES60分是否到时加1分赋值个0个它24时是否到时赋值个0个它结束中断NO YES NOYESNO20H.0是否为15.5.2:程序部分T0_INT: JB 20H.0,INTOVERMOV TL0,#LOW(15536)MOV TH0,#HIGH(15536)DJNZ R7,INTOVERINC MIAOMOV R7,#20CPL 20H.1JB 20H.1, LIGHTONMOV 56H,#11MOV 59H,#11SJMP CONTINUELIGHTON:MOV 56H,#10MOV 59H,#10CONTINUE:MOV R6,MIAOCJNE R6,#60,INTOVERINC FENMOV MIAO,#0MOV R6,FENCJNE R6,#60,INTOVERINC SHIMOV FEN,#0MOV R6,SHICJNE R6,#24,INTOVERMOV SHI,#0INTOVER:RETI5.6:程序剩余部分5.6.1:分离子程序FENLI: MOV B,#10DIV ABMOV @R0,BINC R0MOV @R0,AINC R0INC R0RET5.6.2:1MS延时子程序DL1MS: MOV 5FH,#0DJNZ 5FH,$RET5.6.3:共阳字形码TAB: DB 0C0H,0F9H,0A4H,0B0H, 99HDB 92H, 82H, 0F8H, 80H,90H,0BFH,0FFH六、结论单片机真是一门拥有很多地方可以学习的地方,通过对电子时钟的设计分析我了解懂啊了单片机基本知识,而且最终我们设计出来了单片机电子时钟,这和我们想要的结果一致,所以单片机是可以设计出我们想要的电子产品的,只要是你想的到的,一般情况下单片机都是可以做的出来的。