《微机原理课程设计.pdf》由会员分享,可在线阅读,更多相关《微机原理课程设计.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-最新资料推荐-1/28 微机原理课程设计(用 8255A 实现 4 位十进制计算器)课程设计报告(2012-2013 年度第 1 学期)名 题 院 班 学称:微型计算机原理及应用 目:用 8255A 实现四位十进制数简单计算器 系:控制与计算机工程学院 级:自动化 1003 班 号:1101190302 昌学生姓名:范指导教师:王震宇 设计周数:一周 成 绩:同 组 人:贾旭 郭欢 刘玉婷日期:2013 年 1 月 5 日课课程设计报告一、课程设计的目的与要求课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题 的能力的重要教学环节。它具有动手、动脑和理论
2、联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机 开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写 设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识 到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应 用 8086 汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具
3、 的使用方法。我组根据微机原理课程所学相关知识及实验教程相关内容,在基于 proteus 平台,使用汇编语言,以 8086 为核心的情况下,配合可编程并行接口器件 8255A,LED 数码管等器件实现可进行简单四位数加减 乘除法功能的十进制计算器。在课程设计实践中,我们不仅锻炼了实际动手能力,培养了团队精神和严肃 认真的工作态度,更增强了自己在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。-最新资料推荐-3/28 二、课程设计进度及任务分工课设进度:1.选择课程设计题目,查阅相关资料。(全体组员)2.需求分析及总体设计。(全体组员)3.软硬件设计。(范昌负责主程序的框架与整体
4、调试、LED 数码显示部分及硬件构架,贾旭负 责键盘管理部分,郭欢、刘玉婷负责算法及相关程序)4.仿真调试。(范昌、贾旭)5.总结及撰写设计报告。(郭欢、刘玉婷)6.个人总结(全体组员)三、设计正文 1 需求分析?操控核心微处理器 8086 芯片 可编程并行接口芯片 8255A 可编程定时/计数器 8253A 对输入扫描的矩阵键盘 显示模块 LED 数码管 辅助器件如 74LS138 译码器、74LS373 等2 总体设计?确定键盘是否有输入(使用程序不断进行扫描)若有输入就调用子程序进行判断,是数值则进行存储并同时进行显示,是运算符号等就调用 1课课程设计报告相应的子程序进行操作?继续扫描键
5、盘是否有输入,从而实现 4 位十进制数以内的加减乘除法或者扩展功能运算 运算完成后将运算的结果储存并显示到 LED 显示器上3 硬件设计 见附录。4 软件设计 见附录。四、课程设计总结或结论(1)个人总结 本次课程设计我们做的课题是用 8255A 实现 4 位十进制数简易计算器,四人一组,我负责 主程序的框架与整体调试、LED 数码显示部分及硬件构架。对于主程序的框架,是整个计算器 的核心,通过与其他组员的商量我们最终确定了我们的主要算法:通过一个 4*4 键盘,输入数据,实现加减乘除操作,将输入的数据和运算符分别存储,接收到“=”时进行运算,并将结果输出。看起来简单的算法,由于涉及到十进制和
6、十六进制的转换,其中就需要很多中间的转换程序。经 过反复修改与查阅资料,我们的程序最终能够完成部分预期功能。我还负责 LED 数码管显示部分的程序,四位七段数码管的显示,原理看起来简单,但是实 际操作时却有各种各样的毛病,按照原理写好程序,往往不能达到预期效果,数码管又是不显示,有时会显示乱码,有时会闪烁,所有这些,都要一步一步调试,加入合适的延时程序是关键,延 时过长、过短都不好。显示乱码是程序方面出了问题,经过一次次调试,终于得到了-最新资料推荐-5/28 稳定的显示,我对数码管的应用也更熟练了。由于我之前有接触过 proteus 仿真软件,所以我负责硬件的搭建,熟悉使用 proteus
7、软件对我 们专业来说是一项基本技能,通过一次次摸索与百度,我对这个软件的使用也越来越熟悉,学会 了怎么连总线,怎么仿真,怎么快速连线,以及常用元件的搜索。其中最让我满足的是键盘的设 计,如果用 16 个按钮排列当然可以实现我们的要求,但是每次按按钮有很不方便,所以我在网 上查询资料,学会了用 proteus 自身的模型制作自己的元件,上图左边是普通矩阵键盘,右图是 我利用 proteus 自身模型制作的的键盘,感觉很满意。整个硬件仿真的搭建,由于对软件的不熟 2课课程设计报告悉,本身设计的问题,花了我很长时间,而且重复连接了很多次,最后我们成功仿真出了我们的 计算器。通过本次课程设计,就我本身
8、来说我学会了很多东西,无论是软件上汇编语言程序的编写与 调试,还是硬件的搭建技巧与相关软件的应用的能力都得到了很大提高,同时也锻炼了我的自我 学习能力与交流合作能力,相关软件的学习使用,相关芯片与元件的使用与选择能力都在一定程 度上有了很大进步。同时,软硬件的结合,也体现了我们自动化专业的特点。最后,有一点遗憾的就是做好了四位的简易计算器,我们想进一步扩展做成八位的计算器,但是难度有所加大,不是想象中的那么简单,数码管显示部分就花了很大精力去调试。最后由于 时间关系没有完成 8 位计算器的制作。(2)团队总结 本次课程设计,我们是四人一组,团队合作的要求就比较高。因为选题的关系,需要更多的 人
9、合作,所以决定四人组队,各自发挥特长。在设计过程中,我们配合得很好,初期的查阅资料共享,极大地体现了我们人数上的优势。对于整个设计的交流更让我们在大方向上走上了正确的道路,少走了很多弯路。我们的课题看起 来简单,其实不然,仔细分析,涉及的知识面很广,很考验我们的基本功和自学能力。-最新资料推荐-7/28 软件方面 的算法由于是大家一起讨论后决定的,一般都是可行的,也有很多难点,比如说十进制与十六进 制的转换,数据的输出与存储等,但是在我们的通力合作下一一解决了我们面临的很多难题。硬 件方面用的是 proteus 软件仿真,硬件电路的设计也是一个难点,但是通过查阅资料与相互交流,我们的电路最终是
10、可行的,虽然之前失败了好几次。软件和硬件的结合再一次考验了我们的合作 精神,软件是建立在硬件上的,硬件体现软件的功能,主要负责硬件和组要负责软件的同学建立 了很好的默契,相互学习,圆满的完成了任务。本次课程设计我们对自己的成果相对比较满意,在设计的过程中,大家相互学习,相互帮助,都收获很多。但是我们也有很多不足的地方,比如四位的计算器位数太少,不能进行小数运算等,这些都是对我们能力的极大挑战,为了解决这些问题我们也进行了积极探索,设计了一个八位的 简单计算器,但是由于时间有限,没能完成设计。3课课程设计报告五、参考文献1 清华大学 TPC2003A 实验指导书,2006 版 2 新编 16/3
11、2 位微型计算机原理及应用,李继灿主编,清华大学出版社,2008 版,第四版 3 陈继红.微机原理及应用M.北京:高等教育出版社,2011 年,276-283 页 4 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2007 年 4-最新资料推荐-9/28 课课程设计报告附录一、软件设计 1.总程序流程图扫描计算键值数值?运算符?清零“=”?加法运算“+”?减法运算“-”?乘法运算“*”?显示存储除法运算 5课课程设计报告 2.扫描程序流程图开始 初始化 N 按键闭合 Y 延时 12msN 按键闭合 Y 按键扫描 N 按键释放 Y 保存键值结束 3.程序代码;8255A 端口地址:A
12、 口:40H,B 口:44H,C 口:42H,控制端口:46H DATA SEGMENT X DB X1 DW?X2 DW Y DW S DB E DB CC DB?,?,?,?;存放数据的每一位;存放第一个数据值?;存放第二个数据值?;存放运算结果?;存放运算符号值?;按下等号键标记?;存放运算数据位数 6-最新资料推荐-11/28 课课程设计报告 H DB 0 L DB 0 DISCODE DB;存放按键行号;存放按键列号 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;段码表 DATA ENDS CODE S
13、EGMENT ASSUME CS:CODE DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,90H OUT 46H,AL MOV DI,OFFSET X+3 CALL KEY JMP KKK;设置为 A 口输入,B 口输出,C 口输出;DI 指向 X 的高位;扫描按键 KKK:;以下为按键扫描子程序,程序返回后,在变量 H 和 L 中存放当前按键的行列号 KEY PROC CHECK:CALL DISP;等待按键按下的同时进行显示 MOV AL,0F0H;所有行输出低电平 OUT 44H,AL IN AL,40H CMP AL,0FFH;读列值 JZ CH
14、ECK;若都为高电平则无键按下,等待 MOV CX,50 LOOP$;延时消抖 IN AL,DX;重读列值 CMP AL,0FFH JZ CHECK;无键按下一直等待 MOV H,0;有键按下,先把行列号变量清 0 MOV L,0 MOV BL,01H MOV BH,0FEH;扫描法读键值:从第一行开始测试,即 PC0 输出低电平 NEXT:MOV AL,BH OUT 44H,AL NEXTH:IN AL,40H;读列值,判断是第几列有键按下 TEST AL,BL;从第一列开始判断 JZ WAIT0 ROL BL,1 CMP BL,10H;当前行状态下没有列有键按下,则转为对下一行的测试 JZ
15、 NEXTL INC H;每判断一列,列号加 1 JMP NEXTH;再对下一列进行判断 7课课程设计报告 NEXTL:MOV H,0 MOV BL,01H ROL BH,1;对下一行测试,让下一个 PC 口输出低电平 CMP BH,0EFH JZ EXIT INC L JMP NEXT WAIT0:IN AL,40H;若有键按下,则等该按键松开后再计算键值 CMP AL,0FFH JNZ WAIT0 MOV CX,50 LOOP$;延时消抖 IN AL,40H CMP AL,0FFH JNZ WAIT0 CALL KEYVALUE;调计算键值子程序 EXIT:RET KEY ENDP;以下为
16、计算键值子程序,通过行列号计算键值(键值=行号*4+列号)键值存放在 DL 寄存器中 KEYVALUE PROC MOV DL,L MOV DH,H SHL DL,1 SHL DL,1;列号乘 4 ADD DL,DH CMP DL,9;按下的是数字键 JNG NUM_CALL CMP DL,14 JL CONT_CALL;按下的是运算键 CMP DL,14 JZ OUTP_CALL;按下的是等于键 CMP DL,15 JZ CLR_CALL;按下的是清除键 NUM_CALL:CALL NUMBER;调数字键处理子程序 JMP EXIT1 CONT_CALL:MOV S,DL;存放运算键的键值
17、MOV E,0 CALL COUNT 调运算键处理子程序,计算第一个加数 JMP EXIT1 OUTP_CALL:CALL OUTP;调等号键处理子程序 JMP EXIT1 CLR_CALL:CALL CLEAR;调清除键处理子程序 EXIT1:RET KEYVALUE ENDP8-最新资料推荐-13/28 课课程设计报告;以下为清除键处理子程序,按下清除键后,X 变量全部清 0 CLEAR PROC MOV X3,0 MOV X2,0 MOV X1,0 MOV X0,0 CALL BITP RET CLEAR ENDP;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入
18、X2 变量;并根据运算符号,调用相应的运算子程序 OUTP PROC PUSH AX PUSH DX PUSH BX INC E CALL COUNT;调运算键处理子程序,计算第二个运算数据 CMP S,10 JZ ADD_CALL;运算符为加号,则调用加法子程序 CMP S,11 JZ SUB_CALL;运算符为减号,则调用减法子程序 CMP S,12 JZ MUL_CALL;运算符为乘号,则调用乘法子程序 CMP S,13 CALL DIVP;运算符为除号,则调用除法子程序 JMP STORE1 ADD_CALL:CALL ADDP JMP STORE1 SUB_CALL:CALL SUB
19、P JMP STORE1 MUL_CALL:CALL MULP STORE1:MOV AX,Y;以下程序将各运算子程序返回的运算结果,按位分解,送入 X 变量 MOV DX,0 MOV BX,1000 DIV BX MOV X0,AL MOV AX,DX MOV BL,100 DIV BL MOV X1,AL MOV AL,AH MOV AH,0 MOV BL,10 DIV BL9课课程设计报告 MOV MOV POP POP POP RETX2,AL X3,AH BX DX AXOUTP ENDP;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入 X1 变量;或者将第二个运
20、算数据的数值计算出来并存入 X2 变量;将运算符的值存入 S 变量 COUNT PROC PUSH AX PUSH BX PUSH DX MOV DX,0 CALL BITP;测试 X 中的数据是多少位 CMP CC,4;输入的数据是 4 位数?JZ C4 CMP CC,3;输入的数据是 3 位数?JZ C3 CMP CC,2;输入的数据是 2 位数?JZ C2 JMP C1;输入的数据是 1 位数?C4:MOV AX,0 MOV AL,X0 MOV BX,1000 MUL BX MOV DX,AX C3:MOV AL,X1 MOV BL,100 MUL BL ADD DX,AX C2:MOV
21、 AL,X2 MOV BL,10 MUL BL ADD DX,AX C1:MOV AL,X3 MOV AH,0 ADD DX,AX CMP E,1 JNZ X1_S MOV X2,DX;按下的是等号,则将第二个运算数据的值存入 X2 变量 JMP EXIT3 X1_S:MOV X1,DX;按下的是运算符号,则将第一个运算数据的值存 X1 变量 MOV X3,0;清空 X 变量 MOV X2,010-最新资料推荐-15/28 课课程设计报告 MOV X1,0 MOV X0,0 EXIT3:POP DX POP BX POP AX RET COUNT ENDP;以下为数字键处理子程序;该程序,将输
22、入的数据按位存放在 X 变量中,并由 CC 记录数据的位数 NUMBER PROC CMP E,1 JNZ CONTINUE MOV E,0 CALL CLEAR CONTINUE:CMP CC,0;目前数据为 0 位,即没有数据,则转到 SSS JZ SSS PUSH AX PUSH DX MOV AL,X3 MOV AH,X2 MOV DL,X1 MOV DH,X0 MOV CX,8 LL:SHL AX,1 RCL DX,1 LOOP LL MOV X3,AL MOV X2,AH MOV X1,DL MOV X0,DH POP DX POP AX SSS:MOV DI,DL;将当前键入的数
23、据存放到 X 的最低位 INC CC;数据位数加 1 CMP CC,4;判断数据位数 JNG EXIT2 MOV CC,0;如果数据超过 4 位,重新从最低位开始存放 MOV X2,0 MOV X1,0 MOV X0,0 EXIT2:CALL DISP;调显示子程序,显示输入的数据 RET NUMBER ENDP;加法子程序 11课课程设计报告 ADDP PROC PUSH AX MOV AX,X1 ADD AX,X2 MOV Y,AX POP AX RET ADDP ENDP;减法子程序 SUBP PROC PUSH AX MOV AX,X1 SUB AX,X2 MOV Y,AX POP A
24、X RET SUBP ENDP;乘法子程序 MULP PROC PUSH AX PUSH DX MOV AX,X1 MOV DX,X2 MUL DX MOV Y,AX POP DX POP AX RET MULP ENDP;除法子程序 DIVP PROC PUSH AX PUSH BX PUSH DX MOV DX,0 MOV AX,X1 MOV BX,X2 DIV BX MOV Y,AX POP DX POP BX POP AX RET DIVP ENDP12-最新资料推荐-17/28 课课程设计报告;显示子程序,将 X 中的数值按位显示出来 DISP PROC PUSH BX PUSH A
25、X MOV BH,0 LEA SI,DISCODE CALL BITP;测试 X 位数 CMP CC,4 JZ QIAN CMP CC,3 JZ BAI CMP CC,2 JZ SHI CMP CC,1 JMP G JMP NONE QIAN:MOV AH,11100000B;从第 4 位开始显示 MOV AL,AH OUT 44H,AL MOV BL,X0 MOV AL,SI+BX OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL BAI:MOV AH,11010000B;从第 3 位开始显示 MOV AL,AH OUT 44H,AL MOV BL,X1 MO
26、V AL,SI+BX OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL SHI:MOV AH,10110000B;从第 2 位开始显示 MOV AL,AH OUT 44H,AL MOV BL,X2 MOV AL,SI+BX OUT 42H,AL CALL DELY MOV AL,0 OUT 42H,AL G:MOV AH,01110000B;从第 1 位开始显示 MOV AL,AH13课课程设计报告 OUT 44H,AL MOV BL,X3 MOV AL,SI+BX OUT 42H,AL CALL DELY JMP EXIT4 NONE:MOV AL,0 OUT
27、 42H,AL EXIT4:POP AX POP BX RET DISP ENDP;分析数据位数子程序 BITP PROC CMP X0,0 JNZ FOURBIT CMP X1,0 JNZ THREEBIT CMP X2,0 JNZ TOWBIT CMP X3,0 JNZ ONEBIT JMP ZER0BIT FOURBIT:MOV CC,4 JMP EXIT5 THREEBIT:MOV CC,3 JMP EXIT5 TOWBIT:MOV CC,2 JMP EXIT5 ONEBIT:MOV CC,1 JMP EXIT5 ZER0BIT:MOV CC,0 EXIT5:RET BITP ENDP
28、;延时子程序 DELY PROC PUSH MOV LOOP POP RET DELY ENDP CODE ENDS END;X 中没有数据,不显示;如果 X0 不为 0,则数据为 4 位数;如果 X1不为 0,则数据为 3 位数;如果 X2 不为 0,则数据为 2 位数;如果 X3 不为 0,则数据为 1 位数;否则,没有数据 CX CX,100$CXSTART14-最新资料推荐-19/28 课课程设计报告二、硬件设计 1.微处理器 8086 当引脚接高电平时,CPU 工作于最小模式。此时,引脚信号 24 31 的含义及其功能如 下:(1)INTA/(interrupt acknowledg
29、e):可屏 蔽中断响应信号,输出,低电平有效。CPU 通过信号对外设提出的可屏蔽中断请求做出 响应。为低电平时,表示 CPU 已经响应外设 的中断请求,即将执行中断服务程序。(2)ALE(address lock enable):地址锁 存允许信号,输出,高电平有效。CPU 利用 ALE 信号可以把 AD15 AD0 地址/数据、A19/S6 A16/S3 地址/状态线上的地址信息锁存在地址锁存器中。(3)DEN/(data enable):数据允许控制信号,输出,三态,低电平有效。信号用作总线收 发器的选通控制信号。当为低电平时,表明 CPU 进行数据的读/写操作。(4)DT/(data t
30、ransmit or receive):数据发送/接收信号,输出,三态。DT/信号用来 控制数据传送的方向。DT/为高电平时,CPU 发送数据到存储器或 I/O 端口;DT/为低电平时,CPU 接收来自存储器或 I/O 端口的数据。(5)IO/M/(memory I/O select):存储器、I/O 端口选择控制信号。信号指明当前 CPU 是 选择访问存储器还是访问 I/O 端口。为高电平时访问存储器,表示当前要进行 CPU 与存储器 之间的数据传送。为低电平时,访问 I/O 端口,表示当前要进行 CPU 与 I/O 端口之间的数据 传送。(6)WR/(write):写信号,输出,低电平有效
31、。信号有效时,表明 CPU 正在执行写总线周 期,同时由信号决定是对存储器还是对 I/O 端口执行写操作。(7)HLDA(hold acknowledge):总线保持响应信号,输出,高电平有效。HLDA 是与 HOLD 配 合使用的联络信号。在 HLDA 有效期间,HLDA 引脚输出一个高电平有效的响应信号,同时总线 将处于浮空状态,CPU 让出对总线的控制权,将其交付给申请使用总线的 8237A 控制器使用,总线使用完后,会使 HOLD 信号变为低电平,CPU 又重新获得对总线的控制权。(8)HOLD(bus hold request):总线保持请求信号,输入,高电平有效。在 DMA 数据传
32、送 方式中,由总线控制器 8237A 发出一个高电平有效的总线请求信号,通过 HOLD 引脚输入到 CPU,请求 CPU 让出总线控制权。-最新资料推荐-21/28 15课课程设计报告 2.可编程并行接口芯片 8255A RESET:复位输入线,当该输入端外于高电平时,所 有内部寄存器(包括控制寄存器)均被清除,所有 I/O 口均被置成输入方式。PA0 PA7:端口 A 输入输出线,一个 8 位的数据输 出锁存器/缓冲器,一个 8 位的数据输入锁存器。PB0 PB7:端口 B 输入输出线,一个 8 位的 I/O 锁 存器,一个 8 位的输入输出缓冲器。PC0 PC7:端口 C 输入输出线,一个
33、 8 位的数据输 出锁存器/缓冲器,一个 8 位的数据输入缓冲器。端口 C 可以通过工作方式设定而分成 2 个 4 位的 端口,每个 4 位的端口包含一个 4 位的锁存器,分别与端口 A 和端口 B 配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许 8255 与 CPU 进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许 8255 通过数据总线向 CPU 发送数据或状态 信息,即 CPU 从 8255 读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许 CPU 将数据或控制字写 8255。D0 D7:三态双向数据
34、总线,8255 与 CPU 数据传送的通道,当 CPU 执行输入输出指令时,通 过它实现 8 位数据的读/写操作,控制字和状态信息也通过数据总线传送。-最新资料推荐-23/28 8255 的读写控制:8255 的读/写控制逻辑电路接受 CPU 发来的控制口号 RD、WR、RESET 和地址信号 A1A0。然 后根据命令端口,控制信号的要求,将端口的数据读出选信 CPU 或者将 CPU 送来的数据写入 端口,各端口的工作状态。通过用输出指令对 8255A 的控制字寄存器编程,写入设定工作方 式的控制字,可以让 3 个数据口以不同的方式工作,端口 A 可工作于 3 种方式的任一种,端 口 B 只能
35、工作于方式 0 和方式 1,端口 C 除了用于输入输出端口外,还能配合 A 口和 B 口 工作,为这两个端口的输入输出操作提供联系信号。16课课程设计报告 3.可编程定时/计数器 8253A 8253A 的引脚可以分为两部分:与 CPU 的接口引脚和 与外设的接口引脚。(1)与 CPU 的接口引脚 D0D7:三态双向数据线,和 CPU 数据总线相连,用 于传输 CPU 与 8253 之间的数据信息、控制信息和状 态信息。CS:片选信息,输入、低电平有效。A1、A0:用来对 8253A 片内三个计数通道和控制字寄 存器进行寻址。RD:读信号,输入,低电平有效。WR:写信号,输入,低电平有效。(2
36、)与外设的接口引脚 CLK:时钟输入引脚,用于输入定时脉冲或计数脉冲信号。计数器对这个引脚输入的脉冲进行 计数。GATE:门控输入端。用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计 数器连用时,可以用此信号来同步,也可用于与外部某信号的同步。OUT:计数输出端。不管 8253 以何种方式工作,当计数器计数到 0 时,在 OUT 引脚上必定有 输出。在不同模式下,可输出不同形式的信号。4.LED 数码管 LED 为发光二极管构 成的显示器件,亦称数码-最新资料推荐-25/28 管。由 7 个字符段和一个 小数点段组成,每段对应 一个发光二极管,当发光 二极管点亮时,相应的字 符段
37、点亮。LED 有共阴极 和共阳极两种供应状态。共阴极显示时,将 LED 显示的 COM 接地,将八个字符段端 a、b、c、d、e、f、g、dp 依次与 一个 8 位 I/O 口的最低到最高位连接,当 I/O 给 LED 的哪个字符段送入一个高电平时,该段 17课课程设计报告就被点亮,从而可从这 7 个字符段中被点亮的构成相应的字符显示出来。同理,COM 阳极即将 COM 端接 Vcc,其显示原理与 COM 阴极的基本相同,I/O 口送入低电平是相应的段才被点亮。但 5.44 矩阵按键 键盘 是信息输 入元件,由一个个 按 钮 组 成,如果 是独立按 钮的话必 须要需要 一个 I/O 口对它进行
38、检测。因为 44 矩阵键盘有 8 个管脚,于是将键盘接 8255A 的 PC 口。因为进行键盘扫描一般要求有一部分的 I/O 口的工作方式是输入,另一部分 I/O 是输出,具 体到 44 键盘则要求 4 个 I/O 口输入,另外 4 个输出,这一点 PC 口刚好符合,而 PA、PB 口 要么全部输入或输出,所以只能是 PC 口接键盘。4x4 矩阵按键面板 18-最新资料推荐-27/28 课课程设计报告 6.74L138 译码器 当一个选通端(E1)为高电平,另两个选通端((/E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的 二进制编码在 Y0 至 Y7 对应的输出端以低电平译出
39、。比 如:A2A1A0=110 时,则 Y6 输出端输出低电平信号。利用 E1、E2 和 E3 可级联扩展成 24 线译码器;若 外接一个反相器还可级联扩展成 32 线译码器。若将选通端中的一个作为数据输入端时,74LS138 还 可作数据分配器。可用在 8086 的译码电路中,扩展内存。7.74LS373D 锁存器 373 为三态输出的八 D 透明锁存器,共有 54S373 和 74LS373 两种线路。当三态允许控制端 OE 为低电平时,Q0Q7 为正常 逻辑状态,可用来驱动负载或总线。OE 为高电平时,当 Q0Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,被锁存在已建立的数据电平。D 当 LE 端施密特触发器的输入滞后作用,使交流和直流噪 声抗扰度被改善 400mV。引出端符号:D0D7 数据输入端 OE 三态允许控制端(低电平有效)LE 锁存允许端 Q0Q7 输出端 19课课程设计报告三、设计原理图 20