微机原理课程设计数字时钟程序

合集下载

微机原理课程设计电子闹钟

微机原理课程设计电子闹钟

电子钟设计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章《中断》,通过对这一章的学习,我终于对中断有了详细的认识,在设计程序时也容易了很多。

微机原理课程设计-数字时钟

微机原理课程设计-数字时钟

微机原理课程设计设计题目:电子时钟班级:08电信系机电五班姓名及学号:薛鹏(***********)目录一、摘要二、引言三、电子时钟的设计:1.设计目的2.设计任务3.电路原理图四、程序设计(1)设计思路(2)设计流程图(3) 源代码五、软件调试六、设计总结和心得体会摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

一、引言单片机是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化中。

现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。

微机原理课程设计--数字时钟

微机原理课程设计--数字时钟

课程设计报告课程设计名称:数字时钟系:三系学生姓名:梁文化阿龙班级:通信班学号: ************ 成绩: 100 指导教师: * * 开课时间: 2013-2014 学年 1 学期一.设计题目:数字时钟二.主要内容:编程实现时钟功能,按秒刷新,要求定位在屏幕右上角。

三.具体要求:在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。

教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。

学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。

学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。

学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。

学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。

设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

四.进度安排五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。

考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。

成绩评定:优,良,中,及格,不及格。

特别说明:如发现抄袭,按照不及格处理。

目录一.课题的功能模块的划分 (4)二.主要功能实现 (5)三.心得体会 (7)四.源程序 (8)五.上机调试 (10)六.主要参考资料 (10)一.课题的功能模块的划分显示系统时间程序可以大致分为三个模块:1.利用1ch号功能来重定位中断程序的入口地址2.调用21号中断的31h程序结束并驻留功能,使得显示时间的子程序常驻内存3.显示系统时间模块功能模块图如下:Y二.主要功能实现1.重定位入口地址;重定位中断程序的入口地址lea dx,showtimemov ax,seg showtimemov ds,axmov ax,251chint 21h2.程序驻留并结束;调用21号中断的31h程序结束并驻留功能mov ax,3100hmov dx,proclenint 21h3.显示系统时间showtime procpush axpush bxpush dspush esmov ax,csmov ds,axmov ax,0b800hmov es,axmov ax,2c00h ;调用21h号中断的2ch功能int 21h;输出时钟mov bl,':'mov bh,chcall adjustmov es:[120],almov es:[120+2],ahmov es:[120+4],bl;输出分钟mov bh,clcall adjustmov es:[120+6],almov es:[120+8],ahmov es:[120+10],bl;输出秒钟mov bh,dhcall adjustmov es:[120+12],almov es:[120+14],ahpop espop dspop bxpop axiretshowtime end显示系统时间的流程图如下:三.心得体会为期一周的课程设计就要结束了,回想这一周,我经历了许多,懂得了许多。

微机原理课程设计——电子时钟课程设计

微机原理课程设计——电子时钟课程设计

电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。

与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。

它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。

二:数字钟电路设计思路利用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. 学生能理解微机原理中秒表时钟的基本工作原理,掌握其硬件组成和软件编程方法。

2. 学生能够掌握秒表时钟的设计思路,了解其功能模块的划分和实现。

3. 学生能够了解微机原理在实际应用中的重要性,认识到秒表时钟在日常生活和工程领域的应用价值。

技能目标:1. 学生能够运用所学知识,设计并实现一个简单的秒表时钟程序,具备基本的编程能力。

2. 学生能够通过分析问题、解决问题,培养创新思维和动手实践能力。

3. 学生能够熟练使用相关硬件设备,提高实际操作能力。

情感态度价值观目标:1. 学生通过本课程的学习,培养对微机原理的兴趣,激发学习热情,形成积极的学习态度。

2. 学生能够认识到团队合作的重要性,学会与他人协作,培养团队精神和沟通能力。

3. 学生能够在实际操作过程中,培养耐心、细心和责任心,养成良好的学习习惯。

课程性质:本课程为实践性课程,注重理论联系实际,培养学生的动手能力和创新意识。

学生特点:本年级学生已具备一定的微机原理基础知识,具有较强的学习能力和求知欲,喜欢动手实践。

教学要求:结合学生特点,以实际操作为主线,注重培养学生的编程能力和团队协作能力,提高学生的实际应用能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的达成。

将课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容本课程教学内容主要包括以下几部分:1. 微机原理基础知识回顾:引导学生复习已学过的微机原理基础知识,如微处理器、存储器、输入输出接口等,为后续学习秒表时钟设计打下基础。

相关教材章节:第一章 微机原理概述2. 秒表时钟硬件组成:讲解秒表时钟的硬件组成,包括时钟芯片、微处理器、显示模块等,分析各部分的功能和相互关系。

相关教材章节:第三章 微机接口技术3. 秒表时钟软件编程:介绍秒表时钟的软件编程方法,包括编程语言选择、程序结构设计、功能模块划分等。

相关教材章节:第五章 嵌入式系统编程4. 实践操作:安排学生进行实际操作,设计并实现一个简单的秒表时钟程序,培养学生的动手能力和编程技巧。

(完整word版)微机原理课程设计(电子时钟)(word文档良心出品)

(完整word版)微机原理课程设计(电子时钟)(word文档良心出品)

电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。

与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。

它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。

二:数字钟电路设计思路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处理,使数码管的显示发生变化。

微机原理课程设计-闹钟

微机原理课程设计-闹钟

微机原理课程设计说明书学院:电力学院姓名:学号:专业:______________________指导老师:目录一、设计意义 (1)二、设计任务 (1)1、设计要求 (1)2、设计原理 (1)三、硬件设计 (2)四、软件设计 (4)1、设计过程 (5)2、程序流程图 (5)3、功能模块 (5)五、设计心得 (8)附录 (9)1.设计意义“微机原理与接口技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。

本课程设计是配合“微机原理与接口技术”课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。

