单片机课程设计报告书
※※※※※※※※※ ※※
※※
※ ※
※※※※※※※※※
单片机课程设计报告书
课题名称 姓 名 学 号 院、系、部 专 业 指导教师
双机之间的串行通信设计
201日
双机之间的串行通信设计
1、了解串行通信的工作原理 2、了解键盘设定的工作原理
3、掌握80C51的定时器1计数器1的编程 4、掌握电路板的实物焊接
随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。
对于莫一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,
单片机技术作为计算机技术的一个重要分支, 由于单片机体积小, 系统运行可靠, 数据采集方便灵活, 成本低廉等优点, 在通信中发挥着越来越重要的作用。但能在一些相对复杂的单片机应用系统中, 仅仅一个单片机资源是不够的, 往往需要两个或多个单片机系统协同工作。这就对单片机通信提出了很高要求。
二. 串行口及其扩展简介
1. 串行通信的基本特征是数据逐位顺序进行传送
2. 全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送
3.
串行通信的传送速率用于说明数据传送的快慢.
“波特率”表示每秒种传输离散信号事件的个数,或每秒信号电平的变化次数,单位为band (波特)。
“比特率”是指每秒传送二进制数据的位数,单位为比特/秒,记作bits/s或b/s或bps 。
在二进制的情况下,波特率与比特率数值相等 4.
SM0=1、SM1=0,选择方式2;
由TXD 引脚发送数据。
由RXD 引脚接收数据。
方式2波特率: 波特率=(2SMOD /64) ╳ fosc
二、设计要求
1. 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。串行口工作方式为方式1的全双工串行通信。
2. 两个单片机之间进行通讯波特率的设定,最终归结到对定时计数器T1计数初值TH1、TL1进行设定。故本题目本质上是通过键盘扫描得到设定的波特率,从而载入相应的T1计数初值TH1、TL1实现的。
3、要求发送方读入按键值,发送到接收方,接收方接受数据并显示在数码管上。
三、硬件电路设计 1. 所需元件
2. 硬件电路连接
四、流程图设计
1.1主机主程序 1.2键盘扫描子程序
2.1从机主程序
2.2数码管显示子程序
五、程序设计如下:主机
ORG 0000H
AJMP START
ORG 0030H
START: MOV TMOD, #20H MOV SCON, #40H CLR ES
MOV PCON, #00H MOV B, #0FAH CLR ET1 CLR TI SETB TR1 AGAIN1: AGAIN2: HE: LP1: LP2: LP3: JIAN: SMJP: MAIN1: MOV A, B MOV TH1,A MOV TL1,A LCALL JIAN MOV A, 33H MOV SBUF, A JNB TI, $ CLR TI
AJMP HE
CJNE A,, #0F3H, LP1 MOV B, #0F3H AJMP AGAIN1
CJNE A, #0FAH, LP2 MOV B, #0FAH, AJMP AGAIN1
CJNE A, #0FDH, LP3 MOV B, #0FDH AJMP AGAIN1
CJNE A, #0FEH, AGAIN2 MOV B, #0FEH AJMP AGAIN1 PUSH ACC PUSH PSW PUSH B CLR C
MOV 20H,#00H SETB C
MOV A, #11011111B MOV R4, A MOV R5, #00H MOV R7, #4H MOV DPTR,#8002H MOV A, R4
MOVX @DPTR, A MOV DPTR, #8001H
MOVX A, @DPTR ORL A, #0F0H CPL A JNZ ZJH
DJNZ R7, JZZ AJMP SMJP JZZ: MOV A, R4 RRC A
MOV R4, A INC R5
AJMP MAIN1
ZJH: CJNE A, #01H, AAA CLR C
AJMP HHW0
AAA: CJNE A, #02H, BBB CLR C
AJMP HHW1
BBB: CJNE A, #04H, STEP2 CLR C
AJMP HHW2
STEP2: CJNE A, #08H, OVER AJMP HHW3 HHW0: MOV A, R5 AJMP XS HHW1: MOV A, #4H ADD A, R5 AJMP XS HHW2: MOV A, #08H ADD A, R5 AJMP XS
HHW3: MOV A, #0CH ADD A, R5 AJMP XS XS: RL A
MOV DPTR, #TABLEB JMP @A+DPTR OVER: AJMP SMJP JPCL: JB 00H, XGSX AJMP SMJP
XGSX: JB 02H, XGSXSW MOV 34H, A JNB 02H, SMJP XGSXSW: JB 04H, ZHDJS MOV 35H, A
SW AP A
ORL A, 35H MOV 33H, A JNB 04H, SMJP
ZHDJS: POP B POP PSW POP ACC JS: RET
TABLEB: KEY0: KEY1: KEY2: KEY3: KEY4: KEY5: KEY6: KEY7: KEY8: KEY9: AJMP KEY0 AJMP KEY1 AJMP KEY2 AJMP KEY3 AJMP KEY4 AJMP KEY5 AJMP KEY6 AJMP KEY7 AJMP KEY8 AJMP KEY9 AJMP KEYA AJMP KEYB AJMP KEYC AJMP KEYD AJMP KEYE AJMP KEYF SETB 00H AJMP JPCL MOV A, #01H AJMP JPCL SETB 02H AJMP JPCL MOV A, #03H AJMP JPCL SETB 04H AJMP JPCL MOV A, #05H AJMP JPCL MOV A, #06H AJMP JPCL MOV A, #07H AJMP JPCL MOV A, #08H AJMP JPCL MOV A, #09H
KEYA: MOV A, #0AH AJMP JPCL
KEYB: MOV A, #0BH AJMP JPCL
KEYC: MOV A, #0CH AJMP JPCL
KEYD: MOV A, #0DH AJMP JPCL KEYE: MOV A, #0EH AJMP JPCL KEYF: MOV A, #0FH AJMP JPCL
从机 ORG 0000H
AJMP START ORG 0030H
START: MOV TMOD, #20H CLR ES
MOV SCON, #50H MOV B, #0FAH CLR ET1 CLR RI SETB TR1 AGAIN1: MOV A, B MOV TH1, A MOV LL1, A AGAIN2: JNB RI, $ CLR RI
MOV A, SBUF MOV 40H, A ANL A, #0F0H SWAP A
MOV 42H, A MOV A, 40H ANL A, #0FH MOV 41H, A LL: LCALL XIAN
MOV A, 40H
CJNE A, #0F3H, LP1
MOV B, #0F3H
AJMP AGAIN1
LP1: CJNE A, #0FAH, LP2
MOV B, #0FAH,
AJMP AGAIN1
LP2: CJNE A, #0FDH, LP3
MOV B, #0FDH
AJMP AGAIN1
LP3: CJNE A, #0FEH, AGAIN2
MOV B, #0FEH
AJMP AGAIN1
XIAN: MOV A, 42H
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV DPTR, #8004H
MOVX @DPTR, A
MOV DPTR, #8002H
MOV A, #02H
MOVX @DPTR, A
ACALL DELAY
MOV A, 41H
MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV DPTR, #8004H\
MOVX @DPTR, A
MOV DPTR, #8002H
MOV A, #01H
MOVX @DPTR, A
ACALL DELAY
RET
DELAY: MOV R7,#0FFH
MOVE: DJNZ R7, MOVE
RET
TABLE: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH, 77H, 7CH, DB 39H, 5EH, 79H, 71H, 73H, 3EH, 31H, 6EH, 76H, 38H
六、设计总结:
经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多收获。
经过课程设计,在查阅资料的过程中,更加牢靠的掌握了单片机的程序设计,了解了单片机串行通信的基本知识,对于以后的学习和工作都有很大的益
处。
在学习的过程中,也遇到了一些困难,比如一开始的时候使用protel 绘制电路图时,由于不熟悉导致了磕磕绊绊;还有就是因为发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了更深刻的认识。
通过这次课程设计,锻炼了自己独立思考的能力,也提高了团结协作的能力。
七、参考文献:
[1] 高峰. 单片微型计算机原理与接口技术. 科学出版社,2007
[2] 马丽. 焦永梅. 单片机仿真实验系统. 石家庄铁道大学四方学院,2011