微机原理-数字钟(电子钟)-课程设计
- 格式:doc
- 大小:3.42 MB
- 文档页数:26
电子钟设计1任务要求1.1显示位置:屏幕中央.1.2日期显示格式"时:分:秒.1.312/24时制可调.1.4在显示屏上显示提示语“CURRENT TIME IS:”和当前时间.2工作原理1时钟起始时间的设置先调用DOS操作系统模块9,在显示屏上显示提示语“TIME SYSTEM IS:”,输入时制12或24后,显示“CURRENT TIME IS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时:分:秒”。
输入的时间以字符串形式存放在已定义的存储器缓存区内,继而调用TRAN1转换子程序和MUL10乘10子程序,将存放在存储器缓存区内的ASCII字符转换为压缩BCD码,并将时、分、秒的值放在寄存器CH、DH、DL中。
2延时程序调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。
在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。
秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。
3时间显示调用DOS操作系统模块9,可用来显示存储器内字符串。
由于显示的字符必须为ASCII码,因为要调用TRAN2转换子程序将寄存器CH、DH、DL内压缩BCD码字符串转换成ASCII字符串,字符串最后以字符“$”结束,并按时、分、秒的顺序送存储器缓冲区内。
调用DOS 操作系统模块9,(DS:DX)应指向字符串首址。
程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下CTRL和BREAK二键。
4程序堆图5程序清单DATA SEGMENTBUFFER DB 10 ;设置输入字符串用缓冲区 DB ?DB 10 DUP(?)TS DB 'TIME SYSTEM IS:$'CT DB 'CURRENT TIME IS:$'PM DB 'PM $'AM DB 'AM $'KEEPIP DW 0KEEPCS DW 0SR DB ?HOUR DB ?DAT ENDSSTA SEGMENT PARA STACK 'STACK'STAPN DB 100 DUP(?)TOP EQU LENGTH STAPNSTA ENDSCOD SEGMENTSTART PROC FARASSUME CS:COD,DS:DAT,SS:STAMOV AX,DATAMOV DS,AXMOV AX,STAMOV SS,AXMOV AX,TOPMOV SP,AXMOV AH,35H ;设置1CH中断MOV AL,1CHINT 21H ;段地址放入ES,偏移地址放入BXMOV KEEPIP,BX ;保偏移地址存MOV KEEPCS,ES ;保存段地址PUSH DSMOV DX,OFFSET TIMEMOV AX,SEG TIMEMOV DS,AXMOV AL,1CHMOV AH,25H ;设置中断功能调用INT 21HPOP DSMOV DX,OFFSET TS ;DOS功能模块,显示字符串MOV AH,9INT 21HMOV AH,1 ;DOS功能模块,从键盘输入字符INT 21HMOV AH,1INT 21HMOV SR,ALMOV DL,0AH ;"换行"MOV AH,2INT 21HMOV DL,0DH ;"回车"MOV AH,2INT 21HMOV DX,OFFSET CT ;DOS功能模块,显示字符串,提示从键盘输入MOV AH,9INT 21HMOV DX,OFFSET BUFFERMOV AH,10 ;DOS功能模块,从键盘输入字符串到缓冲区INT 21HMOV BX,OFFSET BUFFER+2CALL TRAN1 ;将输入的ASCII码转换为BCD码INC BXINC BXCALL TRAN1INC BXINC BXCALL TRAN1MOV BX,OFFSET BUFFER+2MOV AL,[BX]CALL MUL10 ;将BCD码转换为压缩的BCD码MOV CH,ALINC BXINC BXMOV AL,[BX]CALL MUL10MOV DH,ALINC BXINC BXMOV AL,[BX]CALL MUL10MOV DL,ALAGAIN: PUSH CXMOV CX,18STI ;开中断W: CMP CX,0JNE WCLIPOP CXMOV AL,DLADD AL,1 ;"秒"加1DAAMOV DL,ALCMP AL,60H ;"秒"与60比较JNE DISPY ;小于60S,转显示程序MOV DL,0 ;等于60S, "秒"值为0,"分"+1MOV AL,DHADD AL,1DAAMOV DH,ALCMP AL,60H ;"分"于60比较JNE DISPYMOV DH,0MOV AL,CHADD AL,1DAAMOV CH,ALMOV AL, SRCMP AL,32HJNE NEXTJMP DISPYNEXT: MOV AL,CHMOV HOUR,CHCMP AL,24HJNE DISPYMOV CH,0DISPY: CALL IOCLRCALL IOSET1CALL STARCALL IOSET2CALL STARCALL IOSETMOV BX,OFFSET BUFFERMOV AL,SRCMP AL,32HJNE NEXT2CALL AD12MOV AL,HOURJMP NEXT1NEXT2: MOV AL,CH ;"时"值转换成ASCII码NEXT1: CALL TRAN2 ;将压缩BCD码转换成ASCII码MOV AL,':'MOV [BX],ALINC BXMOV AL,DH ;"分"值转换成ASCII码CALL TRAN2INC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,DL ;"秒"值转换成ASCII码CALL TRAN2INC BXMOV AL,'$' ;显示字符串结束码MOV [BX],ALPUSH BXPUSH CXPUSH DXMOV DX,OFFSET BUFFERMOV AH,9 ;DOS功能模块,显示字符串INT 21HPOP DXPOP CXPOP BXJMP AGAINCLIPUSH DSMOV DX,KEEPIPMOV AX,KEEPCSMOV DS,AXMOV AH,25HMOV AL,1CHINT 21HPOP DSSTIRETSTART ENDPMUL10 PROC ;将BCD码转换为压缩的BCD码ADD AL,ALDAAMOV CL,ALADD AL,ALDAAADD AL,ALADD AL,CLDAAMOV CL,ALINC BXMOV AL,[BX]ADD AL,CLRETMUL10 ENDPTRAN1 PROC ;ASCII码转换成BCD码MOV AL,[BX]AND AL,0FHMOV [BX],ALINC BXMOV AL,[BX]AND AL,0FHMOV [BX],ALRETTRAN1 ENDPTRAN2 PROC ;将压缩BCD码转换成ASCII码MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV [BX],ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV [BX],ALRETTRAN2 ENDPIOCLR PROC ;调用BIOS,清除全屏幕PUSH CXPUSH DXPUSH BXPUSH AXMOV AX,0600HMOV BH,02SUB CX,CXMOV DX,184FHINT 10HPOP BXPOP DXPOP CXRETIOCLR ENDPTIME PROCDEC CXIRETTIME ENDP ;调用BIOS,设置屏幕光标在中央PUSH DXPUSH BXPUSH AXMOV AH,02SUB BH,BHMOV DX, 0C23HINT 10HPOP AXPOP BXPOP DXRETIOSET ENDPIOSET1 PROCPUSH AXPUSH BXPUSH DXMOV DX,0A1AHMOV BH,00MOV AH,02INT 10HPOP DXPOP BXPOP AXRETIOSET1 ENDPIOSET2 PROCPUSH AXPUSH BXPUSH DXMOV DX,0E1AHMOV BH,00MOV AH,02INT 10HPOP BXPOP AXRETIOSET2 ENDPSTAR PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV AL,3DHMOV BH,0MOV BL,0CHCMP HOUR,24HJNZ XMOV HOUR,0HX: MOV CX,WORD PTR HOUR INT 10HPOP DXPOP CXPOP BXPOP AXRETSTAR ENDPAD12 PROCPUSH DXMOV HOUR,CH MOV AL,SRCMP AL,32HJNE ZHMOV AL,HOURCMP AL,24HJNE NEXT3MOV CH,0MOV HOUR,CHJMP S12NEXT3: CMP AL,12HJBE S12MOV DX,OFFSET PMMOV AH,9INT 21HMOV AL,HOURMOV DH,12HSUB AL,DHDASMOV HOUR,ALJMP ZHS12: CMP AL,12HJNE ZMOV DX,OFFSET PMMOV AH,9INT 21HJMP ZHZ: MOV DX,OFFSET AMMOV AH,9INT 21HZH: POP DXRETAD12 ENDPCOD ENDSEND STAR6设计时遇到的问题及解决方法在课程设计中遇到的最大的困难是如何利用软、硬件配合的方式产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,不知如何是好.于是我又重新翻阅了我们的学习课本,也就是电子工业出版社的《微机原理与接口技术(基于16位机)》,重点研究了第9章《中断》,通过对这一章的学习,我终于对中断有了详细的认识,在设计程序时也容易了很多。
1.设计目的培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。
通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。
掌握8255、8259、8253等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8086微处理器完成了电子秒表系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
2.设计内容设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
可用开关控制,也可用按键控制。
(开关控制☆)(按键控制★)3.设计要求一.基本要求1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。
其中数字0控制清零,数字1控制继续和退出二.提高要求:1)秒表可以分组存储、批量显示、倒计时等。
2)采用图像显示,界面精美,设置报警声等4.设计原理与硬件电路一.整体设计思想使用8253工作在方式0计数,对1/100S计数,并讲计数值写入bl中并与100比较若不相等,则将计数值装换为10进制后送8255控制端显示,如相等则1S计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则1min计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则计数程序加1之后产生溢出,跳转清零程序将计数清零,同时数码管清零。
二.使用各芯片的作用及工作原理1、定时器/计数器8253用系统8253定时器提供的55ms定时单位,设计秒表定时程序。
电子闹钟学院:姓名:学号:班级:一.系统的硬件设计和软件设计1.总体设计本系统采用单片机AT89S51作为本设计的核心控制元件,使得电路的可靠性比较高,功能也比较强大,利用7段共阴LED作为显示器件。
接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间到,从而控制电器的起停。
电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89S51 单片机。
系统基本框图:2.硬件设计(1).单片机AT89C51AT89C51是一个低电压,高性能CMOS型 8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128 B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
主要功能特性:兼容MCS-51指令系统可编程UARL通道两个16位可编程定时/计数器1个串行中断两个外部中断源共6个中断源可直接驱动LED51单片机引脚图()时钟电路单片机的时钟产生方法有两种内部时钟方式和外部时钟方式。
本系统中单片机采用内部时钟方式。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。
振荡晶体可在~之间。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在~之间取值。
单片机的时钟电路如图()数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。
电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。
与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。
它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:数字钟电路设计思路利用8253定时器和中断控制器8259实现中断计时时,可用8253的两个通道(通道0和通道1)串联产生1S计时脉冲。
每个1S计时脉冲产生一次中断请求,在中断服务程序完成中断计时并刷新时间显示。
利用8279键盘显示器实现当前时间的显示和时间的校准。
在主程序完成各可编程接口芯片(8253、8259、8279)的初始化、键盘扫描及时间校准。
在校表状态关中断,校表结束时开中断。
三:程序流程图三、电子表原理图:四:程序代码D8279 equ 200H C8279 equ 202H C8253 equ 20bH D82530 equ 208H D82531 equ 209H C82590 equ 210H C82591 equ 211H data segment HOUR db 00 MINUTE db 00SECOND db 008STAT db 00LEDdb 31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H DISBUF db 8 dup(0)data endsstack segment stackdw 100 dup(?)stack endscode segmentassume cs:code,ds:dataSTART: MOV AX,DATAMOV DS,AXCLIMOV AL,13HMOV DX,C82590OUT DX,ALMOV AL,8MOV DX,C82591OUT DX,ALMOV AL,1OUT DX,ALMOV AX,0MOV ES,AXLEA AX,INT0MOV AX,CSMOV ES:[4*8+2],AXMOV DX,C8253MOV AL,36HOUT DX,ALMOV DX,D82530MOV AX,10000OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,C8253MOV AL,36HOUT DX,ALMOV DX,D82531MOV AX,100OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,C8279MOV AL,00HOUT DX,ALMOV AL,34HOUT DX,ALMOV AL,0D2HOUT DX,ALMOV STAT,0MOV DX,C82591MOV AL,0FEHOUT DX,ALWAIT1: MOV DX,C8279 IN AL,DXMOV AH,ALAND AL,80HJNE WAIT1MOV AL,AHAND AL,0FHCMP AL,00HJE WAIT1MOV AL,40HOUT DX,ALCHK: MOV DX,D8279IN AL,DXCMP AL,33HJNE BBBMOV DX,C82591MOV AL,0FFHOUT DX,ALMOV AL,STATINC ALMOV STAT,ALCMP AL,1JNZ AA1MOV SI,OFFSET DISPBUFMOV CX,4MOV AL,00BB0: MOV [SI],ALINC SILOOP BB0CALL DISPJMP CHKAA1: CMP AL,2JNZ AA2MOV SI,OFFSET DISPBUFMOV AL,00MOV [SI],ALINC SIMOV [SI],ALADD SI,2MOV [SI],ALINC SIMOV [SI],ALCALL DISPJMP CHKAA2: CMP AL,3JNZ AA3MOV SI,OFFSET DISPBUF+2MOV CX,4MOV AL,00BB1: MOV [SI],ALINC SILOOP BB1CALL DISPJMP CHKAA3: MOV STAT,00MOV AL,0FEHMOV DX,C82591OUT DX,ALCALL FULLSFMCALL DISPJMP CHKBBB: CMP AL,3BHJE BBB0JMP CCCBB0: MOV AL,STATCMP AL,1JNZ BBB1MOV AL,HOURADD AL,1DAAMOV HOUR,ALCALL FULLSH1CALL DISPJMP BBBBBB1: MOV AL,STATCMP AL,2JNZ BBB3MOV AL,MINUTEADD AL,1DAAMOV MINUTE,ALCALL FULLFENCALL DISPJMP BBBBBB3: MOV AL,STATCMP AL,3JZ BBB4JMP DDDBBB4: MOV AL,SECONDADD AL,1DAAMOV SECOND,ALCALL FULLMIAOCALL DISPJMP BBBCCC: CMP AL,3AHJE CC0JMP DDDCC0: MOV AL,STATCMP AL,1JNZ CCC1MOV AL,HOURSUB AL,1DASMOV AL,HOURSUB AL,1ADD AL,1DAAMOV SECOND,ALCMP AL,60HJNZ FANHUIMOV SECOND,0MOV AL,MINUTEADD AL,1DAAMOV MINUTE,ALCMP AL,60HJNZ FANHUIMOV MINUTE,0MOV AL,HOURADD AL,1DAAMOV HOUR,ALCMP AL,24HJNZ FANHUIMOV HOUR,0CALL FULLSFMCALL DISPPOP SIPOP DIPOP BXPOP AXIRETFULL SFM PROC NEARLEA DI,DISBUFLEA BX,LEDLEA SI,SECONDMOV CX,3AA4:MOV AL,[SI]AND AL,0FHXLATMOV [DI],ALINC DIMOV AL,[SI]PUSH CXMOV CL,4SHR AL,CLAND AL,0FHXLATMOV [DI],ALINC DIPOP CXINC SILOOP AA4RETFULL SFM ENDPFULL SHI PROC NEARLEA SI,DISBUFMOV AL,0MOV CX,4CCC0: MOV [SI],ALINC SILOOP CCC0LEA BX,LEDMOV AL,HOURAND AL,0FHXLATMOV [SI],ALXLATMOV [SI],ALMOV AL,HOURMOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],ALRETFULL SHI ENDPFULL FEN PROC NEARLEA SI,DISBUFMOV AL,0MOV [SI],ALINC SIMOV [SI],ALINC SILEA BX,LEDMOV AL,MINUTEAND AL,0FHXLATMOV [SI],ALMOV AL,MINUTEMOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],ALRETFULL FEN ENDPFULL MIAO PROC NEARLEA SI,DISBUFLEA BX,LEDMOV AL,SECONDAND AL,0FHXLATMOV [SI],ALMOV AL,SECONDMOV CL,4SHR AL,CLAND AL,0FHXLATINC SIMOV [SI],ALMOV AL,0INC SIMOV [SI],ALINC SIMOV [SI],ALINC SIMOV [SI],ALINC SIMOV [SI],ALRETFULL MIAO ENDPDISP PROC NEARMOV CX,8MOV DX,D8279LEA SI,DISBUF DISIMOV AL,[SI]OUT DX,ALINC SILOOP DISIRETCODE ENDSEND START。
电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。
与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。
它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:数字钟电路设计思路1.选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。
时、分、秒的数值通过对8255的编程可送到七段数码管上显示。
2.此程序主要由四部分组成:第一部分为最主要的部分定义显示界面;第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;第三部分将存在系统内存区的时间数用七段数码管显示出来;第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。
该程序实现了准确显示秒和分,读数准确,走时精准。
此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。
3.基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。
以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。
在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。
一. 实验原理电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。
其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。
这样,才能循环记时。
显示时利用7段显示器显示六位十进制数据。
前两个显示小时,中间两个显示分钟,后两个显示秒。
时钟的运算是利用中断来实现的, 利用8253的模式三输出一定频率的方波作为触发中断的条件。
8253A 可编程定时/计数器的输入时钟为100KHz ,设定时/计数器0的计数初值为100,工作在方式3,即方波发生器,其输出的1KHz方波作定时/计数器2的时钟。
定时/计数器2的初值设为1000,工作在方式2,即每隔 1s输出负脉冲,取反后用作不可屏蔽中断的中断申请信号,在中断服务程序中计算时间,并通过74ls273并行输出到数码管显示。
电子时钟主要由 74ls273 锁存器、8253 定时/计数器、74ls244 反相器、LED 数码显示管和两个按键组成。
主要用 8086 的 NMI 的中断服务程序完成秒、分、时的运算即计时功能,两个开关的中断服务程序完成调时、调分功能。
8253 用来产生 1s 的脉冲信号作为 NMI 的中断请求信号。
74ls273 负责将内存里的时位和分位秒位值输出到数码管。
二.实验要求利用8253定时器设计一个电子钟,并定义一个启动键。
当按下该键时电子时钟从当前设定值开始走时。
三.实验程序.MODEL SMALL.8086.STACK.CODE.STARTUPNMI_INIT:PUSH ES;nmi不可屏蔽中断向量表初始化XOR AX,AXMOV ES,AXMOV AL,02HXOR AH,AHSHL AX,1SHL AX,1MOV SI,AX;相当于cs,ip入栈MOV AX,OFFSET NMI_SERVICE;调用中断处理程序MOV ES:[SI],AXINC SIINC SIMOV BX,CS;?MOV ES:[SI],BXPOP ES;定时器初MOV AL,00110111BMOV DX,0406HOUT DX,ALMOV DX,0400HMOV AX,0100HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,10110101BMOV DX,0406HOUT DX,ALMOV DX,0404HMOV AX,1000HOUT DX,ALMOV AL,AHOUT DX,ALLOOP0:;主任务CALL KEYCALL DISPJMP LOOP0NMI_SERVICE:;中断服务程序PUSH AXMOV AL,SECADD AL,1DAAMOV SEC,ALCMP SEC,60HJB EXITMOV SEC,0MOV AL,MINADD AL,1DAAMOV MIN,ALCMP MIN,60HJB EXITMOV MIN,0MOV AL,HOUADD AL,1DAAMOV HOU,ALCMP HOU,24JB EXITMOV HOU,0EXIT:POP AXIRETDISP PROC NEARMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV BL,SECAND BX,000FHMOV SI,BXMOV AL,SITUATION[SI] ;段码MOV DX,0200HOUT DX,ALMOV AL,0FEH;秒个位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV BL,SECAND BX,00F0HMOV CL,4SHR BX,CLMOV SI,BXMOV AL,SITUATION[SI] ; 段码MOV DX,0200HOUT DX,ALMOV AL,0FDH; 秒十位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV AL,40H;段码MOV DX,0200HOUT DX,ALMOV AL,0FBH ;秒个位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV BL,MINAND BX,000FHMOV SI,BXMOV AL,SITUATION[SI] ;段码MOV DX,0200HOUT DX,ALMOV AL,0F7H;分个位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH; 不显示OUT DX,ALMOV BL,MINAND BX,00F0HMOV CL,4SHR BX,CLMOV SI,BXMOV AL,SITUATION[SI] ; 段码MOV DX,0200HOUT DX,ALMOV AL,0EFH;分十位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV AL,40H; 段码MOV DX,0200HOUT DX,ALMOV AL,0DFH;秒个位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH;不显示MOV DX,0201HOUT DX,ALMOV BL,HOUAND BX,000FHMOV SI,BXMOV AL,SITUATION[SI] ; 段码MOV DX,0200HOUT DX,ALMOV AL,0BFH;时个位MOV DX,0201HOUT DX,ALCALL DELAYMOV AL,0FFH; 不显示MOV DX,0201HOUT DX,ALMOV BL,HOUAND BX,00F0HMOV CL,4SHR BX,CLMOV SI,BXMOV AL,SITUATION[SI] ;段码OUT DX,ALMOV AL,07FH; 时十位MOV DX,0201HOUT DX,ALCALL DELAYRETDISP ENDPKEY PROC NEARMOV DX,0600HIN AL,DXTEST AL,01HJNZ NEXTHOUCALL DISP;消抖CALL DISPCALL DISPMOV DX,0600HIN AL,DXTEST AL,01HJNZ NEXTHOUMOV AL,MINADD AL,1;分调整DAAMOV MIN,ALCMP MIN,60HJB NEXTHOUMOV MIN,0 NEXTHOU:MOV DX,0600H IN AL,DXTEST AL,02HJNZ EXITKEYCALL DISP;消抖CALL DISPCALL DISPMOV DX,0600HIN AL,DXTEST AL,02HJNZ EXITKEYMOV AL,HOUADD AL,1DAA;时调整MOV HOU,ALCMP HOU,24HJB NEXTHOUMOV HOU,0EXITKEY:RETKEY ENDPDELAY PROC NEAR;定时子程序PUSH BXPUSH CXMOV BX,1LP2:LOOP LP2DEC BXJNZ LP1POP CXPOP BXRETDELAY ENDP.DATASEC DB 00HMIN DB 00HHOU DB 23HSITUATION DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH, 40HSIT_END=$END四.实验电路图五.学习心得在这次课程设计过程中,我们逐步养成了发现、提出、分析和解决实际问题的习惯;这不但锻炼提高了我们的实践能力,更是对我们实际工作能力的具体训练和考察过程。
1.课程设计目的※让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法;※进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;※提高电路布局﹑布线及检查和排除故障的能力;※培养书写综合实验报告的能力。
2.课程设计题目描述和要求(1)设计一个有“时”、“分”、“秒”(12小时59分59秒)显示,且有校时功能的电子钟;(2)用中小规模集成电路组成电子钟,并在实验箱上进行组装、调试;(3)画出框图和逻辑电路图,写出设计、实验总结报告;(4)选做:整点报时。
在59分51秒、53秒、55秒、57秒输出500Hz音频信号,在59分59秒时输出1000Hz信号,音频持续1s,在1000Hz荧屏结束时刻为整点。
3.课程设计报告内容3.1实验名称数字电子钟3.2实验目的·掌握数字电子钟的设计、组装与调试方法;·熟悉集成电路的使用方法。
3.3实验器材及主要器件(1)74LS48( 6片)(2)74LS90(5片)(3)74LS191(1片)(4)74LS00(5片)(5)74LS04(3片)(6)74LS74(1片)(7)74LS2O(2片)(8)555集成芯片(1片)(9)共阴七段显示器(6片)(10)电阻、电容、导线等(若干)3.4数字电子钟基本原理数字电子钟的逻辑框图如图3-4所示。
它由555集成芯片构成的振荡电路、分频器、计数器、显示器和校时电路组成。
555集成芯片构成的振荡电路产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”、“秒”译码器显示时间。
图3-43.5数字电子钟单元电路设计、参数计算和器件选择1.振荡器石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。
它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限止时,才达到最后稳定。
微机课程设计电子钟一、课程目标知识目标:1. 学生能理解电子钟的基本原理,掌握电子时钟系统的组成及其工作方式。
2. 学生能够运用所学的微机知识,设计并实现一个具有基本计时功能的电子钟。
3. 学生能够了解并描述常见电子时钟电路图,分析电路中各元件的作用。
技能目标:1. 学生能够运用编程软件,如Arduino或51单片机等,编写控制程序,驱动电子钟运行。
2. 学生通过实际动手操作,掌握电子元件的焊接和电路板的搭建,提高实践操作能力。
3. 学生能够通过小组合作,进行问题分析和解决方案的设计,提升团队协作和沟通能力。
情感态度价值观目标:1. 学生通过电子钟的设计与制作,培养创新思维和问题解决能力,增强自信心和成就感。
2. 学生在实践过程中,能够体会到学习的乐趣,培养对科学技术的兴趣和探索精神。
3. 学生通过小组合作,学会尊重他人意见,培养团队精神和责任感。
课程性质:本课程为实践性课程,强调理论联系实际,注重培养学生的动手操作能力和创新思维。
学生特点:学生为初中生,具有一定的微机基础,好奇心强,喜欢动手实践。
教学要求:教师应引导学生主动参与,注重启发式教学,鼓励学生提出问题、解决问题,关注学生的个体差异,促进每个学生的全面发展。
通过课程目标的分解,将学习成果具体化,便于教学设计和评估。
二、教学内容本课程教学内容紧密结合课程目标,以确保学生能够系统地掌握电子钟设计与制作相关知识。
1. 理论知识:- 电子时钟原理:介绍时钟信号、晶振、分频器等基本概念。
- 电路元件:学习并认识LED、电阻、电容、二极管、三极管等常见电子元件。
- 微控制器:了解Arduino或51单片机的基本结构、工作原理及编程方法。
2. 实践操作:- 电路设计:学习如何绘制电子钟电路图,选择合适的电子元件。
- 程序编写:根据电子钟功能需求,编写相应的控制程序。
- 电路搭建:动手焊接电路板,搭建电子钟硬件系统。
3. 教学大纲:- 第一阶段:电子时钟原理学习,认识电路元件。
1前言:数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
与传统机械钟相比,它具有走时准确、显示直观无机械传动装置等优点。
数字钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
钟表的数字化给人们生产生活带来了极大的方便。
它扩展了钟表原有的报时功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,这些都是以钟表数字化为基础的。
因此,研究数字电子钟以及扩大其在生活中的应用,有着非常现实的意义。
尽管目前市场上已有现成的数字钟集成电路芯片,价格便宜,使用也非常方便。
鉴于数字钟电路的基本组成包含了数字电路的主要组成部分,为了帮助同学们将已经学过的比较零散的数字电路的知识能够有机的、系统地联系起来用于实际,培养综合分析、设计电路的能力,进行数字钟的设计是必要的。
系统的工作原理:由振荡器产生稳定的分频脉冲信号作为数字钟的时间基准,然后经过分频器输出标准的秒脉冲。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按“24翻1”规律计数。
计数器的输出分别由译码器译出后送显示器显示。
当计时出现误差时,可以用校时电路校时时和分。
在数字显示方面,本设计采用七段数码管显示,非常直观。
本设计是最基本的数字电子钟,实现了时间的显示与校时,并对定时闹钟,日期,星期等的功能实现打下了基础。
在这个基础上,加上寄存器可以实现闹钟的定时功能,对于星期的显示只需对时进行计数就可以做到,至于日期要复杂一些,因为日期不是每个月的天数都一样的,还要考虑闰年的情况,故只做探讨。
第1页2总体设计方案2.1方案提出数字电子钟一般由六个部分组成,如图2.1.1所示。
其中振荡器和分频器组成标准的秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统。