微机原理课程设计电子钟记录交换数据 创新

合集下载

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

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

微机原理课程设计设计题目:电子时钟班级: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。

微机原理课设(电子时钟)

微机原理课设(电子时钟)

学院:计算机科学技术专业:计算机科学与技术(工)班级:计08-1班*名:***学号:27指导教师:**2011年7月1日微机原理与汇编语言课程设计任务书一、题目:电子表二、设计的目的1. 掌握利用PC机的的中断及中断服务程序的编写方法;2. 掌握定时器/计数器8253的工作原理及编程方法。

三、设计要求编写程序,利用主机内的8253-2的计数器0产生10m的方波输出,此输出送至IRQ0使8259A每10ms产生1次中断,100次后秒加1,然后调整时、分、秒并在屏幕上显示。

程序从按下任意键开始显示数据区存放的时间值,运行中按下空格键即停止运行,并返回DOS。

要求每人独立完成课程设计。

四、设计内容采用PC系列微机现有的硬件和软件资源编写汇编语言程序,在显示器上显示XX(时):XX(分):XX(秒),每秒钟更新1次。

五、课程设计工作量一般每人的程序量应在100行有效程序行以上。

不得抄袭,否则给不及格成绩。

六、课程设计工作计划2011年6月27日1-2节指导教师讲课,学生准备文献资料;2011年6月28日~2011年7月01日每人完成自己程序并能独立演示;2011年7月01日下午验收,学生撰写课程设计报告。

指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩目录第1章概述 ..................................................................................................... 错误!未定义书签。

选题来源 .............................................................................................. 错误!未定义书签。

选题目的 .............................................................................................. 错误!未定义书签。

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

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

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是发光二极管显示器的缩写。

微机原理与接口技术课程设计报告电子钟

微机原理与接口技术课程设计报告电子钟

微机原理与接口技术课程设计报告——电子钟实验学院:计算机学院指导教师:***一实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。

要求设计一个定时显示装置,用实验仪左侧的六个LED数码管显示时间,时间显示格式为24小时制。

分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。

用小键盘控制时钟的启停和时钟的设置,键的定义参见上图键值具体定义如下:G键(启停键)——程序启动后,按下该键时钟启动;再次按下该键,暂停计时,显示当前时间。

S键(设置键)——按下S键后,为时钟设置时、分、秒初始值。

二硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。

74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。

时间的精确定时:用8254定时器0产生25ms的中断信号;8254的片选CS连地址输出端320H,A0,A1分别连地址总线A2,A3,GATE0连+5V,CLK0连74LS393分频输出的47K输出端,OUT0连接到8259的IRQ0整点报时控制:由8255模块控制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8254的OUT0。

三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8254、8259、8255芯片设置中断向量、开放8259中断屏蔽开放处理器中断中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G 键?调用启停子程序S COUNT COUNT=40? ADDONE 子程序COUNT 清0显示时间,调用显示时间子程序结束中断(发EOI 命令)恢复现场中断返回四、实验源代码.486pDATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?Y YN YMIN DW ?SEC DW ?SLL DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATAORG 1500HBEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAXMOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置0MOV COUNT ,0 ;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出MOV DX,20BHMOV AL,0FFHOUT DX,AL;8254初始化,用于产生周期为25ms的中断MOV AL,00110110B ;计数器0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器0写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,AL;8259初始化CLI :关中断MOV DX,300H ;ICW1MOV AL,00010011BOUT DX,ALMOV DX,308H ;ICW2MOV AL,08H ;IR0中断类型号为08HOUT DX,ALMOV AL,00000001B ;ICW4OUT DX,ALMOV AL,0FEH ;IR0开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:[DI],AXMOV AX,SEG INTSRMOV ES:[DI+2],AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT3: MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMENEXT6: INC COUNT ;当COUNT直为40时,加一秒,之后置0 CMP COUNT,40 ;25ms*40=1sJB NEXT7CALL ADDONEMOV COUNT,0NEXT7: CALL SHOW ;显示时间MOV AL,20H ;发EOI命令,结束中断MOV DX,300HOUT DX,ALIRETINTSR ENDPTSTART PROC ;控制时间暂停和开始。

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

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

课程设计报告课程设计名称:数字时钟系:三系学生姓名:梁文化阿龙班级:通信班学号: ************ 成绩: 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。

