单片机原理及接口技术-第7章课件.ppt
文本预览下载声明
数制转换 串行口方式3 1 1 0 0/1 0 0 0 0 C0H/D0H 中断设置:允许串行口、定时器T0中断 1 0 0 1 0 0 0 0 90H 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 程序设计思想——采用中断方式 1.发送方 (1)主程序 ①设置相关SFR; ②读出P1口开关状态作为发送数据,确定第9位TB8,将发送数据放入SBUF; (2)中断服务程序 ① TI清0, ② 作主程序②相同的事。 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 2.接收方 (1)主程序 ①主程序中,设置相关SFR; (2)中断服务程序 ① RI清0; ② 读出SBUF中的接收数据,并进行偶检验:RB8 = P,接收正确, RB8≠P,接收出错; ③若接收正确,将接收数据从P1输出控制LED。 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 (1). 甲机发送程序 ORG 0000H LJMP MAIN ORG 0023H ;串行口中断地址 LJMP COM_INT 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 MAIN: MOV SP,#60H ;设置堆栈指针 MOV TMOD,#20H ;设置定时器工作方式 MOV TH1,#0FDH ;设置计数器初值 MOV TL1,#0FDH MOV PCON,#00H ;波特率不加倍 SETB TR1 ;启动T1计数器计数 MOV SCON,#0C0H ;设置串行口工作方式3 MOV IE,#90H ;开中断, 仅允许串行口中断 MOV P1,#0FFH ;要输入,先输出“1” MOV A,P1 ;读出P1口 MOV C,P ; A中“1” 和P中“1” 一定是偶数 MOV TB8,C ; 校验位送TB8,采用偶校验 MOV SBUF,A ; 发送一次 HERE: SJMP HERE 波特率设置 COM_INT: CLR TI ;发送中断标志位TI清0 MOV A,P1 MOV C,P ; A中1的个数为奇数,P=1 MOV TB8,C ; 校验位送TB8,采用偶校验 MOV SBUF,A ;启动发送 RETI ;中断返回 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 (2). 乙机接收程序 ORG 0000H LJMP MAIN ORG 0023H ;串行口中断地址 LJMP COM_INT 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 MAIN: MOV SP,#60H ;设置堆栈指针 MOV TMOD,#20H ;设置定时器工作方式 MOV TH1,#0FDH ;设置计数器初值 MOV TL1,#0FDH MOV PCON,#00H ;波特率不加倍 SETB TR1 ;启动T1计数器计数 MOV SCON,#0D0H ;设置串行口工作方式,开启接收 MOV IE,#90H ;开中断, 仅允许串行口中断 HERE: SJMP HERE 波特率设置 COM_INT: CLR RI ; 接收中断标志位RI清0 MOV A,SBUF ; 接收的数据送A JNB P,L1 ; P=0,转L1 JNB RB8,L3 ; P=1,RB8=0,出错 SJMP L2 ; P=1,RB8=1,正确 L1: JB RB8,L3 ; P=0,RB8=1,出错 L2: MOV P1,A ; 接收数据正确,控制LED L3: RETI 7.5 串行口的编程和应用 7.5.2 双机串行通信软件编程 7.5 串行口的编程和应用 7.5.2 双机串行通
显示全部