微机原理课程设计_第1页
微机原理课程设计_第2页
微机原理课程设计_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、jiangsu university of science and technology微机原理课程设计设计报告姓名:张经纬学号:1345533124班级:13电气1班专业:电气工程及其自动化学院:电气与工程信息学院2016年3月目录一、设计任务描述 31.1设计题目 31.2设计目的 31.3设计要求 3二、设计方案描述 32.1设计原理 32.2设计芯片结构 4三、具体模块设计 53.1概述 53.2小键盘模块 53.3显示模块 53.4定时模块 63.5中断处理模块 63.6硬件接线图 63.7 主程序流程图 6四、可控电子时钟源程序 9五、心得体会 14可调电子时钟一、设计任务描述1.

2、1设计题目可调电子钟设计1.2设计目的微型计算机原理及应用是一门实践性较强的课程,课堂上的理论学习 不足以让学生熟练掌握这门课程。所以让学生在学完该课程之后,进行一次课 程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用 系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。具体如 下:1、熟悉中断工作原理,定时计数原理,并行通信原理工作原理。2、掌握8259芯片,8254芯片,8255芯片功能,结构,编程。3、掌握七段数码管以及小键盘的使用。4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。1.3设计要求1、设计一电子时钟,能计时、在数码管上显示时间并用

3、键盘调节时间。2、根据所用的接口电路芯片设计出完整的接口电路 ,并在实验系统上完成 电路的连接和调试通过.3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程 序注释。4、前期完成的实验有:8259A中断控制器实验,8254定时计数器实验, 8255并行接口实验。二、设计方案描述2.1设计原理首先利用程序硬性规定分、秒的起始时间为零。利用实验台上提供的定时 器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟, 由8254中断定时,小键盘控制电子时钟的初始值的预置。电子时钟的显示格式 HH MM SS由左到右分别为时、分、秒,最大记时 24: 00: 00

4、超过这个时间 时分秒都清零从00: 00: 01重新开始。基本工作原理:每毫秒对毫秒寄存器的内容加一,满1000毫秒对秒位进一,每秒对秒位寄存器的内容加一,满 60秒对分位进一,以此类推。依次完成对秒、 分、小时寄存器的递增,六个数码管动态显示时、分、秒的当前值。2.2设计芯片结构1、 8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间 的数据传送总是并行的,即可 以同时传递8位、16位、32位等。用+5V单电源供电,能在以下三种方式下 工作:方式0-基本输入/

5、出方式、方式1-选通输入/出方式、方式2-双向选 通工作方式。2、中断控制器8259是In tel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级 排队、辨别中断源以及提供中断矢量的电路集于一片中,因 此无需附加任何电路,只需对 8259A进行编程,就可以管理8级中断,并选 择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片 8259A的级连,能构成多达64级的矢量 中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确 定是否响应 和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。3、8254是In tel公司

