北京邮电大学课程设计报告课程设计名称微机系统与接口技术学院计算机学院指导教师班级班内序号学号学生姓名成绩课程设计内容实验目的:进一步加深和巩固对所学知识点的理解和掌握;综合运用所学知识、工程原理来分析和完成本课程设计;理解计算机软件、硬件如何配合工作,能对计算机硬件进行功能扩展;掌握接口电路设计过程和驱动程序的编写方法;学会如何区分系统中软件、硬件故障和调试手段;培养计算机软硬件的综合设计能力和调试能力。基本内容:(硬件部分)4x4小键盘接口设计;异步串行通信接口设计;4位数码管显示器设计。(软件部分)键盘扫描程序;串行接口通信程序;4位七段数码管显示程序;两组间进行双机通信;在液晶显示器上实现显示功能。实验方法:在HQFC集成环境下,采用汇编语言完成程序设计团队分工:学生课程设计报告(附页)见附页课程设计成绩评定遵照实践教学大纲并根据以下四方面综合评定成绩:1、课程设计目的任务明确,选题符合教学要求,份量及难易程度2、团队分工是否恰当与合理3、综合运用所学知识,提高分析问题、解决问题及实践动手能力的效果4、是否认真、独立完成属于自己的课程设计内容,课程设计报告是否思路清晰、文字通顺、书写规范评语:成绩:指导教师签名:年月日目录1.实验目的......................................................................................................................................32.实验内容......................................................................................................................................32.1硬件部分............................................................................................................................32.2软件部分............................................................................................................................32.3要求...................................................................................................................................33.实验原理......................................................................................................................................43.1设计思想............................................................................................................................43.2实验原理图........................................................................................................................73.3流程图..............................................................................................................................104.实验程序....................................................................................................................................125.实验结果....................................................................................................................................235.1硬件连线图......................................................................................................................235.2自发自收..........................................................................................................................235.3双机通信..........................................................................................................................236.问题解决及收获体会................................................................................................................246.1问题解决..........................................................................................................................246.2收获体会..........................................................................................................................241.实验目的①.进一步加深和巩固对所学知识点的理解和掌握;②.综合运用所学知识、工程原理来分析和完成本课程设计;③.理解计算机软件、硬件如何配合工作,能对计算机硬件进行功能扩展;④.掌握接口电路设计过程和驱动程序的编写方法;⑤.学会如何区分系统中软件、硬件故障和调试手段;⑥.培养计算机软硬件的综合设计能力和调试能力。2.实验内容2.1硬件部分4x4小键盘接口设计(利用8255C口)异步串行通信接口设计(8254为波特率发生器)4位数码管显示器设计2.2软件部分键盘扫描程序。将按键0F转换成015的二进制值串行接口通信程序。1.发送/接收均为查询方式;2.发送为查询方式/接收采用中断方式;二者选其一4位七段数码管显示程序。左移位方式显示09、AF将串行接口发送端和接收端环回,当在4x4小键盘上敲击按键时,经串口发送、接收后将对应键值显示在4位数码管上。(要求:依次敲击1、2、3、4、5、…,则依次显示xxx1、xx12、x123、1234、2345、…)2.3要求两个实验组间进行双机通信,一方用小键盘键入数字,另一方接收到后在4位数码管上显示在液晶显示器上实现显示功能(选作,成绩加10分,但满分为100分)3.实验原理3.1设计思想3.1.1主函数发送端:从8255C口进行键盘扫描读入按键,获得其ASCII码值,将其发送给8251,并把发送值变换为七段译码值在LED上进行移位显示。接收端:8251接收到发送来的ASCII码值,在液晶显示器LCD上进行移位显示。主函数为一个大循环,采用查询方式,依次查询是否有键被按下,发送是否准备好,按键是否为E,接收是否准备好,接受到的数据是否为E,条件满足则执行相应操作,不满足则进行下一个查询,而不是原地踏步地查询。若按键不为E则返回一开始循环执行主程序。CPUA9~A0译码器Y0Y1AENIOWD7~D0PC78255PC6PC5PC4PC3PC2PC1PC0VCCR04321765BA98FEDC8251TxDRxDRxCTxC波特率发生器8254PAPBLED位控IORafedcbgafedcbgafedcbgafedcbg3.1.2键盘扫描8255C口高四位PC7-PC4输出,低四位PC3-PC0输入,接键盘的行3-列0。采用行扫描法,使键盘上某一行线为低电平,而其余行接高电平,然后读取列值;如果列值中有某位为低电平,则表明当前行与当前列交点处的键被按下;否则扫描下一行,直到扫完全部的行线为止。分别用寄存器记录当前行和当前列,并用行数X4+列数计算键值。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接+5VOUT0/8254接TX/RXCLK/8251CS/8254接Y0/IO地址CS/8251接Y7/IO地址RXD/8251接TXD/82513.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/LCD12864PB7-PB4/8255接S3-S0/7段译码管PB2/8255接E/LCD12864PB1/8255接R/W/LCD12864PB0/8255接D/I/LCD12864PC7~PC0/8255接行3-列0/4*4键盘CS/8255接Y1/IO地址3.3流程图开始初始化8253,8251,8255,LCD扫描键盘是否有键按下获得键值数码管显示发送值发送是否准备好Flag=01H键值是否为E8251发送接收是否准备好8251接收键值是否为E返回DOS结束是是液晶屏显示接收值是否是否否否是是否否8255B口位码清零LED显示8255A口输出缓冲区一个数据选择一个数码管进行显示显示完四个数据结束否是LCD显示选择DDRAM地址发送指令:SEND_INS选择缓冲区数据发送数据:SEND_DATA发送完四个数据结束是否4.实验程序DATASEGMENTIO8251EQU2B8HIO8251CTRLEQU2B9HIO8255AEQU288HIO8255BEQU289HIO8255CEQU28AHIO8255CTRLEQU28BHIO82540EQU280HIO8254CTRLEQU283H;0123456789ABCDEF的ASCII值,用于LCD显示ASCTABLEDB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H;0123456789ABCDEF七段译码值,用于LED显示LEDT