收藏 分销(赏)

单片机优秀课程设计实验单片机间串行通信.doc

上传人:精*** 文档编号:2697670 上传时间:2024-06-04 格式:DOC 页数:24 大小:1.49MB
下载 相关 举报
单片机优秀课程设计实验单片机间串行通信.doc_第1页
第1页 / 共24页
单片机优秀课程设计实验单片机间串行通信.doc_第2页
第2页 / 共24页
单片机优秀课程设计实验单片机间串行通信.doc_第3页
第3页 / 共24页
单片机优秀课程设计实验单片机间串行通信.doc_第4页
第4页 / 共24页
单片机优秀课程设计实验单片机间串行通信.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、单片机原理及应用课程设计汇报 课程设计题目:单片机间串行通信原理专业班级 :级电子信息科学和技术学生姓名 : 罗滨志 学 号 :12080051成 绩 : 年12 月 27日目 录摘 要11 设计任务11.1 功效要求21.2 总体方案及工作原理22 系统硬件设计221 器件选择22.1.1关键器件型号22.1.2 AT89C5132.1.3键盘输入电路52.1.4晶振电路方案62.1.5数码管显示62.1.6复位电路方案62.2 硬件原理图73 系统软件设计83.1基础原理83.2系统软件设计步骤图83.3 按键程序设计93.3.1串口通信程序设计:103.3.2 显示程序设计:103.4软

2、件清单103.41发送端程序103.42接收端程序134试验步骤144.1试验程序调试144.1.1发送端程序调试144.1.2接收端程序调试154.2试验仿真165设计总结176参考文件:17摘 要单片机自20世纪70年代问世以来,以其极高性能价格比,受到大家重视和关注,应用很广、发展很快。而AT89C51单片机是各单片机中最为经典和最有代表性一个,本设计是基于MCS51系列单片机中AT89C51所设计一个含有一个全双工串行通信口,能够实现单片机和单片机之间点对点串行通信,主从通信和上,下位机相互通信等。本设计基于单片机技术原理,以单片机芯片AT89C51作为关键控制器,由单片机和键盘控制数

3、码管显示,修改设置LED显示由按键开关控制,经过硬件电路制作和软件程序编制,设计制作一个简单单片机间串行通信。关键词:单片机 AT89C51 串行通信 1 设计任务单片机间串行通信,是工业自动化、智能终端、通信管理等领域传统且关键通讯手段。此次设计单片机串行通信,就是为了了解单片机工作原理,从而学会制作数字钟。此次课程设计经过理论设计和实物制作处理对应实际问题,巩固和利用在单片机原理和应用及C51程序设计中所学理论知识和试验技能,掌握单片机应用系统通常设计方法,提升设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好基础。1.1 功效要求设计一个单片机和单片机之间点对点串行通信

4、应用电路,要求按下发送端单片机键盘上按钮,该键键号经过串行异步通信传送到接收端单片机中,并在LED上显示出来,其晶振频率为6MHZ。1.2 总体方案及工作原理本设计2个相同单片机之间经过串口进行通信,经过按键输入要发送数据,该数据为数字,并可在数码管上显示出来,设置完后经过串口通信发送给另一个单片机,另一个单片机接收到后在数码管上显示出来,2个单片机能够相互发送数据,经过2个单片机系统数码管显示数字能够判定串口通信发送数据正确性。系统设计框图图2-1所表示。本设计关键由按键输入电路、单片机控制电路和数码管显示电路组成,2个单片机电路图完全相同,实现功效也相同,所以本文只介绍其中一块单片机电路设

5、计方法和串口通信原理。整个串行通信工作原理是:在正常供电状态下,首先利用发送端单片机读入键盘输入数据,在将读入数据传送到接收端,由单片机将所需要显示数据送到LED显示器输入口,当有键按下时则进入对应按键调整状态,进行按键调整。2 系统硬件设计21 器件选择2.1.1关键器件型号元件名称数量AT89C51芯片27SEG-MPX2-CA数码管16MHZ晶振(CRYSTAL)110uF电解电容(CAP-ELEC)130pF一般电容(CAP)274LS06六驱动器2200R电阻(RES)210K电阻(RES)15.1K电阻(RES)4按钮(BUTTON)16BUS22.1.2 AT89C51AT89C

6、51是一个带4K字节闪烁可编程可擦除只读存放器(FPEROM-FALSH PROGRAMMABLE AND ERASABLE READ ONLY MEORY)低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一个带4K字节闪烁可编程可擦除只读存放器单片机,单片机可擦除只读存放器能够反复擦除100次。该器件采取ATMEL高密度非易失存放器制造技术制造,和工业标准MCS-51指令集和输出管脚相兼容,AT89C51单片机包含中央处理器、程序存放器(ROM)、数据存放器(RAM)、定时/计数器、串行接口和中止系统等几大单元及数据总线、地址总线和控制总线等三大总线。其基础结构图1 图 1