6、生产的可编程间隔定时器。是 8253的改进型,比 8253具有更优良的性能。8254具有以下基本功能:有3个独立的16位计数器;每个计数器可按二进制或十进制(BCD计数;每个计数器可编程工作 于6种不同工作方式;每个计数器允许的最高计数频率为10MHz 8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状 态寄存器的内容。计数脉冲可以是有规律的时钟信号,也可以是随机信号。三、具体模块设计3.1概述本系统设计的电子钟以8086微处理器作为CPU用8254做定时计数器产 生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是

7、定时,接入8254的CLK信号为周期性 时钟信号。8254采用计数器0,工作于方式2。程序由以下模块组成:系统共 有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键 盘模块。系统框图如下:图一系统框图3.2小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小 键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得 键值并送回主控模块。在本次设计中考虑抖动的影响因素,执行一个约10ms的延时程序后再扫描键盘,若两次都有键按下,从而消除了抖动影响。3.3显示模块显示模块是将显示缓冲区的数值送到 LED显示的功能模块,显示缓冲区是由六个字节

8、构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。3.4定时模块定时模块是为8259提供中断请求信号的。由一片8254实现,选用定时器 0#,工作在方式3,由4时钟应该1秒走动一次,所以输出值应为1S,其输出 信号可作为8259的中断请求信号。3.5中断处理模块中断模块实现动态显示的,硬件为一片 8259,由于中断请求信号为每秒一 次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时 间增加一秒,从而达到动态显示的效果。3.6硬件接线图芯片8254系统总线芯片8255 LED数码管及键盘图二实验接线图3.7主

9、程序流程图主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8254、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过 8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有 则返回继续执行。四、可控电子时钟源程序MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_MODE EQU 0606HA8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACKDW 32 DUP

10、SSTACK ENDSDATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHMSEC DW 0SEC DB 0MIN DB 0HOUR DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:SSTACKSTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7MOV SI, 003CHMOV SI, AXMOV AX, CSMOV SI, 003EHMOV SI, AXCLIPOP DSMOV DX,MY8255_MODEM

11、OV AL,81HOUT DX,ALMOV DX,CON8254MOV AL,36HOUT DX,ALMOV DX,A8254MOV AL,0E8HOUT DX,ALMOV AL,03H;取中断入口地址;中断矢量地址;填IRQ7的偏移矢量,确定地址;填IRQ7的段地址矢量;初始化主片8255;初始化主片8254;写入计数器初值OUT DX,AL;时间寄存空间首地址;时间寄存空间清零MOV AL, 11HOUT 20H, ALMOV AL, 08HOUT 21H, ALMOV AL, 04HOUT 21H, ALMOV AL, 01HOUT 21H, ALMOV AL, 6FHOUT 21H,

12、ALSTIMOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV SI,ALMOV SI+1,ALMOV SI+2,ALMOV SI+3,ALMOV SI+4,ALMOV SI+5,ALMOV DI,3005H;初始化主片8259;ICW1;ICW2;ICW3;ICW4;OCW1BEGIN: CALL DISCMP HOUR,24H JB T0MOV HOUR,00H T0:CALL CCSCANJNZ GETKEY1CALL CLEARJMP BEGIN;数码管显示刷新;满24h清零;按键扫描;转有键按下;8255B 口输出清零;主程序重复CCSCAN:M

13、OV AL,00HMOV DX,MY8255_A OUT DX,ALMOV DX,MY8255_C IN AL,DXAND AL,0FHXOR AL,0FHRET;按键扫描程序GETKEY1:CALL DISCALL DALLYCALLCCSCAN;键盘防抖动程序JNZ GETKEY2RETGETKEY2:M0V AX,OOOOHMOV DX,MY8255_AOUT DX,AL;将 A 口置 0MOV DX,MY8255 CIN AL,DXL1: TEST AL,01H JNZ L2MOV DI,3002H JMP KCODEL2: TEST AL,02H JNZ L3MOV DI,3003H

14、 JMP KCODEL3: TEST AL,04H JNZ L4MOV DI,3004H JMP KCODEL4: TEST AL,08H JNZ BEGIN MOV DI,3005H JMP KCODE RETKCODE: CALL PUTBUFPUSH AXMOV SI,3000H MOV BL,SI+3 AND BL,0FH ROL BL,4MOV AL,SI+2 AND AL,0FH OR AL,BLMOV MIN,AL MOV BL,SI+5 AND BL,0FH ROL BL,4MOV AL,SI+4 AND AL,0FH OR AL,BLMOV HOUR,ALKON: CALL

15、DIS;读C 口,用于判断哪列按键闭合;是否为第1列;不是则继续判断;是否为第2列;不是则继续判断;是否为第3列;不是则继续判断;是否为第4列;不是则重新开始;按时间寄存空间地址保存按键值;根据按键修改分钟变量值根据按键修改小时变量值;数码管显示刷新CALL CLEARCALL CCSCAN JNZ KONPOP AX JMP BEGIN PUTBUF:MOV SI,DIMOV AL,SI INC ALMOV SI,AL MOV DI,3005H RETMIR7: STIPUSH AXPUSH SIMOV AX,MSEC INC AXMOV MSEC,AX CMP AX,1000 JB MRE

16、TMOV AX,0MOV MSEC,AXMOV AL,SEC ADD AL,1 DAAMOV SEC,AL CMP AL,60H JB MTODIS MOV AL,0 MOV SEC,AL MOV AL,MIN ADD AL,1DAAMOV MIN,AL CMP AL,60H JB MTODIS MOV AL,0 MOV MIN,ALMOV AL,HOUR ADD AL,1DAAMOV HOUR,AL MTODIS: MOV AL,SECMOV AH,AL;8255B 口输出清零;扫描按键,判断按键是否弹起;未弹起则继续循环等待弹起;按键对应时间寄存空间的值加一程序;中断程序;毫秒加一;若毫秒

17、小于1000则中断结束;否则毫秒清零,秒加一;数据压缩成BCD码;若秒小于60则更改时间寄存器的值;否则秒清零,分加一;数据压缩成BCD码;若分小于60则更改时间寄存空间的值;否则分清零,时加一;数据压缩成BCD码;更改时间寄存空间的值程序MOV SI,3000HAND AL,0FHMOV SI,ALROR AH,4AND AH,0FHMOV SI+1,AHMOV AL,MINMOV AH,ALAND AL,0FHMOV SI+2,ALROR AH,4AND AH,0FHMOV SI+3,AHMOV AL,HOURMOV AH,ALAND AL,0FHMOV SI+4,ALROR AH,4AN

18、D AH,0FH;中断结束命令MOV SI+5,AHMRET: MOV AL, 20H;8255B 口输出清零程序OUT 20H, AL POP SI POP AX IRETCLEAR: MOV DX,MY8255_BMOV AX,00HOUT DX,AX RETDIS: PUSH AX;时间显示程序MOV SI,3000HMOV DL,0DFHMOV AL,DLAGAIN: PUSH DXMOV DX,MY8255_AOUT DX,ALMOV AL,SIMOV BX,OFFSET DTABLEAND AX,00FFHADD BX,AXMOV AL,BXMOV DX,MY8255_BOUT DX,AL CALL DALLY INC SI POP DXMOV AL,DL TEST AL,01H JZ OUT1ROR AL,1 MOV DL,AL JMP AGAINOUT1: POP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论