logo资料库

8255,8253,8259做秒表.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
键盘扫描程序流程图:
接口与通信 报告 学 号: 姓 名: 提交日期: 2010-12-9 成 绩: 东北大学秦皇岛分校
一、设计目的 1. 通过本次课程设计要掌握此三种芯片使用的方法,灵活运用课本知识,加深 所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了 解,学会利用课本知识联系 实际应用及编程。同时并了解综合问题的程序设计 掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后 搞设计时逻辑更加清晰。 2. 熟悉掌握 8086/88 指令系统,以及理解掌握定时/计数器和中断的使用方法。 3. 掌握微机原理实验系统的使用,掌握控制数码管显示的程序。 4. 掌握一定的汇编语言知识,培养自己的动手操作能力。 二、设计要求 能够设定当前的日期及时间,能够显示当前的日期及时间,时间显示到秒。键盘 识别定时器、中断、数码显示,汇编语言编程。利用 8253 可编程定时/计数器、 8259 中断控制器、8255 可编程并行接口芯片和七段数码管设计一个电子钟的电 路,并编制一段程序使的该电子钟能正常运行。并且能用手动控制输入的方法修 改电子时钟的时间 三、设计环境(用到的仪器和设备,例如各种芯片) 8253 定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送 IRQ2。8255 并口:用做接口芯片,和小键盘相连。8259 中断控制器:用于产生中断。 LED:六个 LED 用于显示时、分、秒值。 四、设计思想 本系统设计的电子时钟以 8088 微处理器作为 CPU,用 8253 做定时计数器产生时 钟频率,8255 做可编程并行接口显示时钟和键盘电路,8259 做中断控制器产生 中断。在此系统中,8253 可编程定时器/计数器,其定时与计数功能可由程序灵 活地设定,设定后与 CPU 并行工作,不占用 CPU 的时间。通道 2 工作在 3 方式下, 提供计算一秒的中断请求信号。此信号接 8259 的 IR2,当中断到 50 次数后,CPU 即处理,使液晶显示器上的时间发生变化。其中 8259 只需初始化 ICW1,其功能 是向 8259 表明 IRx 输入是电瓶触发方式还是上升沿触发方式,是单片 8259 还是 多片 8259。8259 接收到信号后,产生中断信号送 CPU 处理。
具体方法 1.先在数据段开辟 6 个存储单元,用来存放时、分、秒的信息。这 6 个存储单元 分别对应时、分、秒的十位和个位。调用子程序的清屏部分。 2. 在主程序中分别对 8253、8259、8255 进行初始化编程。8253 的计数器 0 工作 在方式 3 下,CLK0 接 19.2K 的脉冲频率,经过 19200 次分频,在 OUT0 端口输 出频率为 1Hz 的方波,产生秒脉冲。 3. 8255 的 A 口工作在方式 0 输入,B 口工作在方式 0 输出,为基本的输入输出 方式。这部分为手动修改时间部分。 4. 在中断服务程序中对中断次数进行统计。当产生 1 次中断时,将秒的个位加 1, 判断是否到 10,如到了则十位加 1,个位清零;再判断十位是否到 6,如到了则 十位清零,分的个位加 1,同理对分、时做相应的处理。该电子钟为 12 进制的。 5. 八段数码管显示程序做为主程序。调用延时程序并不断将时、分、秒对应存 储单元的内容分别取出,送到相应的数码管显示出来。 8259 芯片: 8259 引脚图如下: 8259 一共有 28 条引脚,其中 D7~D0——八条双向数据线; WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号; CS(低电平有效)——片选输入信号; A0——地址信号; INT——中断请求信号; INTA(低电平有效)——中断响应信号; CAS0~CAS2——级联信号,形成一条专用 8259A 总线,以便多片 8259A 的级联; SP/EN——从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器 的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片; IR0~IR7——外部中断请求输入线。要求输入的中断请求信号是由低电平到高电 平的上升沿(并保持高电平到 CPU 响应时为止)或者是高电平。 8259 中断矢量地址与中断信号之间的关系如表所示: 中断序号 0 1 2 3 4 5 6 7 功能调用 20H 24H 28H 2CH 30H 34H 38H 3CH 矢量地址 20H-- 24H-- 28H-- 2CH-- 30H-- 34H-- 38H-- 3CH-- 23H 27H 2BH 2FH 33H 37H 3BH 3FH 说明 时钟 键盘 可用 可用 串行口 可用 可用 可用 8255 芯片: 方式 0—基本输入/输出方式 方式 1—选通输入/输出方式 方式 2—双向选通输入/输出方式
8255 一共有 40 条引脚,其中 D7~D0——与 CPU 侧连接的八条双向数据线; WR(低电平有效)——写输入信号; RD(低电平有效)——读输入信号; CS(低电平有效)——片选输入信号; A0、A1——片内寄存器选择输入信号; PA7~PA0——A 口外设双向数据线; PB7~PB0——B 口外设双向数据线; PC7~PC0——C 口外设双向数据线; RESET——复位输入信号 8255 端口地址 信号线 IOY3 寄存器 A 口 B 口 C 口 控制寄存器 编址 60H 61H 62H 63H 五、设计内容(必须包括一些硬件原理图,汇编程序代码,设计的结 果截屏,设计流程图等图)
开始 8253A 作为中断源产生 20MS 脉冲 设置堆栈 显示提示信息 用 INT21H35H 号功能保存系统中 8259A 原中断向量 用 INT21H35H 号功能设置 0A 中断新的中断向量,指向年,月,日加 1 的中断处理程序 置 8259A 的 IMR 第 2 位为 0,允许 IRQ2 中断 调用键扫描子程序(KEY),键号的 ASCII 码在[CHAR1]单元中 Y Y Y Y 调用 C 键处理子程序 调用 G 键处理子程序 调用 D 键处理子程序 调用 P 键处理子程序 是 C 键码? N 是 G 键码? N 是 D 键码? N 是 P 键码? N 是 E 键码? Y N 用 INT21H35H 号功能恢复原中断向量 开中断 返回 DOS 图一 主程序流程图
键盘扫描程序流程图: 开始 置 8255A 控制字,A 口为输出,B 口为输入 A 口全输出低电平,从 B 口读入数据 Y 列线全为高电平吗 N 保存列值,延时取抖动 置 8255 控制字,A 口为输入,B 口为输出 往 B 口输出保存的列值 N 从A口读入行值 和键表比较 是否找到匹配键 Y 显示输入的字符 置 8255A 控制字,A 口为输出,B 口为输入 A 口全输出低电平,从 B 口读入 N 键释放了吗? Y 返回
汇编程序代码 code segment assume cs:code,ds:code org 100h start: push cs pop ds mov ax,3 int 10h mov ax,0b800h mov es,ax cld Q0:lea dx,Tips ;提示输入时间 mov ah,9 int 21h ;输入当前时、分、秒值 call input_bcd mov HH,al mov ax,0e3ah ;':' int 10h call input_bcd mov MM,al mov ax,0e3ah ;':' int 10h call input_bcd mov dh,al mov ch,HH cmp ch,23H ja Q1 mov cl,MM cmp cl,59H ja Q1 cmp dh,59H jbe Q2 Q1:lea dx,Err mov ah,9 int 21h jmp Q0 Q2:mov ah,3 int 1ah
分享到:
收藏