7、AT89C51单片机基础结构AT89C51 是一个低电压,高性能CMOS 8 位单片机,片内含8kB 可反复擦写Flash 只读程序存放器和256B 随机存取数据存放器(RAM),器件采取ATMEL企业高密度、非易失性存放技术生产,和标准MCS-51 指令系统及8052 产品引脚兼容,片内置有通用8 位中央处理器(CPU)和Flash 存放单元。 图2 AT 89C51单片机引脚VCC/GND:供电电源。 P0口:能够被定义为数据/地址低八位,能够用于外部程序/数据存放器。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必需被拉高。 P1口:标准输

8、入输出I/O口,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:既可用于标准输入输出I/O,也可用于外部程序存放器或数据存放器访问时高八位地址。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:既能够作标准输入输出I/O,也可作为AT89C51部分特殊功效口, 管脚 备选功效 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中止0) P3.3 /INT1(外部中止1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存放器写选

9、通) P3.7 /RD(外部数据存放器读选通) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期高电平时间。 ALE/PROG:当访问外部存放器时,地址锁存许可输出电平用于锁存地址地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变频率周期输出正脉冲信号,此频率为振荡器频率1/6。PSEN:外部程序存放器选通信号。在由外部程序存放器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存放器时,这两次有效/PSEN信号将不出现。EA / VPP:当/EA保持低电平时,则在此期间外部程序存放器(0000H-FFFFH),不管是否有内部程序存放器。注意

10、加密方法1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存放器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器输入及内部时钟工作电路输入。 XTAL2:来自反向振荡器输出。2.1.3键盘输入电路键盘输入电路由发送端单片机接口“P0.0/P0.1/P0.2/ P0.3/ P0.4/ P0.5/ P0.6/ P0.7/四个按键组串联”组成,按下S1按键,LED显示器显示对应键盘值,同理其它15个按键如此。图3 键盘输入原理图2.1.4晶振电路方案 晶振电路功效在于给单片机提供振荡时钟信号,使单片机正常工作。本设计中采取了常见晶振电

11、路组成方案,具体以下图所表示。图4晶振电路2.1.5数码管显示引脚接口AP1.0BP1.1CP1.2DP1.3EP1.4FP1.5GP1.6DPP1.71R82R92.1.6复位电路方案 复位电路功效在于对单片机进行复位从而达成对整个电路复位功效。要达成目标则要求在复位按键按下后在RST引脚上要出现一个维持2个机器周期高电平4。考虑到能够利用电容电压不能突变(需要一定充放电时间),于是采取以下复位电路。图5复位电路2.2 硬件原理图3 系统软件设计3.1基础原理 它是利用单片机全双工串行通信口,实现单片机和单片机之间点对点串行通信,主从通信和上,下位相互通信。然后数码管把她们内容在对应位置显示

12、出来。在具体设计时按键采取中止方法工作,对LED显示在中止程序中实现,在发送端程序只是对键盘输入数据定义初始化,调用显示程序和控制程序初始化。本设计软件程序包含发送端程序、接收端程序、中止子程序、时钟显示子程序等等。另外电路中有按键控制程序。3.2系统软件设计步骤图 本系统软件设计分为发送机和接收机,发送机程序设计步骤图图6所表示,接收机程序设计步骤图图7所表示。数据发送完成?结束开始初始化读取数据送数码管显示数据发送至串口扫描按键NY 图6 发送端步骤图数据接收完成?结束开始初始化读取数据送数码管显示NY触发串口中止?NY图7 接收端步骤图3.3 按键程序设计单片机读取按键值方法有两种:查询

13、方法和中止方法。查询方法是利用键盘程序不停查询是否有按键按下,有按下则进入对应按键子程序进行数据处理,没有则一直循环查询;中止方法是将按键动作和单片机中止系统联络起来,有按键按下时,就引发单片机中止,使系统进入中止处理程序。本设计中有16个按键,且关键程序就是按键处理,所以采取查询方法来处理读取按键值程序。设计按键程序时,首先应注意是按键机械触点效应,原理上,按键按下时,单片机端口为低电平,不过因为按键机械触点效应,按键在断开和闭合瞬间会有抖动过程,这个过程会出现一系列负脉冲,这么会让单片机引发误判,因次,必需采取方法去掉按键抖动影响。去按键抖动常见有两种方法:硬件方法和软件方法。硬件方法通常

