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

合集下载

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

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

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

基于微机原理电子时钟课程设计报告书

基于微机原理电子时钟课程设计报告书

目录一、课程设计要求及目的 (2)二、开发环境及设备 (2)1、设计环境 (2)2、设计所用设备 (2)三、设计思想与原理 (2)1、设计思想 (2)2、设计原理 (3)1、容 (3)2、要求 (3)3、设计环境 (4)4、设计所用设备 (4)三、设计所用芯片结构 (4)1、8259A芯片的部结构及引脚 (4)2、8255芯片的部结构及引脚 (5)3、8255端口地址 (6)4、8254芯片的部结构及引脚 (6)5、8254引脚图如图3示,各引脚功能如下。

(7)四、具体模块设计 (8)1、概述 (8)2、主程序模块 (8)3、小键盘模块 (9)4、显示模块 (10)5、定时模块 (10)6、中断处理模块 (10)7、芯片引脚 (11)五、程序流程图 (12)1、主程序流程图如图6所示 (12)2、键盘扫描程序流程图:(KEY)如图7所示 (13)3、中断处理程序流程图如图8所示: (14)六、心得体会 (15)附录一:参考书目 (15)附录二相关程序 (16)一、课程设计要求及目的1、用8255的A口驱动六个七段数码管(LED)的字段,C口驱动六位七段数码管(LED)的为控制端,右侧两位显示分值,左侧两位显示秒值,2、数码管采用动态扫描方式,用8253做定时器(采用查询方式),每位显示的时间<5ms,扫描频率>50HZ。

3以5ms为基本时间单位,计数产生秒时间值,秒计数到60时对分计数,分计数到60时对时计数。

二、开发环境及设备1、设计环境PC机一台、windows XP系统、实验箱、导线若干。

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

8255并口:用做接口芯片,和小键盘相连。

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

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

小键盘:用于控制设置。

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

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

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

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 ;控制时间暂停和开始。

微机原理闹钟实验报告

微机原理闹钟实验报告

微机原理闹钟实验报告实验名称:微机原理闹钟实验报告实验目的:1. 了解单片机的基本工作原理和编程方法;2. 学习如何使用单片机设计并实现闹钟功能;3. 掌握数字时钟显示技术。

实验器材:1. 单片机实验箱;2. AT89C52单片机;3. LED数码管;4. 4位开关;5. 电源线;6. 连线线缆。

实验原理:本次实验使用单片机AT89C52来设计和实现闹钟功能。

单片机是一种微型电子计算机系统,具有高度集成、功能强大等特点。

数码管是一种常见的数字显示装置,适用于时钟、计时器等场合。

实验步骤:1. 将AT89C52单片机与LED数码管通过连接线连接起来,保证电源线的正负极连接正常。

2. 编写C程序,实现显示当前时间的功能。

通过编程可以将当前时间在数码管上显示出来。

3. 设定闹钟时间和闹铃的功能,通过编程实现。

当闹钟时间到达时,数码管上会显示闹钟时间,并通过蜂鸣器发出声音。

4. 调试程序,确保闹钟功能正常运行。

5. 完成闹钟的相关操作,包括设置闹钟时间、启动闹钟、关闭闹钟等功能。

实验结果:经过编程和调试,我们成功实现了微机原理闹钟的功能。

我们能够通过设置闹钟时间并启动闹钟来实现报时的功能。

当闹钟时间到达时,数码管上会显示相应的时间,并通过蜂鸣器发出声音,起到提醒作用。

实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法。

同时,我学会了使用单片机设计和实现闹钟功能,并掌握了数字时钟显示技术。

这次实验让我对单片机的应用有了更深刻的认识,并提高了我对数字电路设计和编程的能力。

同时,我还发现了实验过程中可能存在的问题和改进的空间。

例如,我可以进一步完善闹钟功能,加入更多的定时和报时功能,提高闹钟的多样化和实用性。

此外,我还可以优化程序的运行效率,提高系统的稳定性和响应速度。

总之,本次实验对我的学习和提高具有重要意义。

通过实践操作,我深入理解了微机原理闹钟的设计与实现,拓宽了我的知识面和实践能力。

我将继续深入学习和掌握微机原理和相关技术,为以后的学习和研究打下坚实的基础。