2.设计任务一、设计要求1.从键盘输入闹铃时间(如09:45)2.程序开始记时,并在屏幕上显示时间(如08: 30: 21)并实时刷新3.时间到,则发出闹铃声,声音维持数秒,同时屏幕显示响铃提示;同时时间停止刷新;4.能处理输入错误(如闹钟响铃时间应为数字,但用户错误输入非数值型的字符)二、设计原理分析1.显示系统时间1)使用DOS功能调用(INT 21H)中的2CH中断截取系统时间,再调用显示时间的子程序把时间显示出来(例如显示当前时间为16:30:45并且如果时间数少于两位数就要在其前面加0后显示出来如04: 07: 03);2)利用端口61H中的PB4每15.08微秒触发一次的特点,通过适当的循环次数进行循环从而实现延时1秒钟;3)在延时后再循环执行步骤1从而实现时间每一秒的刷新,在屏幕上不断显示当前的时间;2.设置闹钟响铃时间与输入时的容错处理方法1)在数据段定义好字型变量HOUR、MINUTE分别用于存放响铃时的小时数与分钟数;2)设置闹钟响铃时间由于形式为12:45 (小时:分钟)为了方便进行容错处理,可以分别用一段代码实现每一位数的输入,总共需要输入五位数字。

例如,输入前两位的小时数时,在输入第一位时,判断输入的是否是从0到2范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入小时的第二位数时,判断输入的是否是0到9范围里的一个数字,如果不是就显示错误信息并停止程序的运行;在输入第三位时(应该是冒号)再判断是否是冒号,如果不是就显示错误信息并停止程序的运行;输入第四位(即分钟数的第一位)判断输入的是否是0到5数字里的一个,如果不是就显示错误信息并停止程序的运行;输入最后一位判断是否是0到9的范围中的一个数字,如果不是就显示错误信息并停止程序的运行等等;3)每次输入如果确定输入无误就使用书本中处理输入一个十进制数常用的方法把输入的数存储到寄存器中,再把它存入相应的变量中如小时数存到变量HOUR中,分钟数存入变量MINUTE中;3.当到达闹钟响铃时间时响铃1)每次在截取系统时间前先把寄存器BX清零,截取时间后把截取到的系统时间分别与变量HOUR与变量MINUTE进行比较,如果相等,就使寄存器BX加1,这样再执行完截取系统时间后检查BX是否为2,如果是2就表示已经到达设定好的闹铃时间,就跳出显示时间的死循环,跳到响铃的循环去;2)响铃是使用DOS功能调用(INT 21H)中的2H,同时把7H放到DL寄存器中,执行一次后延时三秒(延时的方法同显示时间时所用延时方法一样)再执行一次共循环执行40次从而实现了响铃几秒钟的功能;3 .硬件设计音乐播放1. 8253功能结构:Intel8253是8086/8088微机系统常用的定时器/计数器芯片,它具有定时计数两大功能。

微机原理数字钟课程设计报告

微机原理数字钟课程设计报告

课程名称微机原理与接口技术任课教师设计题目数字钟设计班级姓名学号日期2010年12月5日目录计时时钟的设计 (3)1 设计需求分析与解决方案 (3)1.1 设计需求分析 (3)1.1.1 题目要求 (3)1.1.2 根据要求提出的问题 (3)1.2 解决问题方法及思路 (3)1.2.1 硬件设计选择部分 (3)1.2.2 软件设计分析 (5)2 硬件设计 (5)2.1 选择芯片8255 (5)2.1.1 芯片8255 A在本设计中的功能作用 (5)2.1.2 芯片8255的功能分析 (5)2.1.3 8255部分技术参数 (6)2.1.4 8255与外设相连的逻辑图(见图2-3) (7)2.2 选择器件LED (7)2.2.1 LED在本设计中的作用 (7)2.2.2 LED功能分析 (7)2.2.3 LED技术参数 (8)2.3 硬件设计思路及连接图 (9)2.3.1 硬件设计思路 (9)2.3.2 硬件接线原理图(见图2-7) (9)3 软件设计思路及程序控制流程框图 (10)3.1 软件设计思路 (10)3.2 程序流程图的相关说明 (10)3.3 程序控制流程框图(见图3-1) (10)3.4 程序清单 (12)4 上机调试过程 (17)4.1 硬件调试 (17)4.2 软件调试 (17)4.3 联机调试 (17)4.4 调试结果及问题的提出 (18)4.4.1 调试结果 (18)4.4.2 提出问题 (18)5 设计结果分析、问题讨论及总结体会 (18)5.1 课程设计结果及分析 (18)5.2 问题讨论 (18)5.3 总结体会 (19)6 参考文献 (20)计时时钟的设计1 设计需求分析与解决方案1.1 设计需求分析1.1.1 题目要求设计一个接口与七段LED显示器,显示一个计时时钟,显示初值为0,每隔一秒改变一次显示值,60s为一分钟,60min为一小时,LED显示器循环显示时、分、秒的动态值。

微机原理课程设计报告(电子时钟)

微机原理课程设计报告(电子时钟)

微机原理课程设计报告(电子时钟)微机原理课程设计报告1.设计目的培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

掌握8255、8259、8253等芯片的使用方法和编程方法。

通过本课程设计,学习应用所学知识,进一步了解相关芯片的原理、内部结构和使用方法,学习相关芯片的实际应用和编程。

系统采用8086微处理器完成电子秒表系统的独立设计。

同时,要了解综合性问题的程序设计,掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后的逻辑更加清晰。

2.设计内容设计一款可以随意启动/停止的电子秒表。

要求使用6位LED数字显示屏,计时单位为1/100秒。

使用功能键进行启动/停止控制。

其功能是通电后将计时器清除为0,并在第一次(或奇数次)按下启动/停止键时开始计数。

第二次(或偶数次)按此键可停止计时。

再次按开始/停止键可重置和重新开始计时。

它可以通过开关或钥匙控制。

(开关控制☆) (按键控制)★)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相比,如果不相等,则将计数值更改为十六进制,并发送至8255控制终端进行显示。