14、是并接电容,或加R-S触发器;软件去抖动通常采取延时方法,按键抖动过程通常连续5-10ms时间,在判定按键状态时,只要加一个5-10ms延时程序,再次判定按键是否状态不变,即可实现去抖动作用。本设计中选择软件延时方法去按键抖动。3.3.1串口通信程序设计:AT89C51串行口是一个全双工异步串行通信口,能够同时进行接收数据和发送数据,因为口内接收缓冲器和发送缓冲器在物理上是隔离,即是完全独立。能够经过访问特殊功效寄存器SBUF,来访问接收缓冲器和发送缓冲器。接收缓冲器还含有双缓冲功效,即它在接收第一个数据字节后,能接收第二个数据字节,不过,在它完成接收第二个数据字节以后,若第一个字节仍未取走,

15、那么该字节数据将丢失。对串行口控制关键包含对状态控制寄存器SCON、控制寄存器PCON、和串行数据寄存器SBUF设置。3.3.2显示程序设计:依据数码管驱动方法不一样,数码管送显方法有两种:静态送显和动态送显。静态显示驱动:静态驱动也称直流驱动,在静态显示驱动方法下,数码管共阴极或共阳极共同接地或接电源,每个数码管段选线和8位单片机并口连接。静态显示驱动方法占用单片机I/O端口比较多,通常在实用中不采取。动态显示驱动:数码管动态显示方法是将全部段选线并联在一起,由一个8位I/O口来控制,再利用单片机其它I/O口来作为数码管位选线。当单片机输出显示数字译码时,哪个数码管显示由单片机对位选通电路控

16、制来选择,所以将欲显示数码管位选通端选通,该数码管就会显示,其它数码管均不会亮。经过轮番控制各个数码管选通端使数码管轮番显示。在显示过程中,每个数码管显示时间为1-2ms,因为大家视觉暂留现象及发光二极管余晖效应,只要扫描速度够快,给人印象就是同时点亮,而且不会有闪烁感。3.4软件清单3.4.1发送端程序ORG 0000H AJMP STARTORG 0030HSTART: MOV SP,#50H 设置堆栈区为:50H-7FHCLR EA 关中止 MOV TMOD,#20H T1方法2 MOV TH1,#0E7H 波特率设置为:625bps MOV TL1,#0E7H MOV PCON,#0

17、SETB TR1 MOV SCON,#40H 设串口为方法1LOOP: NOPACALL KEYSCAN 调用键盘扫描程序KEYSCANMOV A,R7CJNE A,#0FFH,EXIT1 有按键按下,转EXIT1 实施 SJMP LOOP 主程序循环EXIT1: MOV SBUF,A 发送键号JNB TI,$CLR TISJMP LOOP 主程序循环NOPKEYSCAN: MOV P0,#0F0H 键盘扫描程序KEYSCAN,返回值存R7中MOV A,P0 有键按下返回对应键号,无键按下返回FFH,应键号CPL A ANL A,#0F0HJZ NOKEY 无按键按下,转NOKEY实施ACAL

18、L DEL10MS 调用延时10ms程序,软件去抖动MOV A,P0CPL AANL A,#0F0HJZ NOKEYMOV R3,A 闭合键列线状态送R3MOV R4,#11111110B 从P0.0=0开始扫描MOV R0,#4 循环扫描4次KLOOP1: MOV P0,R4ACALL DEL1MSMOV A,P0CPL AANL A,#0F0HJNZ KEYNUM MOV A,R4 RL A MOV R4,A 闭合键行线状态送R4 DJNZ R0,KLOOP1 SJMP NOKEYKEYNUM: MOV A,R3 计算列号,结果存在R3中 SWAP A MOV R3,#0 MOV R0,#

19、4KLOOP2: RRC A JC COL INC R3 DJNZ R0,KLOOP2 SJMP NOKEYCOL: MOV A,R4 计算列号,结果存在R4中 MOV R4,#0 MOV R0,#4KLOOP3: RRC A JNC ADDKEY INC R4 DJNZ R0,KLOOP3 SJMP NOKEYADDKEY: MOV A,R4 计算键号,键号=行号*4+列号 RL A RL A ADD A,R3 MOV R7,A 键号存R7中KLOOP4: MOV P0,#0F0H 等候按键释放 MOV A,P0 CPL A ANL A,#0F0H JNZ KLOOP4 RETNOKEY:

20、MOV R7,#0FFH 无键按下,FFH存R7中 RET 返回 NOPDEL1MS: MOV R6,#125 延时1ms子程序DEL: NOP NOP DJNZ R6,DEL RETDEL10MS: MOV R6,#5 延时10ms子程序DEL2: MOV R5,#125DEL1: NOP NOP DJNZ R5,DEL1 DJNZ R6,DEL2 RET END3.4.2接收端程序ORG 0000H AJMP START ORG 0023H AJMP SIO 调转到串行口中止实施 ORG 0030HSTART: MOV SP,#50H 设置堆栈区为:50H-7FH MOV A,#10 设置

