1、 1 单片机课程设计单片机课程设计 单片机之间串行通信设计说明书单片机之间串行通信设计说明书 1.设计任务书设计任务书 题目:单片机间的串行通信 利用两台单片机实验平台完成两台单片机间点对点通信。 1.1 设计要求 (1)完成两台单片机间一主一从的单工通信。主机发送实验平台上开关 k0-k7 数据,从机 接收数据并在数码管上显示。 (2)完成两台单片机的双工通信。通信双方的任意单片机可同时发送和接受实验平台上开 关 k0-k7 数据,并将数据在各自的数码管上显示。 1.2 设计提示 (1)单片机间的串行通信可以通过将串口相互连接而实现。 (2)单片机之间的信号都是 TTL 电平,并不需要特别的
2、电平转换,单片机之间的串口可以 直接通过导线连接。但两者的 TXD 和 RXD 需要相互反接才能正常收发。 (3)特别提示:实验仪的串口已被 keil 占用,只能下载后全速运行。 2.总设计过程总设计过程 2.1 双机数据传送的电路图双机数据传送的电路图 2.2 设计电路主要组成设计电路主要组成 (1)晶振部分:在单片机的 XTAL1 和 XTAL2 引脚外接晶振就构成了自激振荡器并在 单片机内部产生时钟脉冲信号。 2 (2)复位部分:复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有 效的复位。本次设计采用上电复位。 2.3 单工双机通信的设计单工双机通信的设计 2.3.1 需要
3、器件 名称 数值 个数 型号 单片机 AT89C51 / 2 AT89C51 独立按键(可弹起的) / 8 BUTTON 电阻 R 10K 2 / 电阻 R 220 8 / 电容 C 30pF 4 / 电容 C 10uF 2 / 晶振 12MHz 2 CRYSTAL-XTAL18 LED / 8 / 3 2.3.2 双机单工通信流程 主机发送流程 4 从机接收流程 2.3.3 双击单工通信程序 主机发送程序: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV SCON,#40H MOV TMOD,#20H MOV TH1,#0FDH MOV
4、 TL1,#0FDH SETB TR1 MOV P1,#0FFH MOV 30H,#0FFH K0: MOV A,P1 5 CJNE A,30H,K1 SJMP K0 K1: MOV 30H,A MOV SBUF,A WAIT: JBC TI,K0 SJMP WAIT END 从机接收程序: ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV P1,#0FFH K0: JB RI,KK SJMP K0 KK: MO
5、V A,SBUF MOV P1,A CLR RI SJMP K0 END 6 2.3.4 proteus 调试与仿真 2.4 全双工通信设计全双工通信设计 2.4.1 实验需要器件 2.4.2 程序设计 根据设计要求,系统为双机全双工通信,因此两机的通信程序可以完全相同。 程序如下: 名称 数值 个数 型号 单片机 AT89C51 / 2 AT89C51 74LS240 / 4 74LS240 独立按键(可弹起的) / 16 BUTTON 电阻 R 10K 2 / 电阻 R 500 16 / 电容 C 30pF 4 / 电容 C 10uF 2 / 晶振 12MHz 2 CRYSTAL-XTAL
6、18 LED / 16 / 7 ORG 0000H JMP START ORG 0023H JMP UARTI START: MOV TMOD,#20H MOV TH1,#0E6H MOV TL1,#0E6H SETB TR1 MOV SCON,#50H MOV PCON,#80H MOV IE,#90H MOV R7,#0FFH READ-KEY: MOV A,P1 CJNE A,R7,KEY -IN SJMP READ-KEY KEY -IN: MOV R7,A MOV SBUF,A CPL A MOV P2,A TX-WAIT: JBC TI,READ-KEY SJMP TX-WAIT UARTI: PUSH Acc PUSH PSW JBC RI,RX-WAIT SJMP GOOD RX-WAIT: MOV A,SBUF CPL A MOV P2,A GOOD: POP PSW POP Acc RETI END 8 2.4.3 proteus 调试与仿真