(完整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微机系统常用的定时器/计数器芯片,它具有定时计数两大功能。

微机原理-数字钟(电子钟)-课程设计

微机原理-数字钟(电子钟)-课程设计
07——外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如表3.1所示:
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0
0
0
0
0
0
矢量地址
20H
~
23H
24H
~
27H
28H
~
2
2
~
2
30H
~
33H
34H
8253有六种工作方式:
(1)方式0:计数结束中断
(2)方式1:可编程频率发生器
(3)方式2:频率发生器
(4)方式3:方波频率发生器
(5)方式4:软件触发的选通信号
(6)方式5:硬件触发的选通信号
基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。
C键:置初值,显示00:00:00
G键:显示动态变化(启动表);
D键:显示静态不变(表停止);
E键:终止程序,返回;
P键:设置时:分:秒的值四、设计所用芯片结构
1、8259A芯片的内部结构及引脚
一、设计要求
二、设计所用芯片
三、设计思想
四、设计所用芯片结构
1、8259A芯片的内部结构及引脚
2、8279芯片的内部结构及引脚
3、8253芯片的内部结构及引脚
五、系统各个模块设计
1、系统总体设计
2、主控模块
3、模块
4、定时模块
5、中断处理模块

微机课程设计电子钟

微机课程设计电子钟

微机课程设计电子钟一、课程目标知识目标: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的模式三输出一定频率的方波作为触发中断的条件。

微机接口电子钟课程设计报告

微机接口电子钟课程设计报告

微机系统与接口课程设计院部名称信息技术学院专业电子信息工程班级学生姓名学号课程设计地点课程设计学时指导教师一、课程设计目的:通过课程设计, 进一步建立微机系统概念, 加深对系统理解和认识, 提高微机系统的应用水平;进一步学习和掌握汇编语言程序的编写方法和应用方法, 通过较大规模程序的编写, 提高汇编语言程序的水平;进一步熟悉接口, 熟悉并口芯片、中断控制芯片、定时计数芯片及数码管等常用接口芯片的编程使用方法。

二、课程设计要求和内容:1.设计要求利用8253可编程定时\计数器、8259中断控制器、8255可编程并行接口芯片和七段数码管设计一个电子时钟, 并编制一程序使得电子时钟能正常运行。

2.设计内容选用8253计数器2进行1s的定时, 其输出OUT1与8259的IRQ0相连, 当定时到1s时产生一个中断服务程序进行时、分、秒的计数, 并送入相应的存储单元;8255的A口接七段数码管的位选信号, B口接数码管的段选信号。

时、分、秒的数值通过对8255的编程可送到七段数码管上显示。

三、课程设计使用的设备和开发环境PC机(带Windows xp系统)串行线*2(分公口和母口两根)导线若干伟福仿真实验箱*1所需主要芯片: 8253*1 、8259*1 、 8255*1四、硬件电路设计:1) 8259芯片介绍中断控制器8259A 是专门为控制优先级中断而设计开发的芯片。

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

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

同时, 在不需要增加其他电路的情况下, 通过多片8259A 的级连, 能构成多达64级的矢量中断系统。

8259A的主要功能如下:①一片8259A可以接受并管理8级可屏蔽中断请求, 通过9片8259A级联可扩展至64级可屏蔽中断优先控制。

②对每一级中断都可以通过程序来屏蔽或允许③在中断响应周期, 8259A可为CPU提供相应的中断类型码。

微机原理课程设计

微机原理课程设计

微机原理课程设计电子时钟是一种常见的电子设备,用于显示时间,并可以提供其他功能,如闹钟、定时等。

在微机原理课程设计中,我们将设计一个基于微机原理的电子时钟,通过利用微控制器实现时间的获取和显示,同时增加一些附加功能。

首先,我们将选择一个适合的微控制器,如51系列的单片机。

它具有较小的封装尺寸和低功耗特性,非常适合用于嵌入式应用。

我们还需要配备一个显示器模块,如数码管或液晶显示屏,用于显示时间和其他功能。

接下来,我们将设计整个电路。

主要的电路包括时钟模块、输入模块、控制模块和显示模块。

时钟模块用于获取当前的时间信息,可以选择使用一个实时时钟芯片或利用微控制器自带的时钟模块。

输入模块包括按钮或旋转编码器等,用于设置闹钟、调整时间等功能。

控制模块用于处理输入信号,并控制微控制器的操作。

显示模块用于将时间信息显示在数码管或液晶显示屏上。

在程序设计方面,我们需要首先进行时钟模块的初始化,然后设置中断,以便在每个时间周期中更新时间信息。

同时,我们还要编写中断服务程序,用于处理输入信号和更新显示。

处理输入信号时,可以根据不同的按键或旋转编码器的操作,在程序中进行相应的逻辑判断和操作。

更新显示时,可以根据当前的时间信息,将其转换成数码管或液晶显示屏能够显示的格式,并将其输出到显示模块上。

除了基本的时间显示功能外,我们还可以添加其他的附加功能,如闹钟、定时器等。

设置闹钟时,用户可以通过输入模块设置闹钟的时间,并在设定的时间到来时触发一个蜂鸣器或发出声音提示。

设置定时器时,用户可以通过输入模块设置定时器的定时时间,并在设定的时间到来时触发一个特定的操作。

此外,我们还可以添加一些额外的功能,如温湿度显示、天气预报等。

