51单片机两个定时都用上了怎么进行串口通信?单片机中串行口通信?
51单片机两个定时都用上了怎么进行串口通信?
51有三个定时器, 0,1,2 定时器1用于波特率发生器。 你可以用定时器0,和定时器2 串口程序:
#include <reg51.h> void InitUART(void) { TMOD = 0x20; SCON = 0x50; TH1 = 0xF3; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1; } void UARTInterrupt(void) interrupt 4 { if(RI) { RI = 0; //add your code here! } else TI = 0; } void SendOneByte(unsigned char c) { SBUF = c; while(!TI); TI = 0; }
单片机中串行口通信?
串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。
而在单片机中,有一个专门的串行口,用于异步通信方式(UART),与接收串行传输信息的外部设备相连,控制这个串行口的是两个寄存器,分别是状态寄存器和特殊功能寄存器。
状态寄存器(scon)有八位(每位有相应的地址),用于定义串行口的工作方式和接收,发送的控制工作方式方式0:八位同步移位寄存器:有允许信号时,寄存器中的存交换数据的八位同时以固定的波特率移动;(较常用)方式1:10位UART(波特率可变)
方式2:11位UART (波特率固定)方式3:11位UART(珀特率由定时器T1控制可变)波特率:串行通信中收发双方的数据传输率(即每秒传输多少数据)特殊功能寄存器(pcon)为了在51单片机上实现电源控制而附加的,功能有可以定义单片机得复位方式等。