ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:267.97KB ,
资源ID:8158189      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8158189.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大学毕设论文单片机串行通信协议设计课程设计论文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大学毕设论文单片机串行通信协议设计课程设计论文.docx

1、大学毕设论文单片机串行通信协议设计课程设计论文摘要本文通过单片机的串口并经过MAX202电平转换,可实现两个单片机之间实时会话,半双工工作模式;程序中设有发送接收允许、自行校验,提高了通信的准确度;可以将接收数据储存并将储存数据进行读取,可储存99个数据;设有软件复位功能,防止程序走死。关键字:实时会话 自行校验 软件复位AbstractThrough and through the MAX202 chip serial level converter, enabling real-time conversation, half-duplex mode between two microcon

2、trollers; program features allow sending and receiving, self check and improve the accuracy of communication; may be receiving data storage and store data read, can store 99 data; has a software reset function to prevent the program go to die.Key words: live Session self-calibration software reset s

3、ession目录摘要 1Abstract 1目录 2第1章 课题概述 3第2章 总体设计方案 3第3章 硬件设计 33.1 单片机 33.2 UT62256CPCL芯片 33.3 单片机间串行通讯 43.4 按键与显示 43.5 软件复位 43.6 读取储存数据 4第4章 软件设计与调试 54.1 待机界面 54.2 通信协议 54.2.1 发送接收允许 54.2.2 自行校验 54.3软件复位 64.4 储存接收数据 64.5 读取接收数据 64.6 总程序框图 6第5章 结论 8第6章 参考文献 8程序 9第1章 课题概述单片机行业已经有了很久的历史,随着科学技术的进步和社会的发展,单片机

4、行业更加迅速的发展起来。不论在工业还是民也上都有很好的发展和应用,得到大家很好的认可和高度的评价。单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。串行通信按同步方式可分为异步通信和同步通信两种基本通信方式。它是在数字化的基础上用微处理器装备起来,是计算机技术与电子仪器相结合的产物。它具有数据存储、运算、逻辑判断能力,能根据被测参数的变化自选量程,可自动校正,自动补偿,自寻故障等,可以做一些需要人类的智慧才能完成的工作,既具备了一定的智能,故称为智能仪器。本课程设计通过单片机的串口并经过MAX202电平转换,可实现两个单片机之间实时会话,半双工工作模式,数码管显示发

5、送和接收过程。第2章 总体设计方案方案一:编写发送和接收程序,显示发送和接收数据。方案二:编写发送和接收程序,添加发送和接收允许程序和自行校验程序,显示发送和接收数据。方案三:编写待机界面,编写发送和接收程序,添加发送和接收允许程序和自行校验程序,显示发送和接收数据程序,储存接收数据程序,显示储存数据程序,软件复位程序。方案四:在方案三基础上添加看门狗程序。四个方案是这段时间内不断探索、循序渐进的结果,由于能力有限,添加看门狗程序后,程序一直复位,不知如何关闭看门狗,程序不能正常进行工作,最终选择方案三。第3章 硬件设计3.1 单片机本文使用STC12C5A60S2单片机,重要参数介绍:62K

6、B容量ROM,1280字节RAM,4个16位定时器,7路外部中断,8路10位精度ADC,有两个串口。3.2 UT62256CPCL芯片单片机接收数据存放在外部RAMUT62256CPCL芯片中,有32KB容量。3.3 单片机间串行通讯本文使用MAX202电平转换芯片,用RS-232接口进行串口通信,通信过程如图1所示。图13.4 按键与显示按键与显示使用芯片CH452。CH451是一个整合了数码管显示驱动和键盘扫描控制以及P监控的多功能外围芯片。CH451内置RC振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;同时还可以进行64键的键盘扫描;CH451通过可

7、以级联的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。3.5 软件复位使用STC12C5A60S2中的特殊功能寄存器IAP_CONTR可以实现,硬件上使用外部中断INT0,在中断程序改变IAP_CONTR的值实现软件复位,外部中断INT0的接口电路如图2所示。3.6 读取储存数据读取储存数据,硬件上使用外部中断INT1,在中断程序中读取储存数据,外部中断INT1的接口电路如图2所示。图2第4章 软件设计与调试4.1 待机界面当单片机开机或软件复位后,系统板上4个数码管会显示“HELLO”,开始显示“HELL”,一秒之后显示“ELLO”。4.2 通信协议本文单片机通信采用240

