串口 - 数码管显示 - ‘a’结束符
单片机源程序如下:
- #include "stc15.h"
- #include "intrins.h"
- #include "gpio.h"
- #include "uart.h"
- #include "595hc.h"
- #include "stdlib.h"
- u16 counter = 0;
- u8 i=0,j,k;
- u8 number;
- ///********************** Timer0初始化 ************************/
- void Timer0Init(void) //1毫秒 @11.0592MHz
- {
- AUXR = 0x80; //定时器时钟1T模式
- TMOD = 0x00; //设置定时器模式
- TL0 = 0xCD; //设置定时初值
- TH0 = 0xD4; //设置定时初值
- EA = 1; //开启总中断
- ET0 = 1; //允许定时器0中断
- TF0 = 0; //清除TF0标志
- TR0 = 1; //定时器0开始计时
- }
- ///********************** Timer0中断函数 ************************/
- void timer0 (void) interrupt 1
- {
- counter++;
- DisplayScan();
- }
- void main(void)
- {
- GPIO();
- Timer0Init();
- UART1_config(); // 使用Timer2做波特率.
- EA = 1; //允许全局中断
- printf1("********Welcome!********\r\n");
- for (k = 0; k < 8; k++) LED8[k] = 17;
-
- while (1)
- {
- number = 0;
- if((TX1_Cnt != RX1_Cnt) && (!B_TX1_Busy)) //收到数据, 发送空闲
- {
- if(RX1_Buffer[TX1_Cnt] != 'a')//以字符"a"作为结束符
- {
- SBUF = RX1_Buffer[TX1_Cnt];
- B_TX1_Busy = 1;
- /********************************************************/
- if(i < 8) //数码管显示
- {
- LED8[i++] = RX1_Buffer[TX1_Cnt] - 48;
- }
- else
- {
- i = 0;
- LED8[i++] = RX1_Buffer[TX1_Cnt] - 48;
- }
- /********************************************************/
- if(++TX1_Cnt >= UART1_BUF_LENGTH) TX1_Cnt = 0;
- }
- else
- {
- for (k = TX1_Cnt; k < 8; k++) LED8[k] = 17;
- TX1_Cnt = 0;
- RX1_Cnt = 0;
- i = 0;
- }
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
串口 - 数码管显示 - ‘a’结束符.rar
(33.08 KB, 下载次数: 7)
|