单片机课程设计-利用proteus仿真一个数据通讯显示系统_第1页
单片机课程设计-利用proteus仿真一个数据通讯显示系统_第2页
单片机课程设计-利用proteus仿真一个数据通讯显示系统_第3页
单片机课程设计-利用proteus仿真一个数据通讯显示系统_第4页
单片机课程设计-利用proteus仿真一个数据通讯显示系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西北工业大学单片机课程设计实验报告学院: 电子信息学院 班级: 08031001 姓名: 杨 振 张功成 指导老师: 日期: 2013 年 06 月一. 题目:利用 proteus 仿真一个数据通讯显示系统1)系统基本功能要求1, 系统具有1路RS232串行通信接口;2, 系统能够完成接受信息的8位数码显示;3, 系统具有开始、停止等控制按键;2)课设目的学生通过实际动手对课程题目进行设计,巩固已有的单片机知识,进行课设的同时,熟练掌握proteus、虚拟串口(Virtual Serial Port Driver)和串口调试助手等软件的应用。培养学生动手能力,及发现问题、解决问题的能力。让知识

2、与实际想接轨,培养学生的学习兴趣。3)设计硬件要求1) 单片机:AT89C52;2) 输出锁存器:74LS373;3) RS232驱动器用MAX232;4) 键盘、显示接口:8279;二 设计方案1.总体模块上图是本次课设的设计方案原理图,图中COMPIM作为虚拟串口的输入,将输入的信息送入RS232串行数据通信接口。52单片机接收RS232送来的数据信息,并通过P0口发送出去,此时P0作为数据通信接口。同时51单片机像8279发出地址信息,选通8279的地址区域,其中,低8位地址信息通过P0口发送给8279,此时P0口作为地址通信接口。高8 位地址信息通过P2口送给8279,选中8279的地

3、址区域。8279将接收来的数据信息存在52单片机选中的FIFO RAM中,并通过一个LS74138译码器,将串口数据送入LED数码显示器中。LED数码显示器,通过74LS245作为驱动器,驱动数码管中的二极管发亮。2.串口发送模块:通过虚拟串口(Virtual Serial Port Driver),将串口调试助手与DB9相连,再将调试助手发送的数据通过串行口传入51的数据缓冲区SBUF。经测试发现不许用MAX232.采用定时器一工作于方式2来产生9600波特率。串行通信用方式一。3.连接模块:51单片机的P0口作为地址、数据复用总线,数据直接从P0口引出,送入到8279的AD0 AD7。同时

4、,P0送入373锁存器,输出Q0作为8279的A0端口的输入,从而实现对8279地址、数据信息的控制。 4.控制模块:8279的SL0 SL2作为74LS138的输入,译码生成8位数据,通过74LS245驱动器,作为数码管的位码。OUT_A0 OUT_B3 整体作为8位段码,通过74LS245驱动器,送给数码管进行数字显示。5.显示模块:8位共阴极数码管5) 原理图Figure 1 总设计图Figure 2 串口发送模块Figure 3 连接模块Figure 4连接模块Figure 5控制模块Figure 6显示模块6) 程序设计 ORG 0000H AJMP START ;转到初始化程序 O

5、RG 0023H AJMP PGUART ;转到串行中断服务子程序TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H A8279 EQU 7FFFH ;命令/状态口地址D8279 EQU 7FFEH ;数据口地址START: LCALL INIT8279 ;初始化8279 MOV SCON,#50H ;串口 方式 1 MOV TMOD,#20H ;T1 方式 1 MOV TL1,#0FDH ;波特率 9600 的常数 MOV TH1,#0FDH SETB TR1 ;启动定时器1 SE

6、TB EA ;开总终端 SETB ES ;开串行口终端 SJMP HERE ;初始化INIT8279: MOV DPTR, #A8279 MOV A,#0D1H ;清除命令MOVX DPTR, ALP: MOVX A, DPTR JB ACC.7, LP ;查清除结束标志 MOV A,#06H ;设显示器工作方式MOVX DPTR, AMOV A,#90H ;送显示RAM命令MOVX DPTR, A HERE: SJMP HERE ;等中断;中断服务程序 PGUART:MOV A, SBUF ;取串行数据 MOV DPTR,#TABLE ;转换为段码CLR CSUBB A, #30HMOVC

7、A,A+DPTR MOV DPTR,#D8279MOVX DPTR,A ;送显示RAM CLR RI ;清接收中断标志位DJNZ R5,HERE ;等待一组数据(8位)发送完毕 MOV R5, #08H RETIEND上述程序中采用中断方式取数。7) 存在问题1. 80C51单片机的P0口无法读入数据,始终显示高电平,从而无法将数据所存在74LS373中,也就无法对A0进行输入;2. 8279的OUT端口只有OUT_A1和OUT_B1工作3.鉴于以上原因,无法进行程序的调试工作,AJMP STEP SIX8) 其他方法进行实现1. 设计方案如果不使用单片机的P0口输出,而改成用P2口代替,这样