8、0的波特率,串行口工作方式为方式1,设有发送接收允许和自行校验。4.2.1 发送接收允许设两个进行实时回话的单片机分别为单片机A和单片机B,单片机A处于接收等待状态,单片机B处于发送状态,单片机B发送“8AH”,单片机A接收到“8AH”时发送“A8H”,当单片机B接收到“A8H”时表示建立通信关系可以发送数据。4.2.2 自行校验当两单片机建立通信关系时,单片机B发送数据的原码和反码,单片机A判断数据的原码和反码是否匹配,若匹配,单片机A发送“AAH”,当单片机B接收到“AAH”,表示发送数据正确;若数据的原码和反码不匹配,单片机A发送“55H”,当单片机B接收到“55H”,表示发送数据不正确

9、,单片机A系统板数码管显示“J-Er”,单片机B系统板数码管显示“F-Er”,单片机B重新发送数据的原码和反码。4.3软件复位软件复位使用STC125A60S2单片机的特殊功能寄存器IAP_CONTR,寄存器地址与位名称如图4所示,复位类型如图5所示。本文采用通过对 IAP_CONTR寄存器送入20H,SWBS=0,SWRET=1,产生的软件复位。图4图54.4 储存接收数据接收数据存放在外部UT62256CPCL芯片中,存放时将接收数据个数与接收的数据一起存放在外部RAM中,用寄存器间接寻址,由于系统板数码管有限,本课设可储存99个数据。4.5 读取接收数据读取数据时先读取数据个数,根据数据

10、个数和寄存器间接寻址首地址来读取数据,防止读取到外部RAM中的乱码。4.6 总程序框图总程序框图如图3所示,程序使用了串行口和两个中断。第5章 结论本课程设计的主要任务是设计单片机串行通讯系统协议。从一开始编写发送、接收程序到添加发送接收允许程序和校验程序,后来发现程序容易走死添加软件复位程序,单片机系统板有外部RAM又编写接收数据储存和读取程序,优化程序,使程序变得更完善。最终的程序下载到单片机中,通信时没有任何数据丢失或错误。我享受编程的乐趣和成功的喜悦,对单片机有了更深的了解,对我的编程能力和编程规范得到提高。第6章 参考文献1姚永平. STC12C5A60S2系列单片机器件手册. 宏晶

11、STC官方网站2常丽. 测控仪器与网络实验指导书. 沈阳工业大学3李群芳,肖看,张士军. 单片微型计算机与接口技术. 电子工业出版社程序CH451_DCLK BIT P1.7 ;串行数据时钟,上升沿激活 CH451_DIN BIT P1.6 ;串行数据输出,接 CH451 的数据输入 CH451_LOAD BIT P1.5 ;串行命令加载,上升沿激活 CH451_DOUT BIT P1.4 ;INT0,键盘中断和键值数据输入,接 CH451 的数据输出 CH451_KEY DATA 7FH ;存放键盘中断中读取的键值 IAP_CONTR DATA 0C7HWDT_CONTR EQU 0C1H;

12、* ORG 0000H AJMP MAIN ORG 0003H LJMP RESTART ORG 0013H LJMP SHU1 ORG 0030HMAIN: SETB IT0 SETB EX0 SETB IT1 SETB EX1 SETB EA MOV 55H,#00H MOV 57H,#00H ;记录接收的个数 ;调用外部RAM ACALL CH451_INIT ;调用初始化程序 LCALL CHUANKOU LCALL LIUSHUIKEYSHOW: ACALL SCAN1 MOV 54H,R4 MOV A,54H CJNE A,#00H,CC1 INC 55H MOV R5,#12 M

13、OV R4,#02H ACALL CHANGE MOV R5,#12 MOV R4,#03H ACALL CHANGE LCALL HUANSUANCC1: MOV A,54H CJNE A,#01H,CC2 MOV A,55H ADD A,#10 MOV 55H,A MOV R5,#12 MOV R4,#02H ACALL CHANGE MOV R5,#12 MOV R4,#03H ACALL CHANGE LCALL HUANSUANCC2: MOV A,54H CJNE A,#02H,CC3 LCALL JIESOUCC3: MOV A,54H CJNE A,#03H,KEYSHOW M

