资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
西北工业大学单片机课程设计单片机课程设计 实验报告实验报告学院: 电子信息学院电子信息学院 班级: 姓名: 杨杨 振振 张功成张功成 指导老师: 日期: 20132013 年 0606 月一一. .题目题目:利用利用 proteus 仿真一个数据通讯显示系统仿真一个数据通讯显示系统1 1)系统基本功能要求)系统基本功能要求1,系统具有 1 路 RS232 串行通信接口;2,系统能够完成接受信息的 8 位数码显示;3,系统具有开始、停止等控制按键;2)课设目的)课设目的学生通过实际动手对课程题目进行设计,巩固已有的单片机知识, 进行课设的同时,熟练掌握 proteus、虚拟串口(Virtual Serial Port Driver)和串口调试助手等软件的应用。 培养学生动手能力,及发现问题、解决问题的能力。 让知识与实际想接轨,培养学生的学习兴趣。3 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 的地址区域。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。同时,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 0000HAJMP START ;转到初始化程序ORG 0023HAJMP 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 ;初始化 8279MOV SCON,#50H ;串口 方式 1MOV TMOD,#20H ;T1 方式 1MOV TL1,#0FDH ;波特率 9600 的常 数MOV TH1,#0FDHSETB TR1 ;启动定时器 1SETB EA ;开总终端SETB ES ;开串行口终端SJMP HERE ;初始化 INIT8279: MOV DPTR, #A8279 MOV A,#0D1H ;清除命令 MOVX DPTR, A LP: MOVX A, DPTR JB ACC.7, LP ;查清除结束标志MOV A,#06H ;设显示器工作方式 MOVX DPTR, AMOV A,#90H ;送显示 RAM 命令MOVX DPTR, AHERE: SJMP HERE ;等中断 ;中断服务程序 PGUART:MOV A, SBUF ;取串行数据MOV DPTR,#TABLE ;转换为段码 CLR C SUBB A, #30H MOVC A,A+DPTR MOV DPTR,#D8279MOVX DPTR,A ;送显示 RAMCLR RI ;清接收中断标志位 DJNZ R5,HERE ;等待一组数据(8 位)发送完毕MOV R5, #08H RETI END上述程序中采用中断方式取数。 7)存在问题1. 80C51 单片机的 P0 口无法读入数据,始终显示高电平,从而无法将数据所 存在 74LS373 中,也就无法对 A0 进行输入;2. 8279 的 OUT 端口只有 OUT_A1 和 OUT_B1 工作3.鉴于以上原因,无法进行程序的调试工作,AJMP STEP SIX8)其他方法进行实现其他方法进行实现1. 设计方案如果不使用单片机的 P0 口输出,而改成用 P2 口代替,这样暂时不使用 8279,仅采用 80C51 单片机和数码管进行直接的选通,由串行口发送数据,P2 口数据作为位码;P1 口数据作为段码,实现数码管的显示。2. 设计图3. 源代码 下述程序采用查询方式取数ORG 0000HAJMP 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,#0FDH ;TH1 初值为“0FDH“,9600bpsMOV TL1,#0FDH ;TL1 初值为“0FDH“,9600bpsMOV SCON,#50H ;串行口工作于方式 1,允许接收SETB TR1 ;启动定时器 T1SETB EA MOV R2,#08H ; 赋 00H 给 RAM40H 单元MOV R0,#40H MOV A,#00H LOP: MOV R0,AINC R0DJNZ R2,LOPAGAIN: ;循环初始化MOV R0,#40HMOV R7,#40HLOOP: JBC RI,CHANGE ;查询是否有数据输入A1: MOV DPTR,#TAB ;显示器扫描CLR CMOV A,R0SUBB A,#40HMOVC A,A+DPTRMOV P2,A MOV A,R0 ;显示器显示INC R0 MOV DPTR,#TABLE MOVC A,A+DPTRMOV P1,AMOV R4,#0FFH ;延时 1ms,保证视觉暂留 WAIT: NOPNOPDJNZ R4,WAITMOV A,R0CLR CSUBB A,#48HJC LOOPSJMP AGAIN CHANGE: MOV A,R7 ;根据发送数据修改显示数据MOV R0,AMOV A,SBUFCLR CSUBB A,#30HMOV R0,A INC R7CLR CMOV A,R7SUBB A,#48HJC A1SJMP AGAINEND4.实验结果:输入学号:修改数据:5.存在问题:发送一次数据可以成功显示,但是多次发送,则会出现数据顺序混乱;9) 两种方案的对比采用 8279 的可视为硬件显示方法,充分利用了 8279 的显示功能,使得软件编程简单,但是增加了硬件开销,使得连线复杂。第二种方法属于软件显示方法,通过软件编程,来实现类似于8279 的显示控制功能,硬件少,连线简单,但是付出的代价是软件编程要复杂。10)输出显示驱动器:74LS245八八.心得体会心得体会 在课设的整个过程中我们遇到了很多的问题,从一开始的无从下手,到逐 渐整理思路,从学习别人的设计,到自己独立的进行设计,每一点进步自己都 可以亲身感觉到。本次课设是对学过的单片机课程的一次实际检验,是一个将 理论知识转化为实际的过程。在此过程中,我们不但复习的已学到的知识,更 学到了新的知识,如 proteus 和串口调试助手的使用,提高了我们思考问题和解 决问题的能力,巩固了我们已有的相关单片机方面的知识。在实践的过程中, 我们明白了只有不断的 尝试,不断的寻找问题的解决方法,才能做出满意的成 绩,很多时候不是我们做不到,而是我们不相信自己能做到而从来都没有亲自 尝试,但当我们下定决心去做一件事的时候,会发现并非是原本想象的那么困 难,很多时候我们输给了自己,大胆尝试、实践,我们才会不断的进步!在调 试的过程中,出现过很多次错误,但我们没有气馁,通过咨询学习能力较强的 同学之外还上网查阅资料不断分析没有出现预期结果的原因,并通过无数次的 调试基本达到了预期效果附录:附录:1 1、键盘键盘/ /显示器接口芯片显示器接口芯片 827982798279是 Intel 公司生产的通用可编程键盘和显示器接口芯片,利用 8279 可以实现实现对键盘和显示器的自动扫描,并识别键盘上闭合键的键号,完成显示器的动态扫描。不仅可以大大节省 CPU 对键盘和显示器的操作时间,从而减轻 CPU 的负担,而且显示稳定,程序简单,因而广泛应用于实际的单片机应用系统中。8279 为 40 脚双列直插式封装,引脚图及逻辑符号图如图如图所示:图 3.2.3 8279 引脚图图 3.2.4 827
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号