(完整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. 学生能理解电子钟的基本原理,掌握电子时钟系统的组成及其工作方式。

2. 学生能够运用所学的微机知识,设计并实现一个具有基本计时功能的电子钟。

3. 学生能够了解并描述常见电子时钟电路图,分析电路中各元件的作用。

技能目标:1. 学生能够运用编程软件,如Arduino或51单片机等,编写控制程序,驱动电子钟运行。

2. 学生通过实际动手操作,掌握电子元件的焊接和电路板的搭建,提高实践操作能力。

3. 学生能够通过小组合作,进行问题分析和解决方案的设计,提升团队协作和沟通能力。

情感态度价值观目标:1. 学生通过电子钟的设计与制作,培养创新思维和问题解决能力,增强自信心和成就感。

2. 学生在实践过程中,能够体会到学习的乐趣,培养对科学技术的兴趣和探索精神。

3. 学生通过小组合作,学会尊重他人意见,培养团队精神和责任感。

课程性质:本课程为实践性课程,强调理论联系实际,注重培养学生的动手操作能力和创新思维。

学生特点:学生为初中生,具有一定的微机基础,好奇心强,喜欢动手实践。

教学要求:教师应引导学生主动参与,注重启发式教学,鼓励学生提出问题、解决问题,关注学生的个体差异,促进每个学生的全面发展。

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

二、教学内容本课程教学内容紧密结合课程目标,以确保学生能够系统地掌握电子钟设计与制作相关知识。

1. 理论知识:- 电子时钟原理:介绍时钟信号、晶振、分频器等基本概念。

- 电路元件:学习并认识LED、电阻、电容、二极管、三极管等常见电子元件。

- 微控制器:了解Arduino或51单片机的基本结构、工作原理及编程方法。

2. 实践操作:- 电路设计:学习如何绘制电子钟电路图,选择合适的电子元件。

- 程序编写:根据电子钟功能需求,编写相应的控制程序。

- 电路搭建:动手焊接电路板,搭建电子钟硬件系统。

3. 教学大纲:- 第一阶段:电子时钟原理学习,认识电路元件。

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

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

2010级微机原理课程设计实验报告设计题目:电子时钟设计班级:电信10102班分组名单:2012-6-28目录第一章设计部分1.1 设计目的 (1)1.2设计要求 (1)1.3设计思路 (1)第二章实现部分2.1、分析论证2.1.1显示模块 (1)2.1.2时钟运算模块 (1)2.1.3对时模块 (2)2.2、原理说明 (2)2.3、设计电路图 (2)2.3.18086最小工作方式 (2)2.3.2秒脉冲发生器 (3)2.3.3时、分调整电路 (3)2.3.4.显示电路 (4)2.4、元件功能说明2.4.1.8253的主要功能 (4)2.4.2.D触发器74ls273管脚排列图及功能表介绍 (5)2.4.3单向总线驱动器74ls244功能介绍 (5)2.5、程序清单 (6)2.6、调试过程遇到问题及解决方法 (9)第三章电子时钟使用说明3.1电子时钟按键说明第四章学习心得附录参考文献 (9)第一章设计部分1.1 设计目的学习掌握protues软件功能及其使用方法熟练掌握TND86/88教学系统的基本操作和调试程序的各种指令。

熟练掌握8086CPU的使用与编程调试程序的方法。

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

练习7SEG-MPX8-CA-RED数码管的显示编程方法。

1.2、设计要求利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示缓冲区中予置)开始走时。

1.3、设计思路电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。

其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。

这样,才能循环记时。

显示时利用7段显示器显示六位十进制数据。

前两个显示小时,中间两个显示分钟,后两个显示秒。

时钟的运算是利用中断来实现的,利用8253的模式三输出一定频率的方波作为触发中断的条件。

微机原理实验报告电子钟

微机原理实验报告电子钟

微机原理与接口技术课程设计实验报告——电子时钟(附8251串口通讯部分实验报告)通过设置8251的数据位和方式字,通过示波器测量输出波形。

在实验中,8251选择异步通讯方式,修改自发自收程序,通过测量TXD引脚观察波形。

