void main()
{
allint();
Timer0Init();
UartInit();
while(1)
{
// sendstring(datas);
show_send();
}
}
void Timer0Init(void) //1毫秒@12.000MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x20; //设置定时初值
TH0 = 0xD1; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
EA=1;
ET0=1;
}
void UartInit(void) //9600bps@12.000MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xC7; //设定定时初值
TH1 = 0xFE; //设定定时初值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES=1;
}
void show_send()
{
seg[0]=seg[1]=seg[2]=seg[3]=seg[4]=seg[5]=0xff;
seg[6]=seg_display[datas/10];//hex是16进制
seg[7]=seg_display[datas%10];
}
void sendstring(unsigned char *p)
{
unsigned char index=0;
do
{
SBUF=p[index];
while(TI == 0);
TI = 0;
index
串口通信(发送与接收)-定时器1
于 2022-03-19 14:49:42 首次发布
本文详细探讨了如何利用定时器1进行串口通信,主要涉及发送与接收数据的实现方法,适合蓝桥杯参赛者及嵌入式硬件开发者学习。
摘要由CSDN通过智能技术生成