大学毕设论文单片机串行通信协议设计课程设计论文Word文档下载推荐.docx
- 文档编号:21294433
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:22
- 大小:267.97KB
大学毕设论文单片机串行通信协议设计课程设计论文Word文档下载推荐.docx
《大学毕设论文单片机串行通信协议设计课程设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《大学毕设论文单片机串行通信协议设计课程设计论文Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
单片机行业已经有了很久的历史,随着科学技术的进步和社会的发展,单片机行业更加迅速的发展起来。
不论在工业还是民也上都有很好的发展和应用,得到大家很好的认可和高度的评价。
单片机的通信接口是各台仪表之间或仪表与计算机之间进行信息交换和传输的联络装置。
串行通信按同步方式可分为异步通信和同步通信两种基本通信方式。
它是在数字化的基础上用微处理器装备起来,是计算机技术与电子仪器相结合的产物。
它具有数据存储、运算、逻辑判断能力,能根据被测参数的变化自选量程,可自动校正,自动补偿,自寻故障等,可以做一些需要人类的智慧才能完成的工作,既具备了一定的智能,故称为智能仪器。
本课程设计通过单片机的串口并经过MAX202电平转换,可实现两个单片机之间实时会话,半双工工作模式,数码管显示发送和接收过程。
第2章总体设计方案
方案一:
编写发送和接收程序,显示发送和接收数据。
方案二:
编写发送和接收程序,添加发送和接收允许程序和自行校验程序,显示发送和接收数据。
方案三:
编写待机界面,编写发送和接收程序,添加发送和接收允许程序和自行校验程序,显示发送和接收数据程序,储存接收数据程序,显示储存数据程序,软件复位程序。
方案四:
在方案三基础上添加看门狗程序。
四个方案是这段时间内不断探索、循序渐进的结果,由于能力有限,添加看门狗程序后,程序一直复位,不知如何关闭看门狗,程序不能正常进行工作,最终选择方案三。
第3章硬件设计
3.1单片机
本文使用STC12C5A60S2单片机,重要参数介绍:
62KB容量ROM,1280字节RAM,4个16位定时器,7路外部中断,8路10位精度ADC,有两个串口。
3.2UT62256CPCL芯片
单片机接收数据存放在外部RAMUT62256CPCL芯片中,有32KB容量。
3.3单片机间串行通讯
本文使用MAX202电平转换芯片,用RS-232接口进行串口通信,通信过程如图1所示。
图1
3.4按键与显示
按键与显示使用芯片CH452。
CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片。
CH451内置RC振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;
同时还可以进行64键的键盘扫描;
CH451通过可以级联的串行接口与单片机等交换数据;
并且提供上电复位和看门狗等监控功能。
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通信协议
本文单片机通信采用2400的波特率,串行口工作方式为方式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”,表示发送数据不正确,单片机A系统板数码管显示“J-Er”,单片机B系统板数码管显示“F-Er”,单片机B重新发送数据的原码和反码。
4.3软件复位
软件复位使用STC125A60S2单片机的特殊功能寄存器IAP_CONTR,寄存器地址与位名称如图4所示,复位类型如图5所示。
本文采用通过对IAP_CONTR寄存器送入20H,SWBS=0,SWRET=1,产生的软件复位。
图4
图5
4.4储存接收数据
接收数据存放在外部UT62256CPCL芯片中,存放时将接收数据个数与接收的数据一起存放在外部RAM中,用寄存器间接寻址,由于系统板数码管有限,本课设可储存99个数据。
4.5读取接收数据
读取数据时先读取数据个数,根据数据个数和寄存器间接寻址首地址来读取数据,防止读取到外部RAM中的乱码。
4.6总程序框图
总程序框图如图3所示,程序使用了串行口和两个中断。
第5章结论
本课程设计的主要任务是设计单片机串行通讯系统协议。
从一开始编写发送、接收程序到添加发送接收允许程序和校验程序,后来发现程序容易走死添加软件复位程序,单片机系统板有外部RAM又编写接收数据储存和读取程序,优化程序,使程序变得更完善。
最终的程序下载到单片机中,通信时没有任何数据丢失或错误。
我享受编程的乐趣和成功的喜悦,对单片机有了更深的了解,对我的编程能力和编程规范得到提高。
第6章参考文献
[1]姚永平.STC12C5A60S2系列单片机器件手册.宏晶STC官方网站
[2]常丽.测控仪器与网络实验指导书.沈阳工业大学
[3]李群芳,肖看,张士军.单片微型计算机与接口技术.电子工业出版社
程序
CH451_DCLKBITP1.7;
串行数据时钟,上升沿激活
CH451_DINBITP1.6;
串行数据输出,接CH451的数据输入
CH451_LOADBITP1.5;
串行命令加载,上升沿激活
CH451_DOUTBITP1.4;
INT0,键盘中断和键值数据输入,接CH451的数据输出
CH451_KEYDATA7FH;
存放键盘中断中读取的键值
IAP_CONTRDATA0C7H
WDT_CONTREQU0C1H
;
****************************************************************************
ORG0000H
AJMPMAIN
ORG0003H
LJMPRESTART
ORG0013H
LJMPSHU1
ORG0030H
MAIN:
SETBIT0
SETBEX0
SETBIT1
SETBEX1
SETBEA
MOV55H,#00H
MOV57H,#00H;
记录接收的个数;
调用外部RAM
ACALLCH451_INIT;
调用初始化程序
LCALLCHUANKOU
LCALLLIUSHUI
KEYSHOW:
ACALLSCAN1
MOV54H,R4
MOVA,54H
CJNEA,#00H,CC1
INC55H
MOVR5,#12
MOVR4,#02H
ACALLCHANGE
MOVR4,#03H
LCALLHUANSUAN
CC1:
CJNEA,#01H,CC2
MOVA,55H
ADDA,#10
MOV55H,A
CC2:
CJNEA,#02H,CC3
LCALLJIESOU
CC3:
CJNEA,#03H,KEYSHOW
MOVR5,#10
LCALLFASONG
LJMPKEYSHOW
SJMP$
初始化子程序
****************************************************************************
CH451_INIT:
CLRCH451_DIN;
先低后高,输出上升沿通知CH451选择4线串行接口
SETBCH451_DCLK;
置为默认的高电平
SETBCH451_DIN
SETBCH451_LOAD
SETBCH451_DOUT;
置为输入
CLRIT0;
置外部信号为低电平触发
SETBPX0;
置高优先级或者低优先级
CLRIE0;
清中断标志
SETBEX0;
允许键盘中断
MOVB,#04H;
设置为键盘与显示开
MOVA,#03H
ACALLCH451_WRITE
RET
CHANGE:
MOVA,R5
ACALLTTA;
对应M2t1板的数码管转换
MOVR2,A
MOVA,R4
ACALLTTB;
对应m2t1板的数码管位置转换
MOVB,A
MOVA,R2
RET
CHANGE1:
INCA
M2T1板数码管对应表
TTA:
MOVDPTR,#TAB_A
MOVCA,@A+DPTR
TTB:
MOVDPTR,#TAB_B
TAB_A:
DB07EH;
0
DB006H;
1
DB0BCH;
2
DB09EH;
3
DB0C6H;
4
DB0DAH;
5
DB0FAH;
6
DB00EH;
7
DB0FEH;
8
DB0DEH;
9
DB0E8H;
F
DB036H;
J
DB080H;
-
DB0F8H;
E
DB0A0H;
r
DB070H;
L
DB0E6H;
H
TAB_B:
DB08H;
0显示数码管号
DB09H;
DB0AH;
DB0BH;
3
SCAN1:
MOVC,CH451_DOUT
JCSCAN1
ACALLCH451_READ
MOVR1,A
C0:
CJNEA,#40H,C1
MOVR4,#00H
AJMPTES
C1:
CJNEA,#41H,C2
MOVR4,#01H
AJMPTES
C2:
CJNEA,#42H,C3
C3:
CJNEA,#43H,SCAN1
TES:
CH451_WRITE:
CLREX0;
禁止键盘中断
CLRCH451_LOAD;
命令开始,此命令可以放在后面
MOVR7,#08H;
将ACC中8位送出
CH451_WRITE_8:
RRCA;
低位在前,高位在后
CLRCH451_DCLK
MOVCH451_DIN,C;
送出一位数据
产生时钟上升沿通知CH451输入位数据
DJNZR7,CH451_WRITE_8;
位数据未完继续
MOVA,B
MOVR7,#04H;
将B中4位送出
CH451_WRITE_4:
DJNZR7,CH451_WRITE_4;
SETBCH451_LOAD;
产生加载上升沿通知CH451处理命令数据
CH451_READ:
命令开始
MOVA,#07H;
读取键值命令的高4位0111B
忽略12位命令的低8位
CH451_READ_4:
产生时钟上升沿锁通知CH451输入位数据
DJNZR7,CH451_READ_4;
CLRA;
先清除键值单元以便移位
MOVR7,#07H;
读入7位键值
CH451_READ_7:
MOVC,CH451_DOUT;
读入一位数据
CLRCH451_DCLK;
产生时钟下升沿通知CH451输出下一位
RLCA;
数据移入ACC,高位在前,低位在后
SETBCH451_DCLK
DJNZR7,CH451_READ_7;
清中断标志,读操作过程中有低电平脉冲
HUANSUAN:
CJNEA,#64H,XIA
XIA:
JCCHAO
CLRC
SUBBA,#64H
MOV55H,A
CHAO:
MOVB,#0AH
DIVAB
MOV51H,A
MOV50H,B
MOVR5,50H;
将要显示的数放入R5中
MOVR4,#00H;
将要在第几位上显示放在R4中,最右边是0位2013
LCALLCHANGE
MOVR5,51H;
MOVR4,#01H;
LCALLCHANGE
CHUANKOU:
MOVTMOD,#20H
MOVTH1,#0E7H
MOVTL1,#0E7H
SETBTR1
FASONG:
MOVSCON,#50H
BUXU:
MOVSBUF,#08AH;
允许接收?
JNBTI,$
CLRTI
JNBRI,$
CLRRI
MOVA,SBUF
CJNEA,#0A8H,BUXU
LJMPTIAO
NO1:
MOVR5,#14
MOVR5,#13
TIAO:
MOVSBUF,A;
发原码
MOVA,#0FFH
SUBBA,55H;
发反码
MOVSBUF,A
JNBRI,$;
判断是否正确
CJNEA,#0AAH,NO1
MOVSCON,#40H
JIESOU:
MOVR5,#11
BUXU1:
JNBRI,$;
允许接收
CJNEA,#08AH,BUXU1
MOVSBUF,#0A8H
CHONG:
接收原码
MOV56H,SBUF
接收反码
XRLA,56H
CJNEA,#0FFH,CHUO
LJMPDUI1
CHUO:
MOVSBUF,#055H
LJMPCHONG
DUI1:
MOVSBUF,#0AAH
MOVA,56H
MOVA,56H;
放在外部RAM
MOVR0,57H
MOVX@R0,A
MOVA,57H
MOVR0,#20H;
个数放在外部RAM
MOV57H,A
RESTART:
MOVIAP_CONTR,#00100000B
RETI
LIUSHUI:
MOVR5,#15
MOVR5,#16
LCALLDELAY
MOVR5,#0
DELAY:
MOVA,#66
MOVR3,A
DELAY1:
DJNZR3,DELAY1
DJNZR1,DELAY1
DJNZR2,DELAY1
***************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 论文 单片机 串行 通信协议 设计 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)