![基于8255驱动的数码管显示和键盘电路设计与编程_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/eea5a4b6-0f0d-4b23-877d-5021080fd0f2/eea5a4b6-0f0d-4b23-877d-5021080fd0f21.gif)
![基于8255驱动的数码管显示和键盘电路设计与编程_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/eea5a4b6-0f0d-4b23-877d-5021080fd0f2/eea5a4b6-0f0d-4b23-877d-5021080fd0f22.gif)
![基于8255驱动的数码管显示和键盘电路设计与编程_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/eea5a4b6-0f0d-4b23-877d-5021080fd0f2/eea5a4b6-0f0d-4b23-877d-5021080fd0f23.gif)
![基于8255驱动的数码管显示和键盘电路设计与编程_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/eea5a4b6-0f0d-4b23-877d-5021080fd0f2/eea5a4b6-0f0d-4b23-877d-5021080fd0f24.gif)
![基于8255驱动的数码管显示和键盘电路设计与编程_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-6/22/eea5a4b6-0f0d-4b23-877d-5021080fd0f2/eea5a4b6-0f0d-4b23-877d-5021080fd0f25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基础课程设计(论文)基于8255驱动的数码管显示和键盘电路设计与编程 专 业:电气工程及其自动化指导教师: 小组成员: 信息技术学院电气工程系2014年10月28 摘要本文主要是基于8255微处理器芯片,设计中包括数码管显示和矩阵键盘输入部分,可以完成一些简单4位以内的十进制计算。全文较为详细的介绍了芯片工作原理,硬件和软件的设计以及各部分的驱动程序和流程图。关键词:矩阵按键 ,数码显示,运算目录摘要I绪论11 课程设计任务要求及规定21.1 课程设计要求21.2课程设计规定22 整体设计思想23硬件设计33.1 原器件件清单33.2 微处理器8086芯片33.3 可编程并行接口芯片8255A
2、43.4 LED数码管63.5 44矩阵按键73.6 硬件原理图84 软件设计84.1 程序流程图84.2 总程序设计114.3 按键扫描程序设计114.4 矩阵键盘程序设计134.5 运算程序设计184.6 显示程序设计194.7 延时子程序21参考文献22绪论课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,
3、使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。1 课程设计
4、任务要求及规定1.1 课程设计要求1. 四位数码管动态显示左向移位的数据,例如显示12352. 完成4位数的十进制加法运算,结果显示3. 完成3位数的十进制加法运算,结果显示在4位LED上4. 完成一个4位十进制数除2位十进制数的除法运算,并将结果以十进制形式显示5. 完成2位十进制数的乘法运算,结果显示4位1.2课程设计规定设计硬件线路,用protel画图。按单元电路详细说明硬件线路设计思路,元件参数,选取根据。附详细的元件清单。软件设计。只设计键盘扫描和LED显示部分程序。 有完整的程序流程图,完整的程序清单,并加注释。总结设计过程和设计体包括总流程图和模块流程图。对程序设计思想做详细说明
5、。2 整体设计思想首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就调用子程序进行判断,是数值则进行存储并同时进行显示,是运算符号等就调用相应的子程序进行操作,操作后则继续利用程序不断扫描键盘是不是有输入,从而实现4位十进制数以内的加减乘除法运算。运算完成后将运算的结果储存并显示到LED显示器上。如下图:图 1整体思路流程图3硬件设计3.1 原器件件清单表一元器件清单原件名称原件个数808618255A18位4字共阴极数码管174LS1381按钮开关16电阻4直流5V电源13.2 微处理器8086芯片当引脚接高电平时,CPU工作于最小模式。此时,引脚信号2431的含义及其功能如
6、下: (1)IO/M/(memory I/O select):存储器、I/O端口选择控制信号。 信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。 (2)WR/(write):写信号,输出,低电平有效。 信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。(3)INTA/(interrupt acknowledge):可屏蔽中断响应信号,输出,低电平有效。 CPU通过信号对外设提出的可屏蔽中断请求做出响应。为
7、低电平时,表示CPU已经响应外设的中断请求,即将执行终端服务程序。 (4)ALE(address lock enable):地址锁存允许信号,输出,高电平有效。 CPU利用ALE信号可以把AD15 AD0地址/数据、A19/S6A16/S3地址/状态线上的地址信息锁存在地址锁存器中。 (5)DT/(data transmit or receive):数据发送/接收信号,输出,三态。 DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。 (6)DEN/(data enable):数据允许控制信号,输出,
8、三态,低电平有效。信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。 (7)HOLD(bus hold request):总线保持请求信号,输入,高电平有效。在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。 (8)HLDA(hold acknowledge):总线保持响应信号,输出,高电平有效。HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A
9、控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。 3.3 可编程并行接口芯片8255A微机系统的信息交换有两种方式:并行通信接口方式和串行通信接口方式。接口电路在CPU和I/O设备之间起着信号的变换和传输的作用。8255A可为86系列CPU与外部设备之间提供并行输入/输出的通道。由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用8255A连接外部设备时,通常不用再附加外部电路,使用教方便。并行接口是在多根数据线上,以数据字节/字与I/O设备交换信息。图 2 8255A引脚图在输入过程中,输入设备把数据送给接口,并且使状态线“输入准备好”有效。接口
10、把数据存放在“输入缓冲寄存器”中,同时使“输入回答”线有效,作为对外设的响应。外设在收到这个回答信号后,就撤消数据和“输入准备好”信号。数据到达接口中后,接口会在“状态寄存器”中设置输入准备好标志,或者向CPU发一个中断请求。CPU可用查询方式或中断方式从接口中读取数据。接口中的数据被读取后,接口会自动清除状态寄存器中的标志,且撤消对CPU的中断请求。在输出过程中,每当输出寄存器可以接收数据,接口就会将状态寄存器中“输出准备好”状态置1或向CPU发一个中断请求,CPU可用查询或中断方式向接口输出数据。当CPU输出的数据到达接口后,接口会清除“输出准备好”状态,把数据送往外设,并向外设发一个“数
11、据输出准备好”信号。外设受到驱动后,便接收数据,并向接口电路发一个“输出回答”信号,接口收到该回答信号后,又将状态寄存器中“输出准备好”置位,以便CPU输出下一个数据。定义工作方式控制字:图3 寄存器位图3.4 LED数码管LED为发光二极管构成的显示器件,亦称数码管。由7个字符段和一个小数点段组成,每段对应一个发光二极管,当发光二极管点亮时,相应的字符段点亮。LED有共阴极和共阳极两种供应状态。共阴极显示时,将LED显示的COM接地,将八个字符段端a、b、c、d、e、f、g、dp依次与一个8位I/O口的最低到最高位连接,当I/O给LED的哪个字符段送入一个高电平时,该段就被点亮,从而可从这7
12、个字符段中被点亮的构成相应的字符显示出来。同理,COM阳极即将COM端接Vcc,其显示原理与COM阴极的基本相同,但I/O口送入低电平是相应的段才被点亮。图 4 protel中LED图引脚控制图3.5 44矩阵按键键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O口对它进行检测,而键盘往往这需要键盘按钮数一半的I/O口数对它进行检测,也许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说I/O资源就显得非常珍贵了,尽量减少I/O使用是非常利于降低成本,另外一方面键盘比用独立按键要美观,这也是键盘能够长期得到人们青睐的原因,可是硬
13、件上的节省必然导致软件上编程的复杂,那就来看看键盘到底使软件编程有多复杂?因为44矩阵键盘有8个管脚,于是将键盘接8255A的PC口,至于为什么选择PC是有原因的,进行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另一部分I/O是输出,具体到44键盘则要求4个I/O口输入,另外4个输出,这一点PC口刚好符合,而PA、PB口要么全部输入或输出,所以只能是PC口接键盘。图 5 protel中矩阵键盘图3.6 硬件原理图图 6 整体硬件设计图4 软件设计4.1 程序流程图开始初始化延时12ms键扫描保存键值键闭合?键释放?结束键闭合?YYYNNN键盘扫描程序流程图计算键值扫描加法运算减法运算显
14、示乘法运算存储除法运算数值?运算符?“ = ” ?清零“ + ” ?“ - ” ?“ * ” ?总程序流程图4.2 总程序设计DATA SEGMENTXDB?;存放数据的每一位X1DW ?;存放第一个数据值X2DW?;存放第二个数据值YDW?;存放运算结果SDB? ;存放运算符号值EDB? ;按下等号键标记CC DB? ;存放运算数据位数HDB0 ;存放按键行号LDB0 ;存放按键列号DISCODEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;段码表DATA ENDS4.3 按键扫描程序设计以下为按键扫描子
15、程序,程序返回后,在变量H和L中存放当前按键的行列号:CODE SEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,90H ;设置为A口输入,B口输出,C口输出OUT46H,ALMOVDI,OFFSET X+3;DI指向X的高位KKK:CALLKEY ;扫描按键JMPKKKKEY PROCCHECK:CALLDISP ;等待按键按下的同时进行显示MOVAL,0F0H ;所有行输出低电平OUT44H,ALINAL,40HCMPAL,0FFH ;读列值JZ CHECK ;若都为高电平则无键按下,等待MOVCX,50LOOP$ ;延时消
16、抖INAL,DX ;重读列值CMPAL,0FFHJZCHECK ;无键按下一直等待MOVH,0 ;有键按下,先把行列号变量清0MOVL,0MOVBL,01HMOVBH,0FEH ;扫描法读键值:从第一行开始测试,即PC0输出低电平NEXT:MOVAL,BHOUT 44H,ALNEXTH:INAL,40H ;读列值,判断是第几列有键按下TESTAL,BL ;从第一列开始判断JZWAIT0ROLBL,1CMPBL,10H ;当前行状态下没有列有键按下,则转为对下一行的测试JZNEXTLINCH ;每判断一列,列号加1JMPNEXTH ;再对下一列进行判断NEXTL:MOVH,0MOVBL,01HR
17、OLBH,1 ;对下一行测试,让下一个PC口输出低电平CMPBH,0EFHJZEXITINCLJMPNEXTWAIT0:INAL,40H ;若有键按下,则等该按键松开后再计算键值CMPAL,0FFHJNZWAIT0MOVCX,50LOOP$ ;延时消抖INAL,40HCMPAL,0FFHJNZWAIT0CALLKEYVALUE ;调计算键值子程序EXIT:RETKEY ENDP4.4 矩阵键盘程序设计4.4.1 键值子程序以下为计算键值子程序,通过行列号计算键值(键值=行号*4+列号)键值存放在DL寄存器中:KEYVALUE PROCMOVDL,LMOVDH,HSHLDL,1SHLDL,1 ;
18、列号乘4ADDDL,DHCMPDL,9 ;按下的是数字键JNGNUM_CALLCMPDL,14JLCONT_CALL ;按下的是运算键CMPDL,14JZOUTP_CALL ;按下的是等于键CMPDL,15JZCLR_CALL ;按下的是清除键NUM_CALL: CALLNUMBER ;调数字键处理子程序JMPEXIT1CONT_CALL:MOVS,DL ;存放运算键的键值MOVE,0CALLCOUNT 调运算键处理子程序,计算第一个加数JMPEXIT1OUTP_CALL:CALLOUTP ;调等号键处理子程序JMPEXIT1CLR_CALL:CALLCLEAR ;调清除键处理子程序EXIT1
19、:RETKEYVALUE ENDP4.4.2 清除键子程序以下为清除键处理子程序,按下清除键后,X变量全部清0:CLEAR PROCMOVX3,0MOVX2,0MOVX1,0MOVX0,0CALLBITPRETCLEAR ENDP4.4.3 等号键子程序以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量,并根据运算符号,调用相应的运算子程序:OUTP PROCPUSHAXPUSHDXPUSHBXINCECALLCOUNT ;调运算键处理子程序,计算第二个运算数据CMPS,10JZADD_CALL ;运算符为加号,则调用加法子程序CMPS,11JZSUB_CALL ;
20、运算符为减号,则调用减法子程序CMPS,12JZMUL_CALL ;运算符为乘号,则调用乘法子程序CMPS,13CALLDIVP ;运算符为除号,则调用除法子程序JMPSTORE1ADD_CALL:CALLADDPJMPSTORE1SUB_CALL:CALLSUBPJMPSTORE1MUL_CALL:CALLMULPSTORE1:MOVAX,Y 4.4.4 运算结果返回程序 以下程序将各运算子程序返回的运算结果,按位分解,送入X变量MOVDX,0MOVBX,1000DIVBXMOVX0, ALMOVAX,DXMOVBL,100DIVBLMOVX1,ALMOVAL,AHMOVAH,0MOVBL,
21、10DIVBLMOVX2,ALMOVX3,AHPOPBXPOPDXPOPAXRETOUTP ENDP4.4.5 运算键子程序以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量;或者将第二个运算数据的数值计算出来并存入X2变量;将运算符的值存入S变量COUNT PROCPUSHAXPUSHBXPUSHDXMOVDX,0CALLBITP ;测试X中的数据是多少位CMPCC,4 ;输入的数据是4位数 ?JZC4CMPCC,3 ;输入的数据是3位数 ?JZ C3CMPCC,2 ;输入的数据是2位数 ?JZC2JMPC1 ;输入的数据是1位数 ?C4:MOVAX,0MOVAL,X
22、0MOV BX,1000MUL BXMOV DX,AXC3:MOVAL,X1MOV BL,100MUL BLADD DX,AXC2:MOV AL,X2MOVBL,10MULBLADDDX,AXC1:MOVAL,X3MOVAH,0ADDDX,AXCMPE,1JNZX1_SMOVX2,DX ;按下的是等号,则将第二个运算数据的值存入X2变量JMPEXIT3X1_S:MOVX1,DX ;按下的是运算符号,则将第一个运算数据的值存X1变量MOVX3,0 ;清空X变量MOVX2,0MOVX1,0MOV X0,0EXIT3: POP DXPOPBXPOPAXRETCOUNT ENDP4.4.6 数字键子程
23、序以下为数字键处理子程序,该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数NUMBER PROCCMPE,1JNZCONTINUEMOVE,0CALLCLEARCONTINUE:CMPCC,0 ;目前数据为0位,即没有数据,则转到SSSJZSSSPUSHAXPUSHDXMOVAL,X3MOVAH,X2MOVDL,X1MOVDH,X0MOV CX,8LL:SHLAX, 1RCLDX,1LOOPLLMOVX3,ALMOVX2,AHMOVX1,DLMOVX0,DHPOPDXPOPAXSSS:MOV DI,DL ;将当前键入的数据存放到X的最低位INCCC ;数据位数加1CMPCC,4
24、;判断数据位数JNGEXIT2MOVCC,0 ;如果数据超过4位,重新从最低位开始存放MOVX2,0MOVX1,0MOV X0,0EXIT2: CALL DISP ;调显示子程序,显示输入的数据RETNUMBER ENDP4.5 运算程序设计4.5.1 加法子程序ADDP PROCPUSHAXMOVAX,X1ADDAX,X2MOVY,AXPOPAXRETADDP ENDP4.5.2减法子程序SUBP PROCPUSHAXMOVAX,X1SUBAX,X2MOV Y,AXPOP AXRETSUBP ENDP4.5.3乘法子程序MULP PROCPUSHAXPUSHDXMOV AX,X1MOVDX,
25、X2MULDXMOVY,AXPOPDXPOPAXRETMULP ENDP4.5.4 除法子程序DIVP PROCPUSHAXPUSHBXPUSHDXMOVDX,0MOV AX,X1MOVBX,X2DIV BXMOVY,AXPOP DXPOP BXPOP AXRETDIVP ENDP4.6 显示程序设计4.6.1 显示程序设计DISP PROCPUSHBXPUSH AXMOVBH,0LEA SI,DISCODECALLBITP ;测试X位数CMP CC,4JZ QIANCMP CC,3JZ BAICMP CC,2JZ SHICMP CC,1JMP GJMP NONEQIAN:MOVAH,B ;从第4位开始显示MOVAL,AHOUT 44H,ALMOV BL,X0MOV AL,SI+BXOUT 42H,ALCALL DELYMOV AL,0OUT 42H,ALBAI:MOVAH,B ;从第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代商业办公空间的照明艺术
- 现代办公设备与技术概览
- 残障者康复教育与社区资源的联动发展
- Module3 Unit1 What are they doing?(说课稿)-2024-2025学年外研版(三起)英语四年级上册
- 7 我是班级值日生(说课稿)-2024-2025学年统编版道德与法治二年级上册
- Unit 3 Its a colourful world!Part B Let's learn(说课稿)-2024-2025学年外研版(三起)(2024)英语三年级上册
- 2023六年级数学上册 二 分数乘法第3课时 分数与整数相乘说课稿 苏教版
- 5《这些事我来做》(说课稿)-部编版道德与法治四年级上册
- Unit5 My clothes Part A Lets talk (说课稿)-2023-2024学年人教PEP版英语四年级下册001
- 《1 有余数的除法-第二课时》(说课稿)-2023-2024学年二年级下册数学苏教版001
- 执行总经理岗位职责
- NS3000计算机监控系统使用手册
- 《妊娠期恶心呕吐及妊娠剧吐管理指南(2024年)》解读
- 《黑神话:悟空》跨文化传播策略与路径研究
- 《古希腊文明》课件
- 居家养老上门服务投标文件
- 长沙市公安局交通警察支队招聘普通雇员笔试真题2023
- 2025年高考语文作文满分范文6篇
- 零售业连锁加盟合同
- 2025高考语文复习之60篇古诗文原文+翻译+赏析+情景默写
- 成长型思维课件
评论
0/150
提交评论