如果相等,计数程序将在加1后溢出,跳转到清零程序以清除计数,同时清除数码管。

plc课程设计数字时钟

plc课程设计数字时钟

plc课程设计数字时钟一、教学目标本课程的教学目标是使学生掌握PLC数字时钟的设计与实现。

通过本课程的学习,学生应能理解数字时钟的原理,熟练使用PLC进行编程,完成数字时钟的设计与调试。

1.掌握数字时钟的基本原理。

2.熟悉PLC的基本组成和编程方法。

3.了解PLC在数字时钟中的应用。

4.能够使用PLC进行数字时钟的编程。

5.能够进行数字时钟的调试和故障排除。

6.能够进行数字时钟的安装和维护。

情感态度价值观目标:1.培养学生的创新意识和实践能力。

2.培养学生的团队合作意识和沟通能力。

3.培养学生的自主学习和持续学习的能力。

二、教学内容本课程的教学内容主要包括数字时钟的原理、PLC的基本组成和编程方法、数字时钟的设计与实现。

1.数字时钟的原理:介绍数字时钟的工作原理,包括时钟芯片、显示电路等。

2.PLC的基本组成和编程方法:介绍PLC的基本组成,包括控制器、输入输出模块等;介绍PLC的编程方法,包括指令集、编程软件等。

3.数字时钟的设计与实现:介绍如何使用PLC进行数字时钟的设计和实现,包括编程、调试、安装等。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。

1.讲授法:通过教师的讲解,使学生掌握数字时钟的原理和PLC的编程方法。

2.案例分析法:通过分析实际案例,使学生了解数字时钟的设计和实现过程。

3.实验法:通过实验操作,使学生掌握数字时钟的调试和安装方法。

四、教学资源本课程的教学资源包括教材、实验设备等。

1.教材:选用合适的教材,为学生提供理论学习的参考。

2.实验设备:准备实验设备,为学生提供实践操作的机会。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置适量的作业,评估学生的理解和掌握程度。

3.考试:进行期中和期末考试,评估学生对课程知识的掌握和应用能力。

合工大微机原理课程设计第6题数字钟

合工大微机原理课程设计第6题数字钟
mov flag,01h
overD: JMP con8
recoverLED: cli ;实现从BUF知LEDbuf功能的具体代码区
push si
push cx
PUSH BX
mov LedBuf+3,00h
mov LedBuf+4,00h
mov LedBuf+5,00h
mov si,0
;;;;;;;;;;;;;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push ax
push dx
MOV DX,port33
MOV AL,36H
OUT DX,AL
MOV DX,port00
MOV AL,00H
OUT DX,AL
5. 按“E”表示时钟开始运行。
6. 程序运行时,首先按“D”设置闹铃时间,然后按“C”设置时钟的时间,再按“E”让时钟开始运行。当当前时间运行到闹铃时间时,整个七段数码管屏幕闪烁字符“8”。
注:下面的代码在设置闹钟时会产生时间误差。读者有兴趣尝试的话可以自己改改,只需要调整调整几个缓冲区,使设置闹钟时使后台依然接受中断即可,设完闹钟使其恢复即可。
CBuf db 6 dup(0fh)
buf db 6 dup(?) ;临时存放时刻
buttonC DB 02H ;若C键被按则置1
buttonD DB 03H ;若D键被按则置1
buttonE DB 00H ;若E键被按则置1
jnz overd ;若SI不等06h即小于6,则跳到con8处,继续获取键值,直至6位闹钟设置完毕
MOV BUTTOND,00H ;闹钟设置完毕,使D键标志失效,使其不会继续设置闹钟,并将取出BUF内时间标志置1

微机原理课设数字闹钟.概要

微机原理课设数字闹钟.概要

摘要由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。

微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。

因此,接口技术是硬件与软件的综合技术。

微机控制即微型计算机原理控制。

是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。

从而达到学习、了解微机原理控制的相关指令在各方面的应用。

系统由8254、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。

程序主要由以下四个模块组成:主控模块,定时模块,中断模块,显示模块。

主程序模块:主控模块是系的核心模块,对8254、8255、8259进行初始化,设置中断向量。

调用中断子程序和显示子程序由软件实现。

该时钟程序由00:00:00开始计时,通过8254的分频产生10MS的方波。

定时模块:定时模块是为8259提供中断请求信号的。

由一片8254实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

中断处理模块:中断模块实现动态显示的。

中断程序为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

显示模块:显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

硬件上由六个LED构成,软件上由扫描显示的方法实现。

关键词简单电子钟、并行接口8255、8254、8259、LED1 设计原理1.1 设计原理此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里8254工作于计数器0,方式3。

微机原理记时日期秒表多功能电子钟课程设计

微机原理记时日期秒表多功能电子钟课程设计

微机课程设计用8086/8088CPU设计一个多功能时钟。

要求实现,日常使用时正确显示的是时、分、秒;根据需要,还可以作为秒表使用;还可以显示日期。

目录一、设计内容要求二、设计思想三、程序流程图(1)时间显示部分(2)日期显示部分(3)数字显示部分四、实验连线图(1)总体线路图(2)8284应用电路(3)74LS138片选部分(4)8255与七段数码管搭配部分电路图(5)8259功能选择部分(6)数据存储部分(7)计数电路(8)CPU的部分连接部分五、连线描述六、按键功能介绍七、心得体会八、参考文献一、设计内容与要求1、设计目的:1) 进一步建立微机系统概念、加深对系统理解和认识,提高微机系统的应用水平。

2) 进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高汇编语言程序的水平和学习程序调试方法。

3) 进一步熟悉接口、熟悉键盘控制和七段数码管及其他芯片的使用。

2、设计任务:用8086/8088CPU设计一个多功能时钟。

要求实现,日常使用时正确显示的是时、分、秒;根据需要,还可以作为秒表使用;还可以显示日期。

二、设计思想1. 先在数据段开辟存储单元,用来存放时、分、秒、年、月、日等的信息。

这些存储单元分别对应时、分、秒,日期的年、月、日的十位和个位。