通过添加相应的传感器模块,可以实时获取温湿度信息,并将其显示在电子时钟的屏幕上。

同时,也可以通过联网方式获取天气预报信息,并进行显示。

综上所述,微机原理课程设计中的电子时钟设计涵盖了电路设计、程序设计和实物搭建等多个方面。

微机原理实验报告电子钟

微机原理实验报告电子钟

微机原理与接口技术课程设计实验报告——电子时钟(附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)二、设计要求和目的 (1)2.1、设计要求 (1)2.2、设计目的 (2)三、设计的具体实现 (3)3.1、系统设计 (3)3.2、单元电路的设计 (4)3.2.1 8255的介绍及初始化 (4)3.2.2 8259的介绍及初始化 (5)3.2.3 8253的介绍及初始化 (7)四、程序设计流程图及代码 (9)4.1、主程序流程图: (9)4.2、电子时钟中断处理程序流程图: (10)4.3、显示模块流程图: (11)4.4、程序代码: (11)五、心得体会及建议 (20)六、附录 (22)七、参考文献 (22)电子钟课程设计报告一、设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。

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

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

二、设计要求和目的2.1、设计要求利用8259A中断控制器、8253定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

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

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

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

3. 利用8253作为定时器。

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

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

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

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

时钟控制系统设计一、设计任务及其要求………………………………………………………二、方案比较及评估论证……………………………………………………三、系统工作原理……………………………………………………………四、硬件原理及其电路图……………………………………………………五、软件思想(含流程图和程序)…………………………………………六、调试记录及结果分析……………………………………………………七、参考资料…………………………………………………………………八、芯片资料…………………………………………………………………九、总结………………………………………………………………………一、设计任务及其要求(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做中断控制器产生中断。

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

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

微机原理课程设计电子时钟的设计微机原理课程是电子信息专业中非常实用和重要的一门课,它主要是培养学生对微型计算机硬件和软件的基本理论和应用技能进行掌握。

在这门课程中,学生不仅要学习如何使用微机进行编程和设计,还要学习如何进行电子产品的原理设计和制作。

其中,电子时钟的设计是一个非常典型的案例。

本文将重点介绍如何通过微机原理课程的学习,设计出一款高质量的电子时钟。

首先,电子时钟的设计需要具备一定的电子基础知识,包括原理图设计、元件选择、电路分析等方面。

在微机原理课程中,学生需要学习电子学基础知识和数字电路基础知识,掌握数字集成电路(IC)的使用方法和设计技巧。

在此基础上,学生需要深入掌握时钟电路的原理和基本组成部分,如定时器、计数器、显示器、驱动等。

其次,电子时钟的设计需要用到一些专业的软件工具,例如电路仿真软件、PCB设计软件等。

在微机原理课程中,学生需要掌握使用这些软件工具进行电路设计和分析,在软件实验中,学生可以通过仿真节约实际元件和时间成本,从而提高设计效率。

同时,对于PCB布局设计也是非常重要的一步,PCB布局的合理性能够从根本上解决干扰、热、机械制造等问题,提高电路的工作可靠性和稳定性。

最后,电子时钟的设计需要充分考虑实际的应用场景,例如设计适用于家庭、办公室或工业控制等场合的时钟。

在微机原理课程中,学生需要掌握设计电子时钟的基本模式和技巧,同时对于市场上其他电子产品的参考及实际应用方面进行掌握和学习,根据用户的使用需求设计出贴合需求的产品。

同时,还需要注意时钟的包装和美观性,为产品添加更多的设计感和人气。

总之,通过微机原理课程的学习,学生可以掌握电子时钟的设计理论和实践技巧,随着知识的广泛掌握,能够实现电子时钟的定制和精细化生产。

并且,学生还可以应用这些知识和技能,并为电子产业的快速发展做出贡献,推动电子产业的创新和进步。

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

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

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

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

该系统的要求利用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。

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

[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定时单位,设计秒表定时程序。

有关系统定时方法:PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK信号,频率:f=。

定时器0输出方波的频率:fout=65536=。

输出方波的周期Tout=1/=。

8253A每隔55ms引起一次中断,作为定时信号。

可用55945ms 作基本计时单位。

用BIOS调用INT 1AH可以取得该定时单位。

例:1秒= (计时单位)8253的引脚图及硬件连接图如下图示:!8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。

每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:(1) 数据总线缓冲器(8位、三态、双向);(2) 读/写控制逻辑;CS:片选信号,低电平有效;RD:读信号,低电平有效;WR:写信号,低电平有效A1A0:端口选择信号(3) 三个通道( 0 ~ 2),由A0,A1控制选择;(4) 一个控制寄存器;《8253引脚图》 硬件连接图当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。

计数器(0 ~ 2)即三个计数器/定时器通道。

每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。

作定时器用:其CLK 端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK 端上的脉冲计数,脉冲宽度可以不等。

采用减一计数器,为0时,从OUT 端上输出一个脉冲定时时间 = 时钟脉冲周期X 预置的计数初值 由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。

表8-4 控制功能表,2、用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。

CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。

用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。

8255 的内部结构及引脚如图所示:图内部结构及引脚】)8255 工作方式控制字和C口按位置位/ 复位控制字格式如图3-7-2 所示:图置位/ 复位控制字格式&3. 锁存器27374LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面介绍一下他的管脚图功能表等资料。

(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;;(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.74ls273管脚功能:1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

4. 数据收发器245当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)*DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。

:5. 译码器74ls15474ls154为4—16线制译码器其引脚图如下图所示6. 7段数码管数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

静态显示驱动)静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。

5.程序流程图!…】实现特定功能{结束暂停键或清零键按下赋子程序初始化开始6.程序代码a1 equ 0000hb1 equ 0002hc1 equ 0004h,ctr1 equ 0006h ;8255各端口地址a2 equ 0200h ;8253计数器0端口地址ctr2 equ 0206h ;8253控制端口地址a3 equ 0100hdata segment; keynum db 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77Htab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71Hbuf db 0,0,0,0)buf1 db 0,0,0,0,0,0,0,0buf2 db 0,0;前为第一开关次数buf3 db 80 dup()data endscode segment 'code'assume ds:data,cs:codestart: mov ax,data$mov ds,ax;设中断入口地址设置mov ax,0mov es,axmov di,08mov ax,offset intr_keycldstosw~mov ax,seg intr_keystoswmov ax,datamov es,ax;8255写入控制字mov al,b ;A口B口输出显示,C口高四位低四位输入mov dx,ctr1;out dx,aln3: call jishujmp n3n2: lea si,buf2mov bh,00hmov bl,1h[si]lea di,buf3add di,bx|add bl,8mov 1h[si],bllea si,buf1cldmov cx,8rep movsbn4: call disjmp n4~n5: lea si,buf2mov bh,00hmov bl,1h[si]cmp bl,0jz n1lea di,buf1sub bl,8mov 1h[si],bl—lea si,buf3add si,bxcldmov cx,8rep movsbn6: call disjmp n6n1: call qinlin。

jmp n1;jmp startjishu proc near ;计数子程序 lea si,bufmov bl,[si]cmp bl,100jnz s6{s1: mov bl,0mov [si],blmov ah,1h[si]cmp ah,59jz s2inc ahmov 1h[si],ahjmp s6|s2: mov ah,0mov 1h[si],ahmov ah,2h[si]inc ahmov 2h[si],ahjmp s6`s6:call chumov cx,3s5:call disloop s5call delay1sinc byte ptr[si]retjishu endp%chu proc ;rukou al ;数处理子程序 push sipush bxmov bl,4lea di,buf1lea si,bufnext:lodsb。

mov ah,00mov cl,10div clxchg ah,alstosbmov al,ahstosbdec bl…jnz nextpop bxpop siretchu endpdis proc near ;显示buf1中的值push bx、push cxlea bx,tablea di,buf1mov cx,8mov ah,7Fhloop1: mov al,[di]xlat ;换码mov dx,a1:out dx,almov dx,b1mov al,ahout dx,almov bh,1call delaycall qplea bx,tab·ror ah,1inc diloop loop1pop cxpop bxretdis endp|delay1s proc near ;8253延时子程序push dxpush axmov dx,ctr2 ;8253 控制mov al,00110000bout dx,al ;8253计数器0控制字方式0 out端作为中断请求信号 mov dx,a2mov al,01h%out dx,almov al,00hout dx,almov dx,a3M1: in al,dxtest al,01hjz M1pop ax!pop dxretdelay1s endpqp proc near ;清频子程序mov al,0ffhmov dx,b1out dx,al#retqp endpdelay PROC NEAR ;内部延时之程序 PUSH bxPUSH CXwait0: MOV CX,06hwait1: LOOP wait1《DEC bhJNZ wait0POP CXPOP bxRETdelay ENDPintr_key proc near ;中断服务子程序:call keytest al,2hjz n1test al,4hjz n5lea di,buf2mov bh,[di]inc bh%mov [di],bhtest bh,1hjnz n2jmp n3iretintr_key endpqinlin proc ;键盘清零子程序(mov ax,0lea di,bufmov cx,14cldrep stosbcall disqinlin endpkey proc ;读取键盘程序 mov dx,c1in al,dxretkey endpcode endsend start7.程序及硬件系统调试情况按下暂停键实现暂停功能继续计数后按下清零键实现清零功能8.设计心得经过这次课程设计,我觉得我有了很大的收获,:1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。

相关文档
最新文档