微机系统与接口技术综合实验报告电子系05级王翠云学号:00482122007年秋季 微机系统与接口技术综合实验报告 实验题目:模拟打字练习 二.摘要 用LED点阵显示器LDM1088AX来随机显示26个英文字母,以按a~ z26个键来模拟打字,如果在某个字母点亮期间按下相应字母键,表示打字 正确并熄灯,记录击中次数。 关键字:打字练习点阵8255A8253A中断 三.目标功能 1.用数字按键选择打字练习的速度(即点阵上字母刷新的速度 2.按<空格>键开始打字练习 3.点阵显示的字母以一定速度(如每1秒或2秒换一个字母)刷新,打字需 在该字母的点亮期间进行才算有效 4.若在某个字母的出现时间内未有打字动作,则该次打字失败,屏幕上显示 超时”; 5.若一次打字错误,屏幕上显示“错误”,并且在该字母未被更新之前还可 以进行第二次、第三次、。。打字动作 6.每次打字正确,屏幕上显示“正确”,微机发出一次短暂的鸣响,并将灯 全部熄灭,分数加1 7.按<ESC>键退出打字过程,显示所得的分数: 8.退出后屏幕上显示继续游戏的提示 四.设计和实施方案 设计方案选择与讨论 (1)本实验通过对8253的设置,使之产生一定频率的波形,将该波形输出到 中断口IRQ。每次进入中断都刷新LED点阵上的字母显示,从而控制打字 练习的速度。通过改变8253的计数初值可以改变速度
微机系统与接口技术综合实验报告 电子系 05 级 王翠云 学号:00548212 2007 年秋季 - 1 - 微机系统与接口技术综合实验报告 一. 实验题目:模拟打字练习 二. 摘要: 用 LED 点阵显示器 LDM-1088AX 来随机显示 26 个英文字母,以按 a~ z 26 个键来模拟打字,如果在某个字母点亮期间按下相应字母键,表示打字 正确并熄灯,记录击中次数。 关键字: 打字练习 点阵 8255A 8253A 中断 三. 目标功能 1.用数字按键选择打字练习的速度(即点阵上字母刷新的速度); 2.按<空格>键开始打字练习; 3.点阵显示的字母以一定速度(如每 1 秒或 2 秒换一个字母)刷新,打字需 在该字母的点亮期间进行才算有效; 4.若在某个字母的出现时间内未有打字动作,则该次打字失败,屏幕上显示 “超时”; 5.若一次打字错误,屏幕上显示“错误”,并且在该字母未被更新之前还可 以进行第二次、第三次、。。。打字动作; 6.每次打字正确,屏幕上显示“正确”,微机发出一次短暂的鸣响,并将灯 全部熄灭,分数加 1; 7.按<ESC>键退出打字过程,显示所得的分数; 8.退出后屏幕上显示继续游戏的提示。 四. 设计和实施方案 1. 设计方案选择与讨论 (1)本实验通过对 8253 的设置,使之产生一定频率的波形,将该波形输出到 中断口 IRQ。每次进入中断都刷新 LED 点阵上的字母显示,从而控制打字 练习的速度。通过改变 8253 的计数初值可以改变速度
微机系统与接口技术综合实验报告电子系05级王翠云学号:00482122007年秋季 2)8253通道1工作于方式3,输入1MHZ的时钟,设置分频系数为1000, 输出1KHZ的方波,此输出作为通道0的输入时钟。通道0工作于方式3 分频系数为用户输入的速度等级×1000。[注:速度等级:1--快速2- 中速3-7曼速] (2将8255的A口接到LED点阵的COL1-8,C口接到LED点阵的ROW1 8,每当进入中断,就把在数据段存好的字母的段码送到A口和C口,显 示相应的字母。 3)每个字母都需要分段循环显示,利用人眼的视觉暂留便可看见点阵上显示 整个字母。 (4)为避免中断服务程序过长,在写中断服务程序时,只需要把中断标志置 即可,其余操作可在主程序中进行。 (5)在字母显示期间,要不断读取按键输入,直到按键正确或进入下一次中断 (即表示该字母的出现时间已经结束),准备出现下一个字母 (6)在字母显示期间,若读入的按键是错误的,则在屏幕上显示“错误”,并 继续显示该字母,等待按键或中断;若未能在字母消失前按下正确的键,则 在屏幕上显示“超时”,并显示下一个字母;若在字母消失前按下正确的键, 则在屏幕上显示“正确”,往A口和C口输出00H,使字母消失,分数加1, 并准备显示下一个字母。 (7)在字母显示期间,若按键输入是<SC>键则结束本次游戏。每次游戏结束 后进入等待按键的状态一一按<ESC>键退出程序,按<空格>键则开始下一次 游戏。 2.程序流程图 (1)主程序流程图
微机系统与接口技术综合实验报告 电子系 05 级 王翠云 学号:00548212 2007 年秋季 - 2 - (2)8253 通道 1 工作于方式 3,输入 1MHZ 的时钟,设置分频系数为 1000, 输出 1KHZ 的方波,此输出作为通道 0 的输入时钟。通道 0 工作于方式 3, 分频系数为 用户输入的速度等级×1000。 [注:速度等级:1---快速 2--- 中速 3----慢速] (2)将 8255 的 A 口接到 LED 点阵的 COL1-8,C 口接到 LED 点阵的 ROW1 -8,每当进入中断,就把在数据段存好的字母的段码送到 A 口和 C 口,显 示相应的字母。 (3)每个字母都需要分段循环显示,利用人眼的视觉暂留便可看见点阵上显示 整个字母。 (4)为避免中断服务程序过长,在写中断服务程序时,只需要把中断标志置 1 即可,其余操作可在主程序中进行。 (5)在字母显示期间,要不断读取按键输入,直到按键正确或进入下一次中断 (即表示该字母的出现时间已经结束),准备出现下一个字母。 (6)在字母显示期间,若读入的按键是错误的,则在屏幕上显示“错误”,并 继续显示该字母,等待按键或中断;若未能在字母消失前按下正确的键,则 在屏幕上显示“超时”,并显示下一个字母;若在字母消失前按下正确的键, 则在屏幕上显示“正确”,往 A 口和 C 口输出 00H,使字母消失,分数加 1, 并准备显示下一个字母。 (7)在字母显示期间,若按键输入是<ESC>键则结束本次游戏。每次游戏结束 后进入等待按键的状态—-按<ESC>键退出程序,按<空格>键则开始下一次 游戏。 2. 程序流程图 (1) 主程序流程图
微机系统与接口技术综合实验报告电子系05级王翠云学号:00482122007年秋季 开始 输入速度等级并 显示,把速度等级 转化为分频系数 初始化8253,通道1 方式3,计数初值 1000,通道0方式3, 计数初值为由速度等 级得到的分频系数 初始化8255,方式0, A口输出,B口输出, C口输出 设置中断向量,开放 RQ7中断,段寄存器 重新赋值 清记分器CL,清中断 标致BH,SI指向随 机字母表MES1 按<空格>键开始游戏, 开中断 BH=1?
微机系统与接口技术综合实验报告 电子系 05 级 王翠云 学号:00548212 2007 年秋季 - 3 - 开始 输入速度等级并 显示,把速度等级 转化为分频系数 初始化 8253,通道 1 方 式 3 ,计数初值 1000,通道 0 方式 3, 计数初值为由速度等 级得到的分频系数 初始化 8255,方式 0, A 口输出,B 口输出, C 口输出 设置中断向量,开放 IRQ7 中断,段寄存器 重新赋值 清记分器 CL,清中断 标致 BH, SI 指向随 机字母表 MES1 按<空格>键开始游戏, 开中断 BH=1? N Y
微机系统与接口技术综合实验报告电子系05级王翠云学号:00482122007年秋季 BH=0:产生一个随机数,把[SI+ 随机数]指向的字符存入AL 判断AL中的字符是 中的哪一个,并让 提示超时 DI指向相应字母的码 表 把该字母保存在BL中 分3段循环把该字母的 中断到来 码表输出到A口和C口, 输出的过程中查询中断 标志和键盘 有按键 <ESC> 退出本 次游戏 按键正确? 提示错误 Y 把存在CL中的分数转 换为十进制显示出来 向A口和C口输出00H,使该 字母消失,提示正确,鸣响 次,分数加1( INC CL) 提示开始下一次游戏 或结束 输入 空格 开始 结束 (2)中断服务子程序流程图
微机系统与接口技术综合实验报告 电子系 05 级 王翠云 学号:00548212 2007 年秋季 - 4 - (2) 中断服务子程序流程图 把该字母保存在 BL 中 分 3 段循环把该字母的 码表输出到A口和C 口, 输出的过程中查询中断 标志和键盘 判断 AL 中的字符是 a~z 中的哪一个,并让 DI 指向相应字母的码 表 BH=0;产生一个随机数,把[SI+ 随机数]指向的字符存入 AL 中断到来 按键正确? 向 A 口和 C 口输出 00H,使该 字母消失,提示正确,鸣响一 次,分数加 1(INC CL) 提示超时 有按键 N Y 提示错误 BH=1? N Y 退出本 次游戏 开始 输入 结束 <空格> <ESC> <ESC> 把存在 CL 中的分数转 换为十进制显示出来 提示开始下一次游戏 或结束
微机系统与接口技术综合实验报告电子系05级王翠云学号:00482122007年秋季 INT 保护中断现场 恢复中断现场 中断返回 (3)产生随机数子程序流程图 RAND 保护现场 读取系统时钟 取其低8位作为所需的 0~255的随机数,存 入BP 恢复现场 子程序返回 (4)扬声器发声子程序流程图
微机系统与接口技术综合实验报告 电子系 05 级 王翠云 学号:00548212 2007 年秋季 - 5 - (3) 产生随机数子程序流程图 (4) 扬声器发声子程序流程图 INT7 保护中断现场 BH=1 恢复中断现场 中断返回 RAND 保护现场 读取系统时钟 取其低 8 位作为所需的 0~255 的随机数,存 入 BP 恢复现场 子程序返回