微机原理课程设计——可调电子时钟(12页).doc

上传人:1595****071 文档编号:36372213 上传时间:2022-08-26 格式:DOC 页数:12 大小:193.50KB
返回 下载 相关 举报
微机原理课程设计——可调电子时钟(12页).doc_第1页
第1页 / 共12页
微机原理课程设计——可调电子时钟(12页).doc_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《微机原理课程设计——可调电子时钟(12页).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计——可调电子时钟(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-微机原理课程设计可调电子时钟-第 12 页微机原理课程设计设计报告姓名: 张经纬学号: 1345533124班级: 13 电气 1 班专业: 电气工程及其自动化学院: 电气与工程信息学院 2016年3月目录一、 设计任务描述3设计题目3设计目的3设计要求3二、设计方案描述3设计原理3设计芯片结构4三、具体模块设计5概述5小键盘模块5显示模块5定时模块6中断处理模块6硬件接线图6主程序流程图6四、可控电子时钟源程序9五、心得体会14可调电子时钟一、 设计任务描述可调电子钟设计微型计算机原理及应用是一门实践性较强的课程,课堂上的理论学习不足以让学生熟练掌握这门课程。所以让学生在学完该课程之后,进

2、行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。具体如下:1、熟悉中断工作原理,定时计数原理,并行通信原理工作原理。2、掌握8259芯片,8254芯片,8255芯片功能,结构,编程。3、掌握七段数码管以及小键盘的使用。4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。1、设计一电子时钟,能计时、在数码管上显示时间并用键盘调节时间。2、根据所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。4

3、、前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。二、设计方案描述首先利用程序硬性规定分、秒的起始时间为零。利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的初始值的预置。电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时24:00:00超过这个时间时分秒都清零从00:00:01重新开始。基本工作原理:每毫秒对毫秒寄存器的内容加一,满1000毫秒对秒位进一,每秒对秒位寄存器的内容加一,满60秒对分位进一,以此类推。依次完成对秒、分、小时寄存器的递增

4、,六个数码管动态显示时、分、秒的当前值。1、8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。2、中断控制器8259是Intel 公司专为控制优先级中断而设计开发的芯片。它将中断源优先级 排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,

5、只需对8259A 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编 程来设定。同时,在不需增加其他电路的情况下,通过多片8259A 的级连,能构成多达64 级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应 和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。3、8254 是Intel 公司生产的可编程间隔定时器。是8253 的改进型,比8253 具有更优良的性能。8254 具有以下基本功能: 有3 个独立的16 位计数器; 每个计数器可按二进制或十进制(BCD)计数; 每个计数器可编程工作于6 种不同工作方式;

6、每个计数器允许的最高计数频率为10MHz; 8254 有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 计数脉冲可以是有规律的时钟信号,也可以是随机信号。三、具体模块设计3.1概述本系统设计的电子钟以8086微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式2。程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。系统框图如下:系统总线

7、模块8255小键盘模块显 示模 块8259中断模块8254计时模块图一 系统框图小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。在本次设计中考虑抖动的影响因素,执行一个约10ms的延时程序后再扫描键盘,若两次都有键按下,从而消除了抖动影响。显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。定时模块定时模块是为8259提供中断

8、请求信号的。由一片8254实现,选用定时器0#,工作在方式3,由4时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。中断处理模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。硬件接线图芯片8254 系统总线 芯片8255 LED数码管及键盘D0 PB0D1 PB1D2 PB2D3 PB3D4 PB4D5 PB5D6 PB6D7 PB7WR PA0RD PA1CS PA2A0 PA3A1 PC0 PC1 PC2 PC3XD0XD1XD2XD

9、3XD4XD5XD6XD7IOW#IOR#IOY3 IOY0XA1XA2ClkMir7+5VABCDEFGHX1X2X3X4Y1Y2Y3Y4D0D1D2D3D4D5D6D7WRRDCSA0A1CLK0OUT0GATE0图二实验接线图主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8254、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有则返回继续执行。开始显示时钟YN是否有键按下?YN再次确认?读取键盘输入数据YN是否为第一列?YN是否为第二列?YN是否为第四列?保存数据,刷新显示保存

10、数据,刷新显示YN是否为第三列?保存数据,刷新显示保存数据,刷新显示开中断,允许可屏蔽中断芯片初始化计数单元清零更改时间寄存器值中断入口YN毫秒是否满1000?毫秒清零,秒加一YN秒是否满60?秒清零,分加一YN分是否满60?分清零,时加一YN时是否满24?全部清零时间写入寄存器刷新显示中断结束并返回四、可控电子时钟源程序MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_MODE EQU 0606H A8254 EQU 06C0H B8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 0

11、6C6HSSTACK SEGMENT STACK DW 32 DUP(?)SSTACK ENDSDATA SEGMENT DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHMSECDW 0 SEC DB 0MINDB 0HOUR DB 0DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSTACKSTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7

12、的偏移矢量,确定地址 MOV AX, CS MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量CLIPOP DS MOV DX,MY8255_MODE ;初始化主片8255 MOV AL,81H OUT DX,ALMOV DX,CON8254 ;初始化主片8254 MOV AL,36H OUT DX,AL MOV DX,A8254 MOV AL,0E8H;写入计数器初值 OUT DX,AL MOV AL,03H OUT DX,AL MOV AL, 11H ;初始化主片8259OUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV A

13、L, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, ALSTI MOV AX,DATA MOV DS,AX MOV SI,3000H;时间寄存空间首地址 MOV AL,00H;时间寄存空间清零 MOV SI,AL MOV SI+1,AL MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL MOV DI,3005HBEGIN: CALL DIS ;数码管显示刷新 CMP HOUR,24H JB T0 ;满24h清零 MOV HOUR,00H T0:CALL

14、CCSCAN ;按键扫描 JNZ GETKEY1 ;转有键按下 CALL CLEAR ;8255B口输出清零 JMP BEGIN ;主程序重复CCSCAN:MOV AL,00H;按键扫描程序 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX AND AL,0FH XOR AL,0FH RET GETKEY1:CALL DIS ;键盘防抖动程序 CALL DALLY CALL CCSCAN JNZ GETKEY2 RET GETKEY2:MOV AX,0000H MOV DX,MY8255_A OUT DX,AL ;将A口置 0 MOV DX,

15、MY8255_C IN AL,DX;读 C口,用于判断哪列按键闭合L1: TEST AL,01H;是否为第 1 列 JNZ L2 ;不是则继续判断 MOV DI,3002H JMP KCODEL2: TEST AL,02H ;是否为第 2 列JNZ L3;不是则继续判断 MOV DI,3003H JMP KCODEL3: TEST AL,04H ;是否为第 3 列 JNZ L4 ;不是则继续判断 MOV DI,3004H JMP KCODEL4: TEST AL,08H ;是否为第 4 列 JNZ BEGIN;不是则重新开始 MOV DI,3005H JMP KCODE RET KCODE:

16、CALL PUTBUF ;按时间寄存空间地址保存按键值 PUSH AX MOV SI,3000H MOV BL,SI+3 AND BL,0FH ROL BL,4 MOV AL,SI+2 AND AL,0FH OR AL,BL MOV MIN,AL;根据按键修改分钟变量值 MOV BL,SI+5 AND BL,0FH ROL BL,4 MOV AL,SI+4 AND AL,0FH OR AL,BL MOV HOUR,AL ;根据按键修改小时变量值 KON: CALL DIS ;数码管显示刷新 CALL CLEAR ;8255B口输出清零 CALL CCSCAN ;扫描按键,判断按键是否弹起 JN

17、Z KON ;未弹起则继续循环等待弹起 POP AX JMP BEGINPUTBUF:MOV SI,DI;按键对应时间寄存空间的值加一程序 MOV AL,SI INC AL MOV SI,AL MOV DI,3005H RETMIR7:STI ;中断程序PUSH AXPUSH SIMOV AX,MSEC INC AX ;毫秒加一MOV MSEC,AX CMP AX,1000 JB MRET ;若毫秒小于1000则中断结束 MOV AX,0;否则毫秒清零,秒加一MOV MSEC,AX MOV AL,SECADD AL,1DAA ;数据压缩成BCD码MOV SEC,ALCMP AL,60HJB M

18、TODIS;若秒小于60则更改时间寄存器的值MOV AL,0;否则秒清零,分加一MOV SEC,ALMOV AL,MINADD AL,1DAA;数据压缩成BCD码MOV MIN,ALCMP AL,60HJB MTODIS;若分小于60则更改时间寄存空间的值MOV AL,0;否则分清零,时加一MOV MIN,ALMOV AL,HOURADD AL,1DAA;数据压缩成BCD码MOV HOUR,ALMTODIS: MOV AL,SEC;更改时间寄存空间的值程序MOV AH,ALMOV SI,3000HAND AL,0FHMOV SI,ALROR AH,4AND AH,0FHMOV SI+1,AHM

19、OV AL,MIN MOV AH,ALAND AL,0FHMOV SI+2,ALROR AH,4AND AH,0FHMOV SI+3,AHMOV AL,HOUR MOV AH,ALAND AL,0FHMOV SI+4,ALROR AH,4AND AH,0FHMOV SI+5,AHMRET:MOV AL, 20H;中断结束命令OUT 20H, ALPOP SIPOP AXIRETCLEAR: MOV DX,MY8255_B;8255B口输出清零程序 MOV AX,00H OUT DX,AX RET DIS: PUSH AX ;时间显示程序MOV SI,3000HMOV DL,0DFH MOV A

20、L,DLAGAIN: PUSH DX MOV DX,MY8255_A OUT DX,AL MOV AL,SI MOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AX MOV AL,BX MOV DX,MY8255_B OUT DX,AL CALL DALLY INC SI POP DX MOV AL,DL TEST AL,01H;判断显示刷新到最后一位 JZ OUT1;若是则结束 ROR AL,1 ;否则显示下一位 MOV DL,AL JMP AGAINOUT1: POP AX;时间显示结束 RET DALLY:PUSH CX;延时程序MOV CX,000FH T1:MOV AX,002FHT2:DEC AX JNZ T2 LOOP T1 POP CX RET CODE ENDS END START五、心得体会在这次课程设计中,是对微型计算机原理及应用的复习。同时在设计中使我的编程水平提高了一大步。这次设计涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大。也使我更加的体会到,在一定程度和科技水平上,硬件和软件是可以实现对等转化的。电子时钟的发展史就很好的诠释了这个过程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