资源描述:
《微机原理与接口技术课设.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微机原理与接口技术课程设计报告电子钟实验姓名:学号:班级:指导老师:2013年1月15一.课程设计题目电子钟实验实验目的掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;掌握实时处理程序的编制和调试方法。实验要求设计一个定时显示装置,用实验仪左侧的六个LED数码管显示时间,时间显示格式为24小时制。分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。0123456789GS用小键盘控制时钟的启停和时钟的设置,键的定义参见右图。键值具体定义如下:G键(启停键)——程序启动后,按下该键时时钟启动,再
2、次按下该键,暂停计时,显示当前时间。S键(设置键)——按下S键后,为时钟设置时、分、秒初始值。实验设备74系列模块;8254模块;8259模块;8255模块。实验提示硬件连线键盘的控制、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。LED显示模块采用8255控制时:8255片选CS_1、2、3、4连接
3、到实验仪中部的地址输出端CS_1、2、3、4时间的精确定时:用8254定时器0产生25ms的中断信号;158254的片选CS连地址输出端320H,A0,A1分别连地址总线A2,A3,GATE0连+5V,CLK0连74LS393分频输出的47K输出端,OUT0连接到8259的IRQ0整点报时控制:由8255模块控制;PC0直接与蜂鸣器相连中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V,8259的IRQ0连接到8
4、254的OUT0。(2)软件编程要稳定的看到数码管上显示的时分秒值,必须对数码管动态刷新。本实验要求用中断方式每隔25ms刷新一次数码管的显示结果。8254的0号计数器信号的周期设为25ms,及时和刷新数码管的显示。程序中设置一个启停标志stop,当stop值为0时启动时钟,每中断40次更新显示时间;stop值为0FFH时,暂停时钟。当时间的分秒值为59分55秒时,用8255控制8254的GATE1,设为1,启动定时器1工作,报时。时间到整点后,GATE1清0.二.课程设计流程主程序初始化各段寄存器及相关变量初始化8255、8
5、254、8259芯片设置中断向量,开放8259中断屏蔽开放处理器中断15中断服务程序保护现场NY判断时间是否不小于59分55秒报时N扫描键盘YG键?调用启停子程序YS键?调用设置时间子程序COUNT加1YCOUNT=40?修改时间,调用ADDONE子程序COUNT清0显示时间,调用显示时间子程序N结束中断(发EOI命令)恢复现场中断返回三.源程序.486pDATASEGMENTAT0USE16ORG1000HHOURDW?15MINDW?SECDW?SLLDB?COUNTDB?DATAENDSCODESEGMENTUSE16A
6、SSUMECS:CODE,DS:DATAORG1500HBEG:JMPSTARTTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H;0~F的共阴极七段译码表00H表示不显示任何东西;若为8255控制数码管则段码值对应为;;0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,00HKEYCODDB0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H
7、;行列编码值KEYVALDB0,1,2,3,4,5,6,7,8,9,0AH,0BH;所有键的键面值PORT1EQU340H;数码管段选端口PORT2EQU360H;数码管位选端口,键盘矩阵的行列端口START:MOVEAX,60000000HMOVCR0,EAXMOVAX,DATAMOVDS,AXMOVHOUR,0203H;小时分钟以及秒的初始化MOVMIN,0509HMOVSEC,0502HLEABX,TABMOVCOUNT,0;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲moveax,80808080h;控制
8、字movdx,20ch;后面的是4个8255的控制端口20c-20f(这个地址由实验台决定)outdx,eax;初始化8255,A、B、C口均为方式0输出MOVDX,20BHMOVAL,0FFHOUTDX,AL;8254初始化,用于产生周期为25ms的中断MOVAL,0011