北邮微机系统与接口技术小学期报告
北京邮电大学课程设计报告
目录
1. 实验目的...................................................................................................................................... 3 2. 实验内容...................................................................................................................................... 3
2.1 硬件部分............................................................................................................................ 3 2.2 软件部分............................................................................................................................ 3 2.3 要求 ................................................................................................................................... 3 3. 实验原理...................................................................................................................................... 4
3.1 设计思想............................................................................................................................ 4 3.2 实验原理图 . ....................................................................................................................... 7 3.3 流程图.............................................................................................................................. 10 4. 实验程序.................................................................................................................................... 12 5. 实验结果.................................................................................................................................... 23
5.1 硬件连线图 . ..................................................................................................................... 23 5.2 自发自收.......................................................................................................................... 23 5.3 双机通信.......................................................................................................................... 23 6. 问题解决及收获体会 . ............................................................................................................... 24
6.1 问题解决.......................................................................................................................... 24 6.2 收获体会.......................................................................................................................... 24
①. 进一步加深和巩固对所学知识点的理解和掌握;
②. 综合运用所学知识、工程原理来分析和完成本课程设计;
③. 理解计算机软件、硬件如何配合工作,能对计算机硬件进行功能扩展; ④. 掌握接口电路设计过程和驱动程序的编写方法; ⑤. 学会如何区分系统中软件、硬件故障和调试手段; ⑥. 培养计算机软硬件的综合设计能力和调试能力。
2. 实验内容
2.1硬件部分
4x4小键盘接口设计(利用8255 C口)
异步串行通信接口设计(8254为波特率发生器) 4位数码管显示器设计
2.2 软件部分
键盘扫描程序。将按键0~F 转换成0~15的二进制值
串行接口通信程序。1. 发送/接收均为查询方式;2. 发送为查询方式/接收采用中断
方式;二者选其一
4位七段数码管显示程序。左移位方式显示0~9、A ~F
将串行接口发送端和接收端环回,当在4x4小键盘上敲击按键时,经串口发送、接
收后将对应键值显示在4位数码管上。(要求:依次敲击1、2、3、4、5、…,则依次显示xxx1、xx12、x123、1234、2345、…)
2.3 要求
两个实验组间进行双机通信,一方用小键盘键入数字,另一方接收到后在4位数码
管上显示
在液晶显示器上实现显示功能(选作,成绩加10分,但满分为100分)
3.1 设计思想
3.1.1 主函数
发送端:从8255C 口进行键盘扫描读入按键,获得其ASCII 码值,将其发送给8251,并把发送值变换为七段译码值在LED 上进行移位显示。
接收端:8251接收到发送来的ASCII 码值,在液晶显示器LCD 上进行移位显示。 主函数为一个大循环,采用查询方式,依次查询是否有键被按下,发送是否准备好,按键是否为E ,接收是否准备好,接受到的数据是否为E ,条件满足则执行相应操作,不满足则进行下一个查询,而不是原地踏步地查询。若按键不为E 则返回一开始循环执行主程序。
3.1.2键盘扫描
8255C 口高四位PC7-PC4输出,低四位PC3-PC0输入,接键盘的行3-列0。
采用行扫描法,使键盘上某一行线为低电平,而其余行接高电平,然后读取列值;如果列值中有某位为低电平,则表明当前行与当前列交点处的键被按下;否则扫描下一行,直到扫完全部的行线为止。
分别用寄存器记录当前行和当前列,并用 行数X 4+列数 计算键值。
3.1.3 数码管显示
8255B 口输出,高四位PB7-PB4接LED 位码S3-S0,选择某一个数码管。 8255A 口输出,PA7-PA0接LED 的DP-A ,将七段译码值输出到数码管,并进行显示。
3.1.4 液晶屏显示
8255B 口输出,低三位PB2,PB1,PB0分别接LCD 的E ,RW ,DI ,控制液晶显示器的使能,读/写,数据/指令。
8255A 口输出,PA7-PA0接LCD 的D7-D0,与LED 复用数据线,将ASCII 值输出到液晶屏,并进行显示。
3.2 实验原理图
3.2.1 系统接线图
3.2.2 自发自收
CLK0 /8254 接 1M时钟 GATE0/8254 接 +5V
OUT0/8254 接 TX/RXCLK/8251 CS /8254 接 Y0/IO地址 CS/8251 接 Y7/IO地址 RXD /8251 接
TXD/8251
3.2.3 双机通信
机器A 的RXD/8251接机器B 的TXD/8251 ,机器B 的RXD/8251 接机器ATXD/8251,其余接线与自发自收相同 。
3.2.4 显示模块
PA7~PA0/8255 接DP-A/7段译码管 PA7~PA0/8255 接 D7-D0/LCD12864
PB7-PB4/8255 接 S3-S0/7段译码管 PB2 /8255 接 E/LCD12864 PB1 /8255 接 R/W /LCD12864 PB0 /8255 接 D/I /LCD12864
PC7~PC0/8255 接 行3-列0/4*4键盘 CS /8255 接 Y1/IO地址
3.3 流程图
否
是
是
否
否
是
否是
否
是
否
是
否
是
否是
4. 实验程序
5. 实验结果
5.1 硬件连线图
5.2 自发自收
自发自收时,按下4×4键盘,可以看到对应键值在数码管上移位显示,即发送的数据,同时,在LCD 液晶显示屏上出现接收的数据,与数码管显示的一致。当在键盘按下E ,数码管不再显示,LCD 液晶屏也清屏。
5.3 双机通信
两机通信时,A 机按下4×4键盘,A 机的数码管显示按下的键值,B 机收到A 机发送的数据,在LCD 液晶显示屏显示,即A 机的数码管与B 机的液晶显示屏显示内容一致。B 机发送数据时,在B 机的数码管显示B 机按下的键值,A 机LCD 液晶显示屏显示收到的数据,即B 机的数码管与A 机的液晶显示屏显示内容一致。通信过程中,任意一端均可做发送或接受端。在任意一端4×4键盘按下E 时,两机都结束通信,数码管不显示,LCD 液晶屏清屏。
6. 问题解决及收获体会
6.1 问题解决
问题:LED 显示出现明显的闪烁
解决:LED 是靠高电平点亮,要保持其显示,必须要持续给LED 高电平。所以在每个循环中,要多次调用LED 显示函数。
问题:LED 输出重叠显示
解决:在进行数码管显示时,要先输出数据,再选择位码,否则会因为顺序相反造成重叠显示。
问题:运行程序时,只按键一次程序就退出
解决:在主程序中有个大循环,在大循环的最后要使用jmp 语句跳到开头重复进行查询。
问题:LCD 无法显示
解决:在一开始要对LCD 进行初始化,如发送基本指令集等。
问题:双机通信时双方没有显示
解决:数据未能稳定传输,将两台机器共地。
实验过程还有很多如编译错误,赋值错误等问题,不再一一列出。还有部分问题解决见收获体会↓。
6.2 收获体会