串口 - 數碼管顯示 - ‘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)
2017-12-5 17:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|