调用子程序的清屏部分。

2. 在主程序中分别对8259、8255、8259、8253进行初始化编程。

根据系统功能要求,设置操作字与方式控制字。

3. 8255的A口工作在方式0输出,B口工作在方式0输出,为基本的输入输出方式。

这部分与七段数码管搭配,显示结果。

4. 在中断服务程序中对中断次数进行统计。

当时钟在日常状态和切换到秒表功能时,当产生1次中断时,将秒的个位加1,判断是否到10,如到了则十位加1,个位清零;再判断十位是否到6,如到了则十位清零,分的个位加1,同理对分、时做相应的处理。

该电子钟为12进制的。

当电子表切换到日期功能时,先判断是否是闰年,然后判断是否是二月,最后判断是单月份还是双月份,然后根据闰年366天,闰年2月29天,不是闰年28天,当月份31天,双月份30天进行进位。

微机原理课设数字闹钟.概要

微机原理课设数字闹钟.概要

摘要由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。

微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。

因此,接口技术是硬件与软件的综合技术。

微机控制即微型计算机原理控制。

是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。

从而达到学习、了解微机原理控制的相关指令在各方面的应用。

系统由8254、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。

程序主要由以下四个模块组成:主控模块,定时模块,中断模块,显示模块。

主程序模块:主控模块是系的核心模块,对8254、8255、8259进行初始化,设置中断向量。

调用中断子程序和显示子程序由软件实现。

该时钟程序由00:00:00开始计时,通过8254的分频产生10MS的方波。

定时模块:定时模块是为8259提供中断请求信号的。

由一片8254实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

中断处理模块:中断模块实现动态显示的。

中断程序为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

显示模块:显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

硬件上由六个LED构成,软件上由扫描显示的方法实现。

关键词简单电子钟、并行接口8255、8254、8259、LED1 设计原理1.1 设计原理此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里8254工作于计数器0,方式3。

微机原理课程设计数字时钟

微机原理课程设计数字时钟

微机原理课程设计学生姓名:学号:专业班级:电子信息工程课程名称:微型计算机原理及应用学年学期:2 0 1 2 — 2 0 13 学年第 1 学期指导教师:2 0 1 2 年 1 2月目录一、课设题目及目的 (4)二、设计任务 (4)三、总框图及设计流程 (4)四、源程序清单 (6)五、调试结果及显示 (19)六、课程设计总结及体味 (21)一、课设题目及目的实习题目:数字时钟程序实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开辟等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开辟和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。

二、课设任务1、在屏幕上显示一数字时钟,显示格式为HH:MM:SS2、能够实现时间的校准,按键H提示修改小时,按键M提示修改分钟,按键S提示修改秒3、按键Q退出返回到DOS三、总框图及流程开始调用清屏子程序显示系统时间四.源程序清单DATA SEGMENT;数据段开始 MESS1 DB ' *****************电子时钟***************** ',0AH,0DH DB ' *****按h 修改小时,m 修改分,s 修改秒******** ',0AH,0DH DB ' *****************按q 退出****************** ',0AH,0DH,'$' MESS2 DB '修改小时','$' MESS3 DB '修改分钟','$' MESS4 DB '修改秒钟','$' T_BUFF DB 20 DB ? DB 20 DUP(?) HOR DB ? MIN DB ? SEC DB ?键盘输入判断条件调用设置闹钟子程序Yshm修改小时修改分修改秒flag db ?DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK,DS:DATASTART:MOV AX,DA TAMOV DS,AXCALL CLEAR ;调用清屏子程序PUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOV DH,0;行MOV DL,0;列INT 10HPOP BXMOV DX,OFFSET MESS1MOV AH,09HINT 21HDISPLAY: ;时间显示部份MOV BX,OFFSET T_BUFF ;送T_BUFF的偏移地址到BXMOV AH,2CH ;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中INT 21HMOV HOR,CHMOV MIN,CLMOV SEC,DHCALL TRANS_TIMEPUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOV DH,17;行MOV DL,31;列INT 10HPOP BXLEA DX,t_buff;送T_BUFF偏移地址到DX,并调用DOS显示功能,功能号为9 MOV AH,9INT 21H;至此当前时间的显示功能结束!mov ah,2;0~1用于此程序最下边的在下面的两个置光标位置mov bh,0mov dh,18;行mov dl,0;列int 10hcall delay1mov ah,1 ;调用键盘I/O中断功能号1,获取键值到ALint 16hCMP AL,'h'JE SETTIMECMP AL,'m'JE SETTIMECMP AL,'s'JE SETTIMECMP AL,'q'JE quit ;是q键,退出程序JMP displayquit:mov ah,4chint 21hretSETTIME PROCPUSH AXPUSH BXPUSH CXPUSH DXPUSHFmov flag,alMOV AH,0CHINT 21Hcmp flag,'h'je N1CMP FLAG,'m'je N2cmp flag,'s'je N3jmp NN1: PUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOV DH,19;行MOV DL,31;列INT 10HPOP BXMOV DX,OFFSET MESS2MOV AH,09HINT 21Hmov ah,2;0~1用于此程序最下边的在下面的两个置光标位置mov bh,0mov dh,17;行mov dl,31;列int 10hjmp NN2: PUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOV DH,19;行MOV DL,31;列INT 10HPOP BXMOV DX,OFFSET MESS3MOV AH,09HINT 21Hmov ah,2;0~1用于此程序最下边的在下面的两个置光标位置mov bh,0mov dh,17;行mov dl,34;列int 10hjmp NN3: PUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOV DH,19;行MOV DL,31;列INT 10HPOP BXMOV DX,OFFSET MESS4MOV AH,09HINT 21Hmov ah,2;0~1用于此程序最下边的在下面的两个置光标位置mov bh,0mov dh,17;行mov dl,37;列int 10hjmp NN: MOV DX,OFFSET T_BUFFMOV AH,0AHINT 21HCALL GETTIMEcmp flag,'h'je L1CMP FLAG,'m'je L2cmp flag,'s'je L3jmp LL1: MOV CH,ALMOV HOR,ALjmp LL2: MOV CL,ALMOV MIN,ALjmp LL3: MOV DH,ALMOV SEC,ALjmp LL: MOV AH,2DHMOV CL,MINMOV DH,SECMOV DL,0INT 21Hpopfpop dxPOP cXPOP bXPOP aXJMP STARTRETSETTIME ENDPGETTIME PROCLEA BX, T_BUFFADD BX,2MOV DH,[BX]INC BXMOV DL,[BX]AND DH,0FHAND DL,0FHMOV CL,10MOV AL,DHMUL CLADD AL,DLRETGETTIME ENDP;******************************************************** ;******************************************************** TRANS_TIME PROCMOV CL,10MOV AL,HORMOV AH,0DIV CLADD AL,30HADD AH,30HINC BXMOV [BX],AHINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,MINMOV AH,0DIV CLADD AL,30HADD AH,30HMOV [BX],ALINC BXMOV [BX],AHINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,SECMOV AH,0DIV CLADD AL,30HADD AH,30HMOV [BX],ALINC BXMOV [BX],AHINC BXMOV AL,'$';将字符串的结束位送至显示缓冲区的最后一位MOV [BX],ALRETTRANS_TIME ENDP;******************************************************** ;********************************************************;*****************************************************; 清屏子程序;******************************************************** CLEAR PROC NEARPUSH AX ;入栈保护现场PUSH BXPUSH CXPUSH DXMOV AX,0600H;AH=06(滚动)AL=00(全屏空白)MOV BH,0cH;设置背景颜色(1蓝色)和前景颜色(F白色)SUB CX,CXMOV DX,5F5FHINT 10HPOP DX;出栈恢复现场POP CXPOP BXPOP AXRETCLEAR ENDPDELAY1 PROC;精确延迟时间子程序MOV DX,02FFH;循环次数UP:XOR CX,CXA:NOPLOOP ADEC DXJNZ UPRETDELAY1 ENDPCODE ENDSEND START11五.调试结果及显示六.课程设计总结及体味在这次的课程设计中,我们选择的题目是电子时钟设计,在设计的过程中,我们进行了相关资料的查询。

