微机原理与接口技术课程设计报告题目名称:作息时间控制系统学生姓名:学号:专业年级:指导教师:时间:目录目录 (1)实验要求及内容 (2)1、方案设计 (2)1.1 总体方案设计 (2)1.2 硬件方案设计 (3)1.3 硬件方案总电路图 (3)2、各部分设计与分析 (4)2.1 处理器8086模块电路结构图 (4)2.2 数码显示模块 (4)2.3 按键和闹铃 (5)3、程序设计 (6)3.1 主程序设计流程图 (6)3.2 键盘扫描设计流程图 (6)3.3 计数器流程框图 (7)4 心得体会 (8)5、参考文献 (8)附录源程序 (8)作息时间控制系统实验要求及内容:1、设计方案1、1 总体设计方案本设采用8086为CPU,和8255可编程I/O口扩展芯片以及74LS138译码器和两个74HC373锁存器,用8255分别连接按键(复位)、数码显示模块、蜂鸣器(到预定时间响起)。
首先用8255的PA口和PB口控制数码显示模块,用8255的PC0控制开关,PC7控制蜂鸣器。
8086分别与译码器和锁存器相连为从而控制8255工作。
8255做可编程并行接口显示时钟和键盘电路,接LED显示小时、分钟、秒(各2位)和扩展调整键盘。
系统一运行就从0开始计时,并在数码管上显示当前值。
基本工作原理:每1秒对寄存器的内容减一,当加60次时,分加一,秒置零;当分加60次时,时加一,分置零;6个数码管动态显示时、分、秒的当前值。
1、2 硬件设计方案本设计以8086为核心控制模块、通过译码器和锁存器控制8255工作,从而控制显示部分、按键部分以及闹铃部分。
硬件总框图如下所示。
图1-1. 硬件总框图1.3 硬件方案总电路图图1-2总电路图2、各模部分设计与分析2、1 处理器8086模块电路结构图图2-1处理器8086模块电路2、2 数码显示模块图2-2 数码显示模块设计中采用六位共阴极数码管,共阴极是指其公共端接负极,通过8255的PA口控制其位选,以达到动态显示的效果,再通过PB口,控制其段选以显示相应的数值。
2、3 按键和闹铃按键用于控制数码显示模块、按键有复位的功能。
通过扫描按键是否按下,来使其显示模块复位。
闹铃具有到预置时间响铃的功能(本设计的与之时间位1分钟)。
图1-5按键和闹铃电路本设计使用的按键与8255的PC0相连,闹钟与PC7相连。
3、程序设计3、1 主程序设计流程图N YY图3-1主程序设计流程图3.2键盘扫描程序流程图3.3计数器流程框图NYNYNY图3-3计数器流程框图4、心得体会在这次的课程设计中我学到了许多关于8086和8255的知识,我对它的了解从一知半解到更加深层次的了解,了解它的结构,了解它的功能……。
同时,在本次实验中我也遇到了许许多多各种各样的问题,通过查找书籍和上网查找资料,把问题一个一个的排除了。
实验的过程是一个快乐的过程,尤其是把问题解决之后,那种快乐的感觉不如自主的就产生了,在今后我还会加强对实验这方面能力的提升,从而享受快乐的感觉。
5、参考文献【1】戴梅萼、史嘉权等编著《微型计算机技术及应用》第四版·清华大学出版社出版·2008.2【2】沈美明、温冬婵等编著《IBM-PC汇编语言程序设计》第二版·清华大学出版社出版·2007.附录:源程序DA TA SEGMENTCONT DW 0HSHI DB 23FEN DB 59MIAO DB 56LED D B 2,3,5,7,4,5SEGTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDA TA ENDSCODE SEGMENT ;ASSUME DS:DA TA,CS:CODEIOA EQU 8000H; 1000,0000,0000,0000IOB EQU 8002H; 1000,0000,0000,0010IOC EQU 8004H; 1000,0000,0000,0100IOCON EQU 8006H; 1000,0000,0000,0110START:MOV AL,81H ;1000,0001BMOV DX,IOCONOUT DX,ALNOPREST:MOV BYTE PTR[SHI],0MOV BYTE PTR[FEN],0MOV BYTE PTR[MIAO],0START1:MOV DX,IOCIN AL,DXCMP AL,0EHJZ RESTCALL JISHICALL FENJIECALL DISPCMP SHI,0JNZ LED1CMP FEN,01JNZ LED1MOV AL,80HMOV DX,IOCOUT DX,ALJMP START1LED1:MOV AL,00HMOV DX,IOCOUT DX,ALJMP START1;********************************** JISHI:CMP CONT,60JZ NEXTINC CONTJMP RETUNNEXT: MOV CONT,0CMP MIAO,59JZ NEXT1INC MIAOJMP RETUNNEXT1: MOV MIAO,0CMP FEN,59JZ NEXT2INC FENJMP RETUNNEXT2: MOV FEN,0CMP SHI,23JZ NEXT3INC SHIJMP RETUNNEXT3: MOV SHI,0RETUN: RET;********************************** FENJIE:MOV AX,0MOV AL,SHIMOV CL,10MOV LED,ALMOV LED+1,AHMOV AX,0MOV AL,FENMOV CL,10DIV CLMOV LED+2,ALMOV LED+3,AHMOV AX,0MOV AL,MIAOMOV CL,10DIV CLMOV LED+4,ALMOV LED+5,AHRET;**********************************DISP:;************SHI******************* MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+0XLATMOV DX,IOAOUT DX,ALMOV AL,11011111BMOV DX,IOBOUT DX,ALCALL YS;************SHI******************* MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+1MOV DX,IOAOUT DX,ALMOV AL,11101111BMOV DX,IOBOUT DX,ALCALL YS;################################# ;************FEN******************* MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+2XLATMOV DX,IOCOUT DX,ALMOV AL,11110111BMOV DX,IOBOUT DX,ALCALL YS;************FEN*************** MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+3XLATMOV DX,IOAOUT DX,ALMOV AL,11111011BMOV DX,IOBOUT DX,ALCALL YS;*********FEN**************;***********************************MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+4XLATMOV DX,IOAOUT DX,ALMOV AL,11111101BMOV DX,IOBOUT DX,ALCALL YS;************MIAO*************** MOV AL,11111111BMOV DX,IOBOUT DX,ALLEA BX,SEGTABMOV AL,LED+5XLATMOV DX,IOAOUT DX,ALMOV AL,11111110BMOV DX,IOBOUT DX,ALCALL YSRET;*********MIAO**************;********************************** YS: MOV CX,500A1: NOPLOOP A1RET;********************************** CODE ENDSEND START。