标签:ar os 数据 on art amp as har c
//danny
#include <STC12C5A60S2.H>
sbit S0 = P1^0;
sbit S1 = P1^1;
sbit S2 = P1^2;
sbit S3 = P1^3;
unsigned int RXnum = 0; //数量
unsigned int TXnum = 0; //数量
unsigned char code LedChar[] = { //数码管显示字符转换表
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char RxdByte; //串口接收到的字节
void UartInit(void);
//void sendData();
//void sendString();
/* 主函数 */
void main()
{
EA = 1; //允许出现中断
ES = 1; //允许串口中断
UartInit();
S0=S1=S2=S3=1;
while(1){
S3=0;
P0 = LedChar[RXnum%10];
S0=S1=S2=S3=1;P0=0XFF;
S2=0;
P0 = LedChar[RXnum/10%10];
S0=S1=S2=S3=1;P0=0XFF;
S1=0;
P0 = LedChar[TXnum%10];
S0=S1=S2=S3=1;P0=0XFF;
S0=0;
P0 = LedChar[TXnum/10%10];
S0=S1=S2=S3=1;P0=0XFF;
}
}
/* UART初始化 */
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
BRT = 0xDC; //设定独立波特率发生器重装值
AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器
AUXR |= 0x10; //启动独立波特率发生器
}
/* UART 中断服务函数 */
void Uart_Isr() interrupt 4 using 1
{
//接收
if (RI){
RI = 0; //Clear receive interrupt flag
RXnum++;
RxdByte = SBUF;
SBUF = RxdByte;
}
//发送
if (TI){
TI = 0; //Clear transmit interrupt flag
TXnum++;
}
}
标签:ar os 数据 on art amp as har c
原文地址:http://my.oschina.net/qianglong/blog/341598