微机原理实时时钟课程设计

微机原理实时时钟课程设计

西南科技大学微机原理课程设计题目电子实时时钟软件设计1任务实现如图所示电子日历时钟功能。

2基本要求1)可通过M键切换显示模式:日期(年、月、日)、时间(小时、分、秒)、秒表(小时、分、秒、1/100秒)、闹钟(小时、分)。

2)在秒表显示模式,可通过I键切换(启动/暂停)计时,当暂停计时时可通过A键复位。

3)在闹钟显示模式,有两种输入方式方式一:直接按格式输入时间方式二:可通过A键依次使On/Off标志、小时、分、秒闪烁或变色,这时可通过I键切换On/Off标志或加1调整。

4)可通过esc键结束程序。

3扩展要求1)在日期显示模式,可通过A键依次使年、月、日闪烁或变色,这时可通过I键加1调整。

2)在时间显示模式,可通过A键依次使小时、分、秒闪烁或变色,这时可通过I键加1调整。

3)调整和秒表操作不影响日期和时间的准确性。

4)自定义的其它扩展功能说明:本程序为西科微机原理课程设计题目,下面的代码只实现了基本要求部分,并且秒表还存在部分问题(秒表模式修改了定时器0,结束后对时间略有影响,测试闹钟时可以直接在秒表模式下,按q键跳过秒表模式),代码仅供参考,欢迎对其繁琐处进行修改,调试。

各部分程序流程图:主函数流程图时间与日期的刷新子过程时间日期显示子过程闹钟设定子过程该过程与代码略有不同,处理on/off 位是后来添加的代码,流程图没有加入AI键输入时间方式:时间调整输入DATA SEGMENTUIS DB 0DH,0AH,10 dup(0),50 DUP('*'),'$'UIE DB 0DH,0AH,10 dup(0),50 DUP('*'),'$';界面字符MSG1 DB "THE DATA IS $"MSG2 DB "THE TIME IS $"MSGIN DB "PLEASE CHOOSE INPUT METHODS:",0DH,0AHDB 21 DUP(" "),"PRESS A FOR A/I METHOD,OR FOR DIRECT METHOD$" MSGDIR DB "PLEASE INPUT LIKE THIS: OO:00",0DH,0AHDB 21 DUP(" "),"PRESS ENTER TO CONFIRM $" MSGWARN DB "ERROR!PLEASE ENTER AGAIN$"MSGAI DB "PRESS a TO CHANGE POSITION ",0DH,0AHDB 21 DUP(" "),"i TO CHANGE VALUE,ENTER TO CONFIRM $" MSGSEC DB "PRESS i TO START AND STOP ",0DH,0AHDB 21 DUP(" "),"q TO QUIT,a TO CLEAR IF IT HAS STOPED $" NULINE DB 25 DUP(?),'$' ;清空行KSBUF DB 6,0,6 DUP(?)KEYNUM DB ?MODE DB ?DAY DB ?MON DB ?YEAR DW ?SEC DB ?MSEC DB ?MIN DB ?HOUR DB ?BEEPHOUR DB 0 ,0BEEPMIN DB 0,0SWIOFF DB "FF$"SWION DB "N $"SETSTR DB "00:00 OFF/ON",'$'WSTR DB "00:00:00 ",'$'BFLAG DB 0SFLAG DB 0INISEG DW 0INIOFF DW 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCALL C LEARCALL C REATUIMOV MODE,0CALL S OUNDAGAIN: CALL R EFRESH ;刷新时间日期;******BFALG 为闹钟与秒表标志位。

微机原理数字钟的设计

微机原理数字钟的设计