21、显示初始字符为P MOV 30H,A INC A MOV 31H,A MOV TMOD,#20H T1工作方法2 MOV TH1,#0E7H 波特率设置625bps MOV TL1,#0E7H MOV PCON,#0 SETB TR1 MOV IP,#10H 设置串行口中止为高优先级 MOV IE,#90H 开串行口中止 MOV SCON,#50H 设串口为方法1LOOP: NOP ACALL DISP 调用显示子程序DISP SJMP LOOP 主程序循环DISP: MOV DPTR,#DISPTAB 显示子程序DISP MOV A,30H MOVC A,A+DPTR MOV P1,A CL

22、R P3.4 ACALL DEL1MS MOV A,#0FFH MOV P1,A SETB P3.4 MOV A,31H MOVC A,A+DPTR MOV P1,A CLR P3.5 ACALL DEL1MS MOV A,#0FFH MOV P1,A SETB P3.5 RETSIO: PUSH PSW 串行口中止服务程序SIO PUSH ACC JNB RI,EXIT CLR RI MOV A,SBUF 接收发送端传送来数据 MOV B,#10 将键号分解成两位存于31H和30H中 DIV AB JNZ EXIT2 MOV A,#11EXIT2: MOV 31H,A MOV A,B MOV

23、 30H,AEXIT: NOP CLR TI POP ACC POP PSW RETI 中止返回DEL1MS: MOV R6,#125 延时1ms子程序DEL: NOP NOP DJNZ R6,DEL RETDISPTAB: DB 0C0H,0F9H,0A4H 显示段码表,0,1,2 DB 0B0H,99H,92H 3,4,5 DB 82H,0F8H,80H 6,7,8 DB 90H,8CH,0FFH 9,P,熄灭 END4 试验步骤4.1试验程序调试4.1.1发送端程序调试在Keil软件中输入试验发送端参考程序,调试图8所表示:图8发送端程序调试图图8发送端程序调试图能够看出程序调试无错误,

24、所以将调试无错误发送端程序转换为HEX文件;4.1.2接收端程序调试在Keil软件中输入试验接收端参考程序,调试图9所表示:图9接收端程序调试图图9接收端程序调试图能够看出程序调试无错误,所以将调试无错误接收端程序转换为HEX文件;4.2试验仿真根据单片机间串行通信试验原理图在Proteus软件中连接对应源器件图10图10试验原理图将首先转换好发送端和接收端HEX文件下载到对应芯片中,在Proteus中仿真图形图11图11电路仿真图5 设计总结本设计介绍了一个单片机和单片机之间串行通信设计方法,论文首先介绍了单片机和单片机之间串行通信工作原理、软件和硬件实现、研究现实状况、串行通信概念和键盘输

25、入。关键是单片机和单片机之间串行通信方法和关键数据位说明,接着提出了可行设计方案,并从硬件电路设计及软件程序设计两个方面具体介绍了整个设计工作原理及设计过程,同时验证了方案可行性。经过此次单片机间串行通信试验设计,使我对单片机有愈加深刻了解,明白了软件和硬件配合使用,知道怎样去分析电路及调试程序,即使在设计过程中碰到很多困难,不过经过深入查阅相关资料,问题才得以处理,尽管最终设计不是那么完美,不是那么理想,但总体上来说实现了单片机间串行通信,基础上完成了试验原理所需要求,经过此次设计也使得自己明白软件和硬件相结合关键性,二者缺一不可,所以在实现硬件连接同时也要读懂软件所实现功效。6参考文件:1

26、蔡骏编著.单片机试验指导教程.安徽:安徽大学出版社,.7 2郭天祥编著. 新概念51单片机C语言教程. 北京:电子工业出版社,.13刘万松、曹晓龙.微型计算机原理及应用试验教程.四川:西南交通大学出版社,.84李全利编著.单片机原理和接口技术.第2版.北京:高等教育出版社,.15江思敏、陈明.Protel电路设计教程.第2版.北京:清华大学出版社,.126朱清慧,Proteus教程:电子线路设计、制版和仿真,清华大学出版社,.97郭文川,单片机原理和接口技术,中国农业出版社,.18 杨加国. 单片机原理和应用及C51程序设计. 清华大学出版社,(2)9 李光飞、楼然苗、胡佳文、谢象佐.单片机课程设计实例教程.北京:北京航空航天大学出版社,.9

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服