14、OV R5,#12 MOV R4,#02H ACALL CHANGE MOV R5,#10 MOV R4,#03H ACALL CHANGE LCALL FASONG LCALL HUANSUAN LJMP KEYSHOWSJMP $;* ; 初始化子程序 ;*CH451_INIT: CLR CH451_DIN ;先低后高,输出上升沿通知 CH451 选择 4 线串行接口 SETB CH451_DCLK ;置为默认的高电平 SETB CH451_DIN SETB CH451_LOAD SETB CH451_DOUT ;置为输入 CLR IT0 ;置外部信号为低电平触发 SETB PX0 ;置高

15、优先级或者低优先级 CLR IE0 ;清中断标志 SETB EX0 ;允许键盘中断 MOV B,#04H ;设置为键盘与显示开 MOV A,#03H ACALL CH451_WRITE RET CHANGE: MOV A,R5 ACALL TTA ;对应M2t1板的数码管转换 MOV R2,A MOV A,R4 ACALL TTB ;对应m2t1板的数码管位置转换 MOV B,A MOV A,R2 ACALL CH451_WRITE RETCHANGE1: MOV A,R5 ACALL TTA ;对应M2t1板的数码管转换 INC A MOV R2,A MOV A,R4 ACALL TTB ;

16、对应m2t1板的数码管位置转换 MOV B,A MOV A,R2 ACALL CH451_WRITE RET;M2T1板数码管对应表TTA: MOV DPTR,#TAB_A MOVC A,A+DPTR RET;对应m2t1板的数码管位置转换TTB: MOV DPTR,#TAB_B MOVC A,A+DPTR RET TAB_A: DB 07EH;0 DB 006H;1 DB 0BCH;2 DB 09EH;3 DB 0C6H;4 DB 0DAH;5 DB 0FAH;6 DB 00EH;7 DB 0FEH;8 DB 0DEH;9 DB 0E8H;F DB 036H;J DB 080H;- DB 0

17、F8H;E DB 0A0H;r DB 070H;L DB 0E6H;HTAB_B: DB 08H;0 显示数码管号 DB 09H;1 DB 0AH;2 DB 0BH;3SCAN1:MOV C,CH451_DOUT JC SCAN1 ACALL CH451_READ MOV R1,AC0: CJNE A,#40H,C1 MOV R4,#00H AJMP TESC1: CJNE A,#41H,C2 MOV R4,#01H AJMP TES C2: CJNE A,#42H,C3 MOV R4,#02H AJMP TES C3: CJNE A,#43H,SCAN1 MOV R4,#03H AJMP T

18、ESTES: RETCH451_WRITE: CLR EX0 ;禁止键盘中断 CLR CH451_LOAD ;命令开始,此命令可以放在后面 MOV R7,#08H ;将 ACC 中 8 位送出 CH451_WRITE_8: RRC A ;低位在前,高位在后 CLR CH451_DCLK MOV CH451_DIN,C ;送出一位数据 SETB CH451_DCLK ;产生时钟上升沿通知 CH451 输入位数据 DJNZ R7,CH451_WRITE_8 ;位数据未完继续 MOV A,B MOV R7,#04H ;将 B 中 4 位送出 CH451_WRITE_4: RRC A ;低位在前,高位

19、在后 CLR CH451_DCLK MOV CH451_DIN,C ;送出一位数据 SETB CH451_DCLK ;产生时钟上升沿通知 CH451 输入位数据 DJNZ R7,CH451_WRITE_4 ;位数据未完继续 SETB CH451_LOAD ;产生加载上升沿通知 CH451 处理命令数据 SETB EX0 ;允许键盘中断 RET CH451_READ: CLR EX0 ;禁止键盘中断 CLR CH451_LOAD ;命令开始 MOV A,#07H ;读取键值命令的高 4 位 0111B MOV R7,#04H ;忽略 12 位命令的低 8 位 CH451_READ_4: RRC

20、A ;低位在前,高位在后 CLR CH451_DCLK MOV CH451_DIN,C ;送出一位数据 SETB CH451_DCLK ;产生时钟上升沿锁通知 CH451 输入位数据 DJNZ R7,CH451_READ_4 ;位数据未完继续 SETB CH451_LOAD ;产生加载上升沿通知 CH451 处理命令数据 CLR A ;先清除键值单元以便移位 MOV R7,#07H ;读入 7 位键值 CH451_READ_7: MOV C,CH451_DOUT ;读入一位数据 CLR CH451_DCLK ;产生时钟下升沿通知 CH451 输出下一位 RLC A ;数据移入 ACC,高位在前