目录一、设计要求 (1)二、设计目的 (1)三、设计的具体实现 (1)1、系统概述 (1)2、单元电路设计 (2)2.1、8255初始化: (3)2.2、8253初始化: (3)2.3、8259初始化: (4)3、软件程序设计和调试 (5)3.1、主程序流程图: (5)3.2、电子时钟中断处理程序流程图: (6)3.3、显示模块流程图: (7)3.4、程序代码: (7)四、结论与展望 (14)五、心得体会及建议 (14)六、附录 (15)七、参考文献 (15)电子时钟的设计报告一、设计要求利用8259A中断控制器、8253定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。

1. 电子时钟具有二十四小时循环记时功能,走时要准。

2. 显示格式,时:分:秒。

3. 利用8253作为定时器。

二、设计目的通过本次课程设计学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。

1. 熟练掌握8086/88教学系统的基本操作和调试程序的各种指令。

2. 掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。

3. 掌握8255的各种工作方式及其应用编程。

4. 掌握8253定时/计数器的工作原理、工作方式及其应用编程。

5. 熟悉编程及调试程序的方法。

6. 练习LED-KEYBOARD UNIT的使用方法和数码管的显示编程方法。

三、设计的具体实现1、系统概述基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。

微机原理课程设计报告 数字时钟的实现(附代码)

微机原理课程设计报告 数字时钟的实现(附代码)

微机原理课程设计报告数字时钟的实现(附代码)微机原理课程设计报告-数字时钟的实现(附代码)合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号:姓名:一、设计主题和要求:【课题6】数字时钟1.使用8253定时器产生第二脉冲定时中断。

在中断服务程序(24小时制)中实现秒、分和小时的进位。

2.在七段数码管上显示当前的时分秒(例如,12点10分40秒显示为121040)。

3.按“c”可设置时钟的时间当前值(对准时间)。

二、设计思路:总体思路:1、功能概述:测试盒连接:本实验建立在dais实验箱基础上完成的基本连线及程序如下:138译码器:a、 B、C和D分别连接到A2、A3、A4和GS;Y0连接8253的CS芯片选择信号;Y1连接至8259的CS芯片选择信号;8253连接:分频信号t2接8253的clk0;8253的out0接8259的ir7;8253的gate信号接+5v;8259连线:8259的数据线连接到数据总线;本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块,(1)程序运行后,led显示000000初始值,并且开始计数(2)按C键设置初始时间。

考虑到第一个数字只能是0、1和2,当第一个数字显示2时,第二个数字只能显示0~4。

同样,以下各项应满足时钟值的合理值;(3)在手动输入初始值时,按d键进行回退1位修改已设置值,连续按d键可以全部进行删除修改。

2.主程序设计主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。

主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给cpu一个中断请求,cpu会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。

详细流程图见图三-1。

3.LED显示子程序设计本程序显示部分用了6个共阳极led作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个led依次显示出相应的数字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北科技大学课程设计报告学生姓名:学号:专业班级: 电子信息科学与工程课程名称:微型计算机原理及应用学年学期: 2 01 1 —2012 学年第1 学期指导教师:20 0 1 1年 1 2月课程设计成绩评定表目录一、课设题目及目的………………………………….4二、设计任务………………………………………….4三、总框图及设计流程 (4)四、ﻩ源程序清单 (6)五、ﻩ调试结果及显示 (19)六、ﻩ个人贡献………………………………………….19七、课程设计总结及体会 (21)一、课设题目及目的实习题目:数字时钟程序实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。

二、课设任务本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通过合理的操作能修改时和分的内容来修改时间。

再有,可以给它设定一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。

除此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年xx 月xx日。