8、暂时不使用8279,仅采用80C51单片机和数码管进行直接的选通,由串行口发送数据,P2口数据作为位码;P1口数据作为段码,实现数码管的显示。2. 设计图3. 源代码下述程序采用查询方式取数 ORG 0000H AJMP START ;转到初始化程序TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;段码表 DB 7FH,6FHTAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH ;位码表START: MOV P2,#00H ;初始化P2口 MOV TMOD,#20H ;定时器T1工作于模式2,自动重装载 MOV TH1

9、,#0FDH ;TH1初值为"0FDH",9600bps MOV TL1,#0FDH ;TL1初值为"0FDH",9600bps MOV SCON,#50H ;串行口工作于方式1,允许接收 SETB TR1 ;启动定时器T1 SETB EA MOV R2,#08H ; 赋00H给RAM40H单元 MOV R0,#40H MOV A,#00HLOP: MOV R0,A INC R0 DJNZ R2,LOPAGAIN: ;循环初始化 MOV R0,#40H MOV R7,#40HLOOP: JBC RI,CHANGE ;查询是否有数据输入 A1: MOV D

10、PTR,#TAB ;显示器扫描 CLR C MOV A,R0 SUBB A,#40H MOVC A,A+DPTR MOV P2,A MOV A,R0 ;显示器显示 INC R0 MOV DPTR,#TABLE MOVC A,A+DPTR MOV P1,A MOV R4,#0FFH ;延时1ms,保证视觉暂留WAIT: NOP NOP DJNZ R4,WAIT MOV A,R0 CLR C SUBB A,#48H JC LOOP SJMP AGAIN CHANGE: MOV A,R7 ;根据发送数据修改显示数据 MOV R0,A MOV A,SBUF CLR C SUBB A,#30H MOV

11、R0,A INC R7 CLR C MOV A,R7 SUBB A,#48H JC A1 SJMP AGAIN END4.实验结果:输入学号:10301913修改数据:103019115.存在问题:发送一次数据可以成功显示,但是多次发送,则会出现数据顺序混乱;9) 两种方案的对比采用 8279的可视为硬件显示方法,充分利用了8279的显示功能,使得软件编程简单,但是增加了硬件开销,使得连线复杂。第二种方法属于软件显示方法,通过软件编程,来实现类似于8279的显示控制功能,硬件少,连线简单,但是付出的代价是软件编程要复杂。10) 输出显示驱动器:74LS245八.心得体会在课设的整个过程中我们遇

12、到了很多的问题,从一开始的无从下手,到逐渐整理思路,从学习别人的设计,到自己独立的进行设计,每一点进步自己都可以亲身感觉到。本次课设是对学过的单片机课程的一次实际检验,是一个将理论知识转化为实际的过程。在此过程中,我们不但复习的已学到的知识,更学到了新的知识,如proteus和串口调试助手的使用,提高了我们思考问题和解决问题的能力,巩固了我们已有的相关单片机方面的知识。在实践的过程中,我们明白了只有不断的尝试,不断的寻找问题的解决方法,才能做出满意的成绩,很多时候不是我们做不到,而是我们不相信自己能做到而从来都没有亲自尝试,但当我们下定决心去做一件事的时候,会发现并非是原本想象的那么困难,很多

13、时候我们输给了自己,大胆尝试、实践,我们才会不断的进步!在调试的过程中,出现过很多次错误,但我们没有气馁,通过咨询学习能力较强的同学之外还上网查阅资料不断分析没有出现预期结果的原因,并通过无数次的调试基本达到了预期效果附录:1、 键盘/显示器接口芯片82798279是Intel公司生产的通用可编程键盘和显示器接口芯片,利用8279可以实现实现对键盘和显示器的自动扫描,并识别键盘上闭合键的键号,完成显示器的动态扫描。不仅可以大大节省CPU对键盘和显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,因而广泛应用于实际的单片机应用系统中。8279为40 脚双列直插式封装,引脚图及逻辑符号

14、图如图如图所示: 图3.2.3 8279引脚图图3.2.4 8279 逻辑符号图8279工作原理:由SL0SL3输出键盘和显示器的扫描线,回复线RL0RL7作为键盘的列线以搜索闭合键将键盘数据送入FIFO存储器,有键闭合时数据进入FIFO存储器,使IRQ置位向CPU申请中断。显示缓冲区(RAM)存放显示数据的段码,数据轮流从显示寄存器输出,在SL0SL3的配合下,实现动态显示。(OUTA和OUTB)8279各功能部件如下:(1)I/O控制和数据缓冲器(2)控制寄存器、定时寄存器和定时控制(3)扫描计数器(4)返回缓冲器(5)FIFO(先进先出)/SENSOR RAM及状态码2、74LS373锁存器373为三态输出的八 D 透明锁存器,共有54S373 和 74LS373 两种线路。我们使用的是74LS373,其引脚图如下图3.2.5。 图3.2.5 74LS373引脚图 表3.2.1 74LS373真值表引出端符号:D0D7是数据输入端;/OE是三态允许控制端(低电平

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论