21、,低位在后 SETB CH451_DCLK DJNZ R7,CH451_READ_7 ;位数据未完继续 CLR IE0 ;清中断标志,读操作过程中有低电平脉冲 SETB EX0 ;允许键盘中断 RET ;* HUANSUAN: MOV A,55H CJNE A,#64H,XIAXIA:JC CHAO CLR C SUBB A,#64H MOV 55H,A CHAO: MOV A,55H MOV B,#0AH DIV AB MOV 51H,A MOV 50H,B MOV R5,50H ;将要显示的数放入R5中 MOV R4,#00H ;将要在第几位上显示放在R4中,最右边是0位 2013 LCA

22、LL CHANGE MOV R5,51H ;将要显示的数放入R5中 MOV R4,#01H ;将要在第几位上显示放在R4中,最右边是0位 2013 LCALL CHANGE RET;* CHUANKOU: MOV TMOD,#20H MOV TH1,#0E7H MOV TL1,#0E7H SETB TR1 RET;* FASONG: MOV SCON,#50HBUXU: MOV SBUF,#08AH ;允许接收? JNB TI,$ CLR TI JNB RI,$ CLR RI MOV A,SBUF CJNE A,#0A8H,BUXU LJMP TIAONO1: MOV R5,#14 MOV R

23、4,#00H LCALL CHANGE MOV R5,#13 MOV R4,#01H LCALL CHANGETIAO: MOV A,55H MOV SBUF,A ;发原码 JNB TI,$ CLR TI CLR C MOV A,#0FFH SUBB A,55H ;发反码 MOV SBUF,A JNB TI,$ CLR TI JNB RI,$ ;判断是否正确 CLR RI MOV A,SBUF CJNE A,#0AAH,NO1 MOV SCON,#40H RET;* JIESOU: MOV SCON,#50H MOV R5,#12 MOV R4,#00H LCALL CHANGE MOV R5

24、,#12 MOV R4,#01H LCALL CHANGE MOV R5,#12 MOV R4,#02H LCALL CHANGE MOV R5,#11 MOV R4,#03H LCALL CHANGEBUXU1: JNB RI,$ ;允许接收 CLR RI MOV A,SBUF CJNE A,#08AH,BUXU1 MOV SBUF,#0A8H JNB TI,$ CLR TICHONG: JNB RI,$ ;接收原码 CLR RI MOV 56H,SBUF JNB RI,$ ;接收反码 CLR RI MOV A,SBUF XRL A,56H CJNE A,#0FFH,CHUO LJMP DU

25、I1CHUO: MOV SBUF,#055H JNB TI,$ CLR TI MOV R5,#14 MOV R4,#00H LCALL CHANGE MOV R5,#13 MOV R4,#01H LCALL CHANGE LJMP CHONGDUI1: MOV SBUF,#0AAH JNB TI,$ CLR TI MOV A,56H MOV B,#0AH DIV AB MOV 51H,A MOV 50H,B MOV R5,50H ;将要显示的数放入R5中 MOV R4,#00H ;将要在第几位上显示放在R4中,最右边是0位 2013 LCALL CHANGE MOV R5,51H ;将要显示的

26、数放入R5中 MOV R4,#01H ;将要在第几位上显示放在R4中,最右边是0位 2013 LCALL CHANGE MOV A,56H ;放在外部RAM MOV R0,57H MOVX R0,A MOV A,57H INC A MOV R0,#20H ;个数放在外部RAM MOVX R0,A MOV 57H,A MOV SCON,#40H RET ;* RESTART : MOV IAP_CONTR,#00100000B RETI;* LIUSHUI: MOV R5,#15 MOV R4,#00H LCALL CHANGE MOV R5,#15 MOV R4,#01H LCALL CHAN

27、GE MOV R5,#13 MOV R4,#02H LCALL CHANGE MOV R5,#16 MOV R4,#03H LCALL CHANGE LCALL DELAY MOV R5,#0 MOV R4,#00H LCALL CHANGE MOV R5,#15 MOV R4,#01H LCALL CHANGE MOV R5,#15 MOV R4,#02H LCALL CHANGE MOV R5,#13 MOV R4,#03H LCALL CHANGE RET;* DELAY: MOV A,#66 MOV R2,A MOV R3,A MOV R1,ADELAY1: DJNZ R3,DELAY1 DJNZ R1,DELAY1 DJNZ R2,DELAY1 RET;*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1