'*DB '***********PRESS ESCBUTTON TO EXIT**************',0AH,0DH,'$'TN DB'PLEASE INPUT THE NEW TIME(HH:MM:SS):',0DH,0AH,'$'TMDB'PLEASE INPUT THE ALARM TIME (HH:MM:SS):',0DH,0AH,'$'MUSICMESS DB'PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW)',0DH,0AH,'$'MESS2DB'TIME IS:',0AH,0DH,'$'MESS3DB 'TODAY IS:',0AH,0DH,'$'DBUFFER1DB20DUP('')T_BUFFD B 40 ;在数据段开一段时间显示缓冲区DB ?DB 40DUP(?)HOR DB?MIN DB?SEC DB?TEMPHOR DB ?TEMPMIN DB?TEMPSEC DB?MUSIC DW 800;存放音乐的频率数DATA ENDSSTACK SEGMENTDB 100 DUP(?)STACK ENDSCODESEGMENTASSUME CS:CODE,SS:STACK,DS:DATASTART:CALL CLEAR ;调用清屏子程序DISPLAY:;时间显示部分MOV AX,DATAMOVDS,AXMOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BXMOV AH,2CH;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中INT 21H;判断时间是否相等SUB DH,1;秒数+1修正CALL CHECK;.........................................................................MOV AL,CH;小时数设定MOV AH,0CALLBCTD;调用进制转换子程序二进制BCD码子程序PUSH AXAND AL,0F0H;选取AL高四位MOV CL,4 ;设置右循环的次数ROR AL,CL;右循环OR AL,30H ;加30H得到ACSII码MOV[BX],AL;将得到的结果送到T_BUFF缓冲区INC BX;BX自加1,指针指向下一个缓冲区的下一个地址POP AXAND AL,0FH;选取低四位ORAL,30HMOV [BX],AL;将转换后的低四位值送入缓冲区的下一个地址INCBX ;........................................................................MOV AL,':';显示分隔符号MOV [BX],ALINCBX;........................................................................MOVAH,2CH;取时间INT21H ;.......................................................................MOV AL,CL;分钟数设定MOV AH,0CALLBCTD;调用进制转换子程序二进制BCD码子程序PUSH AXAND AL,0F0H;选取AL高四位MOV CL,4;设定循环次数ROL AL,CL;循环左移4次ORAL,30H;加30H得到ACSII码MOV[BX],AL;将得到的结果送到T_BUFF缓冲区INC BX;BX自加1,指针指向下一个缓冲区的下一个地址POPAXAND AL,0FH;选取低四位OR AL,30HMOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地址INC BX ;.....................................................................MOV AL,':';显示分隔符号MOV[BX],ALINC BX;.....................................................................MOV AH,2CH;秒设定MOV AL,DHMOV AH,0CALLBCTD;调用进制转换子程序二进制BCD码子程序PUSH AXAND AL,0F0H;选取AL高四位MOV CL,4ROLAL,CLOR AL,30H;加30H得到ACSII码MOV[BX],AL;将得到的结果送到T_BUFF缓冲区INC BXPOP AXAND AL,0FH;选取低四位OR AL,30HMOV [BX],AL;将转换后的低四位值送入缓冲区的下一个地址INC BX ;..........................................................MOV AL,'$';将字符串的结束位送至显示缓冲区的最后一位MOV [BX],AL ;..........................................................CALL DATEPUSH BX ;置光标位置,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2;0~1用于此程序最下边的在下面的两个置光标位置MOV BH,0MOVDH,17;行MOVDL,41;列INT10HPOP BXLEA DX,T_BUFF;送T_BUFF偏移地址到DX,并调用DOS显示功能,功能号为9MOV AH,9INT 21H;至此当前时间的显示功能结束!PUSH BX ;置光标位置MOV AH,2MOVBH,0MOVDH,16MOVDL,41INT 10H ;日期POP BXLEA DX,DBUFFER1MOV AH,9INT 21HPUSH BX ;置光标位置MOVAH,2MOV BH,0MOV DL,21INT10HPOP BXLEA DX,MESS3MOV AH,9INT 21H;显示MESS3PUSH BX ;置光标位置MOV AH,2MOV BH,0MOV DH,0MOV DL,0INT 10HPOPBXLEA DX,MESS1MOV AH,9INT 21H;显示MESS1PUSH BX ;置光标位置MOV AH,2MOV BH,0MOV DH,17MOV DL,21INT 10HPOP BXLEADX,MESS2MOVAH,9INT 21H ;显示MESS2 ;.............................................CALLDELAY1MOVAH,1;调用键盘I/O中断功能号1,获取键值到ALINT 16HCMP AL,'M'JE EDITMUSICCMP AL,'M'JE EDITMUSICCMP AL,'C' ;是C键,转移闹钟时间修改程序JE EDITTIMECMP AL,'C';是C键,转移闹钟时间修改程序JEEDITTIMECMP AL,'S' ;是S键,转移时间修改程序JE CORCMP AL,'S';是S键,转移时间修改程序JE CORCMP AL,1BHJZQUIT;是ESC键,退出程序JMP DISPLAYQUIT:MOV AH,4CHINT21HRETCOR: CALL SETTIME;设置时间;..........................................EDITMUSICPROCPUSH AX;入栈保护数据PUSH BXPUSHCXPUSHDXPUSHFMOVDX,OFFSET MUSICMESS ;显示修改音乐的种类提示MOV AH,09HINT 21HMOV DX,OFFSETT_BUFF;数据缓冲区的数据输入MOVAH,0AHINT 21HAND DX,0HLEA BX,T_BUFFINC BXINC BXINC BXMOVAL,[BX]CMP AL,'1'JE M800TOCMP AL,'2'JEM1600TOCMP AL,'3'JE M3200TOM800TO:MOV MUSIC,800JMP TM1600TO:MOV MUSIC,1600JMPTM3200TO:MOV MUSIC,3200T:POPF;出栈恢复数据POPDXPOP CXPOP BXPOP AXJMPSTARTRET;返回DOSEDITMUSICENDP;结束BCTD PROC NEAR ;二进制BCD码子程序;AX输入参数;AX输出参数,存放调整过的BCD码MOV DX,AXMOV AX,0MOV CX,16 ;设置循环次数BCTD1:CLC ;清进位标志CRCL DX,1 ;通过进位的循环左移ADC AL,AL ;带进位加法DAA ;加法的十进制调整XCHG AL,AH ;交换高,低8位ADC AL,ALDAAXCHG AL,AHLOOP BCTD1 ;循环次数保存在CX里RETBCTD ENDP ;.....................................EDITTIME PROC ;时间修改程序PUSH AX;入栈保护数据PUSH BXPUSHCXPUSH DXPUSHFMOV DX,OFFSETTM ;显示修改时间的格式提示MOVAH,09HINT 21HMOVDX,OFFSETT_BUFF ;数据缓冲区的数据输入MOV AH,0AHINT21HAND DX,0HLEA BX, T_BUFFINC BXINCBXINC BXMOVDH,[BX]SUB DH,30HINC BXMOV DL,[BX]SUBDL,30HMOVCL,10MOVAL,DHMUL CLADD AL,DLMOVCH,ALMOV HOR,ALMOV TEMPHOR,ALINC BXINCBXMOV DH,[BX]SUB DH,30HINCBXMOVDL,[BX]SUB DL,30HMOV CL,10MOV AL,DHMULCLADDAL,DLMOV CL,ALMOV MIN,ALMOV TEMPMIN,ALINC BXINC BXMOV DH,[BX]SUB DH,30HINCBXMOVDL,[BX]SUB DL,30HMOVCL,10MOV AL,DHMUL CLADD AL,DLMOVDH,ALMOV TEMPSEC,AL POPF;出栈恢复数据POP DXPOPCXPOP BXPOP AXJMP STARTRETEDITTIME ENDP ;...................................... CLEAR PROC NEARPUSH AX;入栈保护现场PUSHBXPUSHCXPUSH DXMOVAX,0600H;AH=06(滚动)AL=00(全屏空白)MOV BH,1FH;设置背景颜色(1蓝色)和前景颜色(F白色)SUB CX,CXMOV DX,5F5FHINT10HPOPDX;出栈恢复现场POP CXPOP BXPOP AXRETCLEARENDP;....................DATE PROCNEARMOV AH,2AH;取日期CX:DH:DL=年:月:日AL=星期INT21HMOV SI,0MOV AX,CXMOV BX,100DIVBLMOVBL,AHCALL BCDASC1;日期数值转换成相应的ASCII码字符MOVAL,BLCALL BCDASC1INC SIMOV AL,DHCALL BCDASC1INCSIMOV AL,DLCALL BCDASC1MOV AL,'$'MOV DBUFFER1[SI],ALRETDATE ENDP;..................BCDASC1PROC NEARPUSH BXCBWMOVBL,10DIV BLADD AL,'0'MOV DBUFFER1[SI],ALINC SIADDAH,'0'MOV DBUFFER1[SI],AHINC SIPOP BXRETBCDASC1ENDP ;........................................SETTIME PROC;时间修改子程序CALL INPUT;调用键盘输入子程序输入数据MOV CH,HORMOVCL,MINMOV DH,SECAND DL,0HMOV AH,2DHINT21HJMP STARTRETSETTIMEENDP;........................................DELAY1PROC;精确延迟时间子程序MOV DX,04FFH;循环次数UP:XOR CX,CXA:NOPLOOP ADEC DXJNZ UPRETDELAY1ENDP;.......................................INPUT PROC;输入子程序PUSHAX;入栈保护数据PUSH BXPUSH CXPUSHDXPUSHFMOV DX,OFFSETTN;显示修改时间的格式提示MOV AH,09HINT 21HMOV DX,OFFSET T_BUFF;数据缓冲区的数据输入MOVAH,0AHINT21HAND DX,0HLEA BX,T_BUFFINC BXINCBXMOV DH,[BX] SUB DH,30HINC BXMOV DL,[BX] SUB DL,30HMOV CL,10MOV AL,DHMUL CLADD AL,DL MOV CH,AL MOVHOR,AL INC BXINCBXMOV DH,[BX] SUB DH,30HINC BXMOV DL,[BX]SUB DL,30HMOV CL,10MOVAL,DHMULCLADDAL,DLMOV CL,ALMOVMIN,ALINC BXINC BXMOV DH,[BX]SUBDH,30H INC BXMOV DL,[BX] SUB DL,30H MOV CL,10 MOV AL,DH MULCLADDAL,DLMOVDH,ALMOV SEC,ALPOPF;出栈恢复数据POP DXPOP CXPOP BXPOP AXINPUT ENDP ;..................................................CHECKPROCPUSH AXPUSHBXCMP CH,TEMPHOR;设置定点报时JNE CF1CMPCL,TEMPMINJNE CF1CMPDH,TEMPSECJEXIANGCF1:CMPCL,0 ;设置整点报时JNE CFCMP DH,0JNE CFXIANG:CALL OPENPUSH DXPUSH CXMOV DX,12HMOV AX,34DEHMOVCX,MUSICDIV CXOUT 42H,ALMOV AL,AHOUT 42H,ALMOV AH,1INT 21HPOP CXPOP DXCALL CLOSECF:POP BXPOPAXRETCHECK ENDPOPENPROCPUSHAXIN AL,61HOR AL,03HOUT 61H,ALPOP AXOPEN ENDPCLOSE PROCPUSH AXIN AL,61HAND AL,0FCHOUT61H,ALPOP AXRETCLOSE ENDP;................CODE ENDSEND START五.调试结果及显示六.个人贡献在本次课设实现过程中,我主要负责程序校正,和一部分程序的解释,主要有以下程序: MOV AL,CH;小时数设定MOVAH,0CALLBCTD ;调用进制转换子程序二进制BCD码子程序PUSH AXANDAL,0F0H ;选取AL高四位MOV CL,4;设置右循环的次数RORAL,CL ;右循环ORAL,30H ;加30H得到ACSII码MOV [BX],AL ;将得到的结果送到T_BUFF缓冲区INC BX ;BX自加1,指针指向下一个缓冲区的下一个地址POP AXAND AL,0FH;选取低四位OR AL,30HMOV [BX],AL;将转换后的低四位值送入缓冲区的下一个地址INC BX ;........................................................................MOV AL,':';显示分隔符号MOV [BX],ALINCBX;........................................................................MOV AH,2CH;取时间INT 21H ;.......................................................................MOVAL,CL;分钟数设定MOV AH,0CALL BCTD;调用进制转换子程序二进制BCD码子程序PUSHAXAND AL,0F0H;选取AL高四位MOV CL,4;设定循环次数ROLAL,CL;循环左移4次ORAL,30H;加30H得到ACSII码MOV [BX],AL ;将得到的结果送到T_BUFF缓冲区INC BX;BX自加1,指针指向下一个缓冲区的下一个地址POP AXAND AL,0FH;选取低四位ORAL,30HMOV [BX],AL;将转换后的低四位值送入缓冲区的下一个地址INC BX ;.....................................................................MOVAL,':';显示分隔符号MOV[BX],ALINC BX ;.....................................................................MOVAH,2CH ;秒设定INT21HMOVAL,DHMOV AH,0CALL BCTD;调用进制转换子程序二进制BCD码子程序PUSH AXAND AL,0F0H;选取AL高四位MOV CL,4ROL AL,CLOR AL,30H;加30H得到ACSII码MOV[BX],AL;将得到的结果送到T_BUFF缓冲区INC BXPOP AXANDAL,0FH;选取低四位OR AL,30HMOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地址INC BX;…………………………………CLEARPROC NEARPUSH AX ;入栈保护现场PUSH BXPUSHCXPUSH DXMOV AX,0600H;AH=06(滚动)AL=00(全屏空白)MOV BH,1FH;设置背景颜色(1蓝色)和前景颜色(F白色)SUB CX,CXMOV DX,5F5FHINT 10HPOP DX;出栈恢复现场POP CXPOP BXPOP AXRETCLEAR ENDP;………………………………BCTD PROC NEAR ;二进制BCD码子程序;AX输入参数;AX输出参数,存放调整过的BCD码MOV DX,AXMOV AX,0MOV CX,16 ;设置循环次数七.课程设计总结及体会在这次的课程设计中,我们选择的题目是电子时钟设计,在设计的过程中,我们进行了相关资料的查询。

相关文档
最新文档