数码管显示数码符号实验报告(含源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计
必做题目设计报告
题目数码管显示数码符号
学院
专业电气工程及其自动化
成员杜丽佳
指导教师
摘要
根据题目要求,利用8253、8255等硬件和8086 CPU总线接口,以汇编语言为载体,完成利用中断的数据控制输出的设计,实现将以开关的状态表示的二进制数作为输入,经过数据处理后,最终通过数码管加以显示的功能。
本报告主要完成以下工作:
1)简要介绍本设计的前言和要求;
2)详细介绍本设计的硬件组成
3)详细介绍汇编程序的运行流程;
4)介绍步骤和现象。
关键词:数据控制输出数码管显示中断
第一章绪论
1.1 前言
微型计算机原理及接口技术是普通高等教育重要的专业课,是电气类专业的平台课程,具有很强的实践性。在微机实践的过程中开展必做题,使同学们巩固课本上学到的知识,掌握硬件电路走线的基本方法和规范,软件设计的基本方法和规范,提升同学们的团队精神和动手能力,为把学生培养成为卓越工程师打下良好基础。
《数码管显示数码符号》即为此次微机实践必做题,借助微型计算机实验开发板,通过汇编语言完成用数码管显示通过8255芯片输入的数据的功能。
1.2 题目要求
图1 微机系统接口电路
七段码显示器采用8255A作为接口,8255A的A端口接八个开关,8255A 的B端口控制数码显示器的阳极(七段码显示器为共阴极接法),利用74LS138作为地址译码器,利用8253定时中断控制。微机系统接口电路如图1所示。
8253的CNT0和CNT1用来产生方波信号,OUT1连接到8259A中断控制器的IRO2端,通过8259A向CPU请求中断,每一秒中断一次。在中断服务程序中从A端口输入数据到AL中,如果AL的内容是0EH或0FH,则在数码管上显示“H”(七段码76H),否则将AL的内容加2后输出到数码管上。(已知8259A中断屏蔽寄存器地址为21H,共阴极显示器的0`F的七段码分别为3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、67H、77H、7CH、39H、2EH、79H、71H、73H。)
第二章硬件结构
本题目硬件结构只需要微型计算机试验系统。微型计算机实验开发板采用时钟信号、8254、 8255、地址和总线接口、开关以及数码管。其中开关作为人为控制端,数码管作为显示端。
本题目使用8个开关,作为输入端。用于人为输入二进制数据。开关处于闭合状态,表示输入1;处于断开状态,表示输入0。
数码管为共阴极显示,作为输出端。用于显示与输入相对应的数码符号。
8255是通用的可编程并行接口芯片。为40引脚双列直插芯片。它有三个相互独立的端口,分称为A端口,B端口,C端口,每个端口有8根数据线,通过数据线可以与I/O设备交换数据。本题目中A端口作为输入端,PA0~PA7分别与8个开关相连;B端口作为输出端,PB0~PB7分别与数码管的a、b、c、d、e、f、g和dp端相连。片选连接地址译码器Y1(28BH~28FH)。
8254(实验板上没有8253芯片)是可编程的计数定时器电路。每个8254 中有三个独立的16 位计数器通道,每个计数器都有可由初始化编程决定其功能及工作方式。每个计数器都是16 位的减1计数器,分别称为CNT0、CNT1、CNT2。每个通道都有一个CLK外脉冲输入端、OUT 计数器回零时间到信号输出端和GATE 门控输入端。这里用CNT0和CNT1构成1S计时,用于定时中断。各计数器脉冲如图(2-1)所示。因此将CLOCK0与1MHZ(实验板上只有1MHZ和2MHZ两种)的时钟脉冲相连,OUT0与CLOCK1相连,OUT1与总线接口的IRQ相连(如图2-2所示),GATE0和GATE1都与实验板上的+5V电源相连。片选连接地址译码器Y0(280~287H)。
(a)
(b)
图2-1 (a)(b)分别为计数器CNT0、CNT1
图2-2 8086CPU总线接口
第三章软件结构
汇编语言编写的程序由两部分构成:主程序和中断服务子程序。
3.1 主程序详细流程
主程序主要功能:初始化8253和8255,设置1秒中断。
首先,初始化8253,CNT0
和CNT1构成1秒定时,分别写
入CNT0和CNT1的控制字和计
数初值。其中CNT0用于定时1
毫秒,工作于方式三,控制字
为36H;CNT1用于定时1秒,
工作于方式三,控制字为76H。
则计数器输入输出信号如图
2-1(a)和(b)所示。CLOCK0输
入频率为1MHZ的时钟信号,输
出频率为1KHZ的方波,则计数
初值为1000(03E8H);CLOCK2
输入频率为1KHZ的方波,输出
频率为1HZ的方波,则计数初
值为1000(03E8H)。
其次,初始化8255,写入
控制字。A端口作为输入端,B 图3-1 主程序流程图
端口作为输出端,且都工作于方式0,则控制字为028BH。
然后,设置中断,开放IRO2中断。中断响应后,扫描键盘,有按键按下时,
返回DOS系统。
最后,恢复屏蔽字和中断向量。
主程序流程图如图3-1所示。
3.2 中断服务子程序详细流程
INTP中断服务子程序主要功能:控制数据输出。
1秒定时时间到后,外设(OUT2端口)向IRO2发来高电平信号,8259A通过INT向CPU的INTR请求中断,CPU响应中断,开始执行中断服务程序INTP。
首先,从8255A端口读入数据。
其次,将读取的数据按题目要求进行相应处理,调用数据表。
然后,通过8255B端口输出相应的数码字符,并通过数码管显示。
最后,调用EOI中断结束指令。
INTP中断服务子程序流程图如图3-2所示。
图3-2 INTP中断服务子程序流程图