观察波形&分析:1.数据位:6AH,方式字:7EH(1个停止位,偶校验)可知:输出为00101011001,数据为可以推断出是加粗部分,则前一位为起始位,后两位01分别为偶校验位和停止位。

实验结果与结果相符。

2.数据位:0C4H,方式字:7EH(1个停止位,偶校验)可知:输出为00010001111,数据为可以推断出是加粗部分,则前一位为起始位,后两位11分别为偶校验位和停止位。

实验结果与结果相符。

一、课程设计目的和意义通过本次课程设计掌握多种芯片使用的方法,灵活地综合运用课本知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解。

了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程。

二、开发环境及设备PC机一台、实验箱、导线若干8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号8255并口:用做接口芯片,和数码管相连8259中断控制器:用于产生中断LED:六个LED用于显示时:分:秒值三、设计思想与原理1、设计思想本系统设计的电子时钟用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟,8259做中断控制器产生中断。

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

8254采用计数器0,先读写低字节后读写高字节,方式2,二进制计数,以18.432kHz为输入时钟,4800H分频后为1Hz,即1s产生上升沿,此信号接8259的中断请求信号输入端,CPU即处理中断,使液晶显示器上的时间发生变化。

2.设计原理利用实验台上提供的定时器8254和扩展板上提供的8259和数码显示电路,设计一个电子时钟,由8254中断定时,电子时钟的显示格式由左到右分别为时、分、秒。

微机原理课程设计简单电子钟设计

微机原理课程设计简单电子钟设计
A0
A1
CLK0
OUT0
GATE0
图3.4 实验接线图
3.2 主程序流程图
主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8254、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有则返回继续执行。
INC AX
MOV MSEC,AX
1、中断工作原理,定时计数原理,并行通信原理工作原理。
2、掌握8259芯片,8254芯片,8255芯片功能,结构。
3、掌握8259芯片,8254芯片,8255芯片的编程。
4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。
1.3设计要求
1、总体内容:设计一电子时钟,能在数码管上显示时间并计时。
2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.
3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。
4、前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。
1.4电子时钟
电子时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。传统的设计方法有两种,一是利用组合逻辑电路和时序电路等中小规模集成电路来设计;一是利用单片机编程技术来设计。这两种设计都存在硬件复杂,设计周期长,成本高等缺点。并且本学期通过对《微型计算机原理及应用》的学习,利用掌握的知识进行实践是必要的,以巩固基础知识,培养独立操作能力。而本次课程设计要实现的功能为:利用定时器从0开始进行计时,将计时的结果显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1。根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz;

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

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

时钟控制系统设计一、设计任务及其要求………………………………………………………二、方案比较及评估论证……………………………………………………三、系统工作原理……………………………………………………………四、硬件原理及其电路图……………………………………………………五、软件思想(含流程图和程序)…………………………………………六、调试记录及结果分析……………………………………………………七、参考资料…………………………………………………………………八、芯片资料…………………………………………………………………九、总结………………………………………………………………………一、设计任务及其要求(1)设计一个时钟,可以显示时分秒,年月日,并可以调整。

(2)利用PC系列微机现有的硬件和软件资源,编写程序,使在CRT屏幕上显示XXXX 年XX月:XX日:XX时:XX分:XX秒,并且每秒钟更新一次显示。

(3)编写程序,利用主机内的8253/8254-2的计数器0产生10ms的对称方波输出,该输出送至IRQ0使8259A每10ms产生一次中断,100次中断后秒量+1,然后调整年,月,日,时,分,秒并显示在屏幕上。

程序从按下任意键考试显示数据区中存放的时间值,运行中按下空格键则停止运行返回DOS。

(4)调整程序,直至运行正常。

二、方案比较及评估论证方案一:三、系统工作原理首先在数据段开辟一显示缓冲区,用来存储系统时间。

调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。

分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。

调用DOS字符串显示功能将时间显示出来。

并利用8259A的IR0中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。

三、硬件原理及其电路图本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8259做中断控制器产生中断。

微机原理实时时钟课程设计报告书

微机原理实时时钟课程设计报告书

西南科技大学微机原理课程设计题目电子实时时钟软件设计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 CLEARCALL CREATUIMOV MODE,0CALL SOUNDAGAIN: CALL REFRESH ;刷新时间日期;******BFALG 为闹钟与秒表标志位。

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

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

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

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

该系统的要求利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示缓冲区中予置)开始走时。

二、系统的主要功能该系统是一个简单的利用8253定时器、8255可并行通信接口和中断控制器8259设计的电子时钟系统,在该系统中设有一个启动键,启动键未按下时,显示初始化界面“HELLO”;当按下启动键时,8253定时器开始计时(8253的初值为10000,接1MHz的脉冲,即当8253计满100时正好是1S),当计时计满100时,8259便产生一次中断,在LED显示器便显示系统预先设计好的初始值“02.59.55”便开始从秒位开始加1,当加到10S时,10s位加1,加到60S 时分位加1,同时秒位清零。

该系统主要接口部件有:可并行通信接口8255一片,计数器/定时器8253一片,中断控制器8259一片,七段LED数码管显示器6个以及译码电路等。

其中各个部件的初始化如下:1、可并行通信接口8255的控制字是方式选择控制字,A口工作在方式0(即基本输入输出方式)下,并且为输出状态,B口工作在方式0下,为输出口,C口为输出口,其初始化为:8255控制口地址为20bhA端口地址为208hB端口地址为209hC端口地址为20ahmov dx,20bhmov al,10000001bout dx,al2、做为计数器的计数器/定时器8253,在设置好计数初值(即定时常数)后,便开始减1计数,为0时,输出一个信号;控制字设置:BCD为设置为计数值为二进制格式,模式选择为模式2(即为分频器,当控制字写入后,输出段OUT变为高电平作为初始状态,当计数初值写入初值寄存器后,下一个时钟脉冲时,计数初值被写到计数执行部件,然后计数执行部件做减1计数,减到1时,输出端OUT变为低电平;完成一次计数过程后,输出端OUT又变为高电平,开始一个新的计数过程,由此可以周而复始的进行下去),读写指示位为先写低8位字节,在读写高8位字节,计数器选择计数器0。

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

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

微机原理课程设计学生姓名:学号:专业班级:电子信息工程课程名称:微型计算机原理及应用学年学期: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五.调试结果及显示六.课程设计总结及体味在这次的课程设计中,我们选择的题目是电子时钟设计,在设计的过程中,我们进行了相关资料的查询。

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

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

《微机原理》课程设计——电子时钟的设计(2005-6-24) 山东科技大学机电学院js02-2 20号一.课程设计题目:电子钟1.设计目的:了解定时/计数器和中断的使用。

2.设计所需设备:PC机。

3.设计任务:编写程序,在PC机上显示时间。

二.程序内容:第一部分:定义显示界面。

第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。

第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。

第四部分:获取键盘的按键值,判断键值并退出系统。

三.程序设计原理:首先在数据段开辟一显示缓冲区,用来存储系统时间。

调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。

分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。

调用DOS字符串显示功能将时间显示出来。

并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。

由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。

时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去。

程序的最后还设计一了个按“ESC”键就退出的功能,采取了判断键值的方法。

为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。

本程序具有很强的扩展功能,我们可以在此基础上进行一些输入、输出扩展,显示的扩展,比如可以做成计时器,并设计一个精美的运动的图形界面,时间到了会自动调用PC喇叭发出报警声等等。

但是由于时间的原因,所以只做了核心的部分,这不得不说是一个遗憾。

本程序使用了未来汇编,与VISUAL ASM开发平台。

四.程序设计心得:本程序虽然只花了一天的时间,但是也收获颇多。

微型计算机原理与接口技术课程设计报告具有记忆功能的电子时钟

微型计算机原理与接口技术课程设计报告具有记忆功能的电子时钟

一、题意分析及解决方案1、题意需求分析(1需要一个八位LED数码管显示器用于显示时间(分,秒;显示的初值在启动实验箱运行程序后输入;按任意键后时间开始走动,每隔一秒改变一次显示值(每60秒为一分钟,60分一小时,24小时后复位;能同时显示时分秒共六位;秒钟为60时,能自动复位到零,并使分钟加一;分钟为60时,能自动复位到零,并使小时加一;小时为24时时,自动复位到零。

LED数码管显示器循环显示时分秒的动态值(2如何让一个计时信息准确无误的显示出来,即选择什么样的芯片来显示时间(3如何让断电后再启动时,时钟能够按照断电前的时间继续计时,用什么芯片来完成,怎样完成?2、解决问题及思路(1硬件部分LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。

使用寿命较长,光电能转化效率高键盘(Keyboard是常用的输入设备,它是由一组开关矩阵组成,结构相对复杂,与8279A配套使用8255芯片是可编程的并行接口芯片,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便(2软件部分计数器的初始时间设置:启动单片机并成功运行程序后在十六进制开关中输入初值。

错误输入时显示ERROR信息计时:首先将秒位计时加1,判断秒位是否为60,若不是,则直接显示时间;若是,则将秒位置为00,且分位加1;分位同上;小时到24,则将时位清零。

显示:8279A芯片内部有一个显示RAM和一个FIFO RAM,可以暂存从小键盘中读出的数据,同时可以将内存中的数据暂存到显示RAM中,简化了程序复杂度。

每次将各个位要显示的数据处理好后到换码表中找到对应值,初始化8279后将值送到数据口即实现显示的目的存储与读出:在开始执行程序之前做读出操作,将AT24C02内的数读出到8255中,从而再将其送入到8279中进行操作,这样就执行了读出操作;执行时间加1操作是通过8255将此时的数存入到AT24C02中。

合肥工业大学微机原理课程设计数字闹钟

合肥工业大学微机原理课程设计数字闹钟

合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术13-1班学号:2013211601姓名:康安一、设计题目及要求:1.通过8253 定时器产生1秒脉冲定时中断。

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

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

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

4.按“D”键设置闹铃时间。

5. 按“E”键表示时钟开始运行。

6. 程序运行时,首先按“D”键设置闹铃时间,然后按“C”键设置时钟的时间,再按“E”让时钟开始运行。

当前时间运行到闹铃时间时,6 个数码管全部闪烁显示“8”。

二、设计思想:总体思想: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键设置初始时间,LED清零,显示待输入状态“-------”,之后用户输入数字,更改LED显示内容。

考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值;(3)按D键设置闹钟时间,清除LED显示内容,显示待输入状态“------”,之后用户输入数字,更改LED显示内容。

数字的取值情况和按C键设置初始时间相同。

(4)按E键运行时钟,LED显示内容恢复为按C键设置的时间,并开始计时。

(5)当LED显示的数字和预先设置好的闹钟相同时,更改LED显示状态,改为“888888”,闪烁显示10秒后恢复原来的时间,继续计数。

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

.MODEL TINY
EXTRN Display8:NEAR, GetKeyA:NEAR, GetKeyB:NEAR
IO8259_0 EQU 0F000H
IO8259_1 EQU 0F001H
Con_8253 EQU 0E003H
T0_8253 EQU 0E000H
.STACK 200
.DA TA
halfsec DB 0 ;0.5秒计数
Sec DB 0 ;秒
Min DB 0 ;分
hour DB 0 ;时
buffer DB 8 DUP(0) ;显示缓冲区,8个字节
buffer1 DB 8 DUP(0) ;显示缓冲区,8个字节
bNeedDisplay DB 0 ;需要刷新显示
number DB 0 ;设置哪一位时间
bFlash DB 0 ;设置时是否需要刷新
.CODE
START: MOV AX,@DA TA
MOV DS,AX
MOV ES,AX
NOP
mov sec,0 ;时分秒赋初值23:58:00
mov min,00
mov hour,00
MOV bNeedDisplay,1 ;显示初始值
CALL Init8253
CALL Init8259
CALL WriIntver
STI
MAIN: CALL GetKeyA ;按键扫描
JNB Main1
CMP AL,0FH ;设置时间
JNZ Main1
CALL SetTime
Main1: CMP bNeedDisplay,0
JZ MAIN
CALL Display_LED ;显示时分秒
MOV bNeedDisplay,0 ;1s定时到刷新转速
Main2: JMP MAIN ;循环进行实验内容介绍与测速功能测试SetTime PROC NEAR
LEA S I,buffer1
CALL TimeToBuffer
MOV Number,0
Key: CMP bFlash,0
JZ Key2
LEA S I,buffer1
LEA D I,buffer
MOV CX,8
REP MOVSB
CMP halfsec,0
JNZ FLASH
MOV BL,number
NOT BL
AND BX,07H
LEA S I,buffer
MOV BYTE PTR [SI+BX],10H ;当前设置位置产生闪烁效果FLASH: LEA S I,buffer
CALL Display8
MOV bFlash,0
Key2: CALL GetKeyA
JNB Key
CMP AL,0EH ;放弃设置
JNZ Key1
JMP Main1
Key1: CMP AL,0FH
JZ SetTime8
SetTime1: CMP AL,10
JNB Key ;无效按键
CMP number,0
JNZ SetTime2
CMP AL,3 ;调整时的十位数
JNB Key
MOV buffer1 + 7,AL
JMP SetTime7
SetTime2: CMP number,1
JNZ SetTime3
CMP buffer1 + 7,1 ;调整时的个位数
JZ SetTime2_1
CMP AL,4
JNB Key
SetTime2_1: MOV buffer1 + 6,AL
INC number
JMP SetTime7
SetTime3: CMP number,3
JNZ SetTime4
CMP AL,6 ;调整分的十位数
JNB Key
MOV buffer1 + 4,AL
JMP SetTime7
SetTime4: CMP number,4
JNZ SetTime5
MOV buffer1 + 3,AL ;调整分的个位数
INC number
JMP SetTime7
SetTime5: CMP number,6
JNZ SetTime6
CMP AL,6 ;调整秒的十位数
JB SetTime5_1
JMP Key
SetTime5_1: MOV buffer1 + 1,AL
JMP SetTime7
SetTime6: MOV buffer1,AL ;调整秒的个位数SetTime7: INC number
CMP number,8
JNB SetTime8
MOV bFlash,1 ;需要刷新
JMP Key
SetTime8: MOV AL,buffer1 + 1 ;确认
MOV BL,10
MUL BL
ADD AL,buffer1
MOV sec,AL ;秒
MOV AL,buffer1 + 4
MUL BL
ADD AL,buffer1 + 3
MOV min,AL ;分
MOV AL,buffer1 + 7
MUL BL
ADD AL,buffer1 + 6
MOV hour,AL ;时
JMP Exit
Exit: R ET
SetTime ENDP
TimeToBuffer PROC NEAR
MOV AL,hour
XOR AH,AH
MOV BL,10
DIV BL
MOV [SI],AH
MOV [SI + 1],AL ;秒
MOV BYTE PTR [SI + 2],10H ;这位不显示
MOV AL,min
XOR AH,AH
DIV BL
MOV [SI + 3],AH
MOV [SI + 4],AL ;分
MOV BYTE PTR [SI + 5],10H ;这位不显示
MOV AL,sec
XOR AH,AH
DIV BL
MOV [SI + 6],AH
MOV [SI + 7],AL ;时
RET
TimeToBuffer ENDP
Display_LED PROC NEAR
LEA S I,buffer
CALL TimeToBuffer
LEA S I,buffer
CALL Display8 ;显示
RET
Display_LED ENDP
Timer0Int: PUSH AX
PUSH DX
MOV bFlash,1
INC halfsec
CMP halfsec,2
JNZ Timer0Int1
MOV bNeedDisplay,1
MOV halfsec,0
INC sec
CMP sec,60
JNZ Timer0Int1
MOV sec,0
INC min
CMP min,60
JNZ Timer0Int1
MOV min,0
INC hour
CMP hour,24
JNZ Timer0Int1
MOV hour,0
Timer0Int1: MOV DX,IO8259_0
MOV AL,20H
OUT DX,AL
POP DX
POP AX
IRET
Init8253 PROC NEAR
MOV DX,Con_8253
MOV AL,34H
OUT DX,AL ;计数器T0设置在模式2状态,HEX计数
MOV DX,T0_8253
MOV AL,12H
OUT DX,AL
MOV AL,7AH
OUT DX,AL ;CLK0=62.5kHz,0.5s定时
RET
Init8253 ENDP
Init8259 PROC NEAR
MOV DX,IO8259_0
MOV AL,13H
OUT DX,AL
MOV DX,IO8259_1
MOV AL,08H
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0FEH
OUT DX,AL
RET
Init8259 ENDP
WriIntver PROC NEAR
PUSH ES
MOV AX,0
MOV ES,AX
MOV DI,20H
LEA A X,Timer0Int
STOSW
MOV AX,CS
STOSW
POP ES
RET
WriIntver ENDP
END START。

相关文档
最新文档