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

合集下载

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

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

电子钟设计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显示系统时间的流程图如下:三.心得体会为期一周的课程设计就要结束了,回想这一周,我经历了许多,懂得了许多。

微机原理秒表时钟课程设计

微机原理秒表时钟课程设计

微机原理秒表时钟课程设计一、课程目标知识目标: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微机系统常用的定时器/计数器芯片,它具有定时计数两大功能。

微机原理数字钟的设计

目录一、设计要求 (1)二、设计目的 (1)三、设计的具体实现 (2)1、系统概述 (2)2、单元电路设计 (2)2.1、8255初始化: (4)2.2、8253初始化: (4)2.3、8259初始化: (5)3、软件程序设计和调试 (7)3.1、主程序流程图: (7)3.2、电子时钟中断处理程序流程图: (7)3.3、显示模块流程图: (9)3.4、程序代码: (9)四、结论与展望 (18)五、心得体会及建议 (19)六、附录 (20)七、参考文献 (21)电子时钟的设计报告一、设计要求利用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、系统概述基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。

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

课程名称微机原理与接口技术任课教师设计题目数字钟设计班级姓名学号日期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)二、设计所用芯片。

2三、设计思想。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2四、设计所用芯片结构 (3)1、8259A芯片的内部结构及引脚 (3)2、8279芯片的内部结构及引脚 (4)3、8253芯片的内部结构及引脚 (5)五、系统各个模块设计 (6)1、系统总体设计 (6)2、主控模块 (7)3、CPU模块 (7)4、定时模块 . . . . . . . . . . . . . . . . . . . . . . . . 95、中断处理模块。

96、显示模块和小键盘模块··········错误!未定义书签。

六、程序流程图················错误!未定义书签。

1、主程序流程图··············错误!未定义书签。

2、定时中断服务程序流程图 (14)七、设计总结 (14)附录一:参考书目 (15)附录二:总体图 . . . . . . . . . . . . . . . . . . . . . . . .15 附录三:源代码............17一、设计要求利用试验平台提供的硬件资源设计一个电子表。

该电子表以时、分、秒的形式实时显示当前时间,且具有校表功能,利用小键盘与标准时间校准。

掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。

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

目录一、设计要求 (1)二、设计所用芯片。

2三、设计思想。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2四、设计所用芯片结构 (3)1、8259A芯片的内部结构及引脚 (3)2、8255芯片的内部结构及引脚 (4)3、8253芯片的内部结构及引脚 (5)五、系统各个模块设计 (6)1、系统总体设计 (6)2、主控模块 (7)3、CPU模块 (7)4、定时模块 . . . . . . . . . . . . . . . . . . . . . . . . 95、中断处理模块。

96、显示模块和小键盘模块··········错误!未定义书签。

六、程序流程图················错误!未定义书签。

1、主程序流程图··············错误!未定义书签。

2、定时中断服务程序流程图 (14)七、设计总结 (14)附录一:参考书目 (15)附录二:总体图 . . . . . . . . . . . . . . . . . . . . . . . .15 附录三:源代码............17一、设计要求利用试验平台提供的硬件资源设计一个电子表。

该电子表以时、分、秒的形式实时显示当前时间,且具有校表功能,利用小键盘与标准时间校准。

掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。

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

二、设计所用芯片8253定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

8255接口芯片:实现键盘输入和显示输出。

8259中断控制器:用于产生中断。

LED:六个LED用于显示时:分:秒值。

小键盘:用于控制设置。

三、设计思想1、设计思想本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。

8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。

即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电平触发方式还是上升沿触发方式,是单片8259还是多片8259。

8259接收到信号后,产生中断信号送CPU处理。

2、设计原理利用定时器8253和8259以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

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

设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。

系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。

基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。

C键:置初值,显示00:00:00G键:显示动态变化(启动表);D键:显示静态不变(表停止);E键:终止程序,返回DOS;P键:设置时:分:秒的值四、设计所用芯片结构1、8259A 芯片的内部结构及引脚中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。

它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。

因此无需附加任何电路,只需对8259A 编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

在MD 微机系统中,8259芯片工作于单片方式。

8259引脚图如图3.3,各引脚功能如下。

D7~D0——八条双向数据线;WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0——地址信号;INT ——中断请求信号;INTA (低电平有效)——中断响应信号;CAS0~CAS2——级联信号,形成一条专用8259A 总线,以便多片8259A 的级联;SP/EN ——从编程/允许级联。

在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。

在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0~IR7——外部中断请求输入线。

要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU 响应时为止)或者是高电平。

8259中断矢量地址与中断信号之间的关系如表3.1所示:2、8255芯片的内部结构及引脚Intel8255是一种通用的可编程序的键盘、显示接口器件,单片器件就能够完成键盘输入和显示控制两种功能。

键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n 键同时按下实行保护。

显示部分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可以显示多达16位的字符或数字。

DB0~DB7:双向数据总线,用来传送8255与CPU之间的数据和命令。

CLK:时钟输入线,用以产生内部定时的时钟脉冲。

RESET:复位输入线,8255复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。

CS:片选输入线,低电平有效,单片机在CS端为低时可以对8255读/写操作。

A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。

RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。

WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8255的缓冲器。

3、8253芯片的内部结构及引脚8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。

8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253引脚图如图3.3示,各引脚功能如下。

D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

2、8253端口地址8253端口地址表五、系统各个模块设计1、系统总体设计本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。

8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。

即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。

系统总体框图如下:系统总体框图2、主控模块主控模块是系的核心模块,对8253、8255进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。

主要由软件实现。

它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:00:00置入显示缓冲,并调用显示模块显示。

如果键值为G则开中断,(中断程序为秒最低位加一)。

如果键值为D则关中断,停止动态显示。

如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。

并调用显示模块显示。

如果健值为E,则终止程序,返回DOS。

3、CPU模块8088最小工作模式,作为整个电子表的核心控制部分。

在8088最小模式中,硬件连接上有如下特点:(1) MN/MX 端接+5V,决定了8088工作在最小模式。

(2)有1片8284A,作为时钟发生器。

(3)有3片8282,用来作为地址锁存器。

8282是典型的锁存器芯片,因为它是8位的,所以需要3片8282作为锁存器。

(4)当系统中所连的存储器和外设系统较多时,需要增加数据总线的驱动能力,这时,要用两片8286作为总线收发器。

8088 构成的CPU4、定时模块定时模块是为8259提供中断请求信号的。

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

定时模块原理图5、中断处理模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

中断模块原理图6、显示模块和小键盘模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

相关文档
最新文档