分类:
2009-04-16 15:34:07
//=====================================================================
// 61 串口程序
//硬件连接: IOB7接51机的P3^1,接收上位机发来的的数据
// IOA13接LED模组的DIG6
// IOA0~IOA7接LED模组的SEG
//uart.spj
//writer:谷雨 2008年3月20日于EDA实验室
//=====================================================================
#include
const unsigned int digcode[10]={0x3F,0x06,0x5B,
0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned int data=0;
void LedDispDig(unsigned int pos,unsigned int da)
{
unsigned int ledcontrol=0x0100;
*P_IOA_Data=ledcontrol<<(pos-1);
*P_IOA_Data|=(digcode[da]);
}
int main()
{
asm("INT off");
*P_IOA_Data=0x0000;
*P_IOA_Dir=0xffff;
*P_IOA_Attrib=0xffff;
*P_IOB_Dir=0x0400; //设置IOB7为输入IOB10为输出
*P_IOB_Attrib=0x0480;
*P_IOB_Data=0x0000;
*P_UART_BaudScalarLow=0x0000;//设置波特率为9600bps
*P_UART_BaudScalarHigh=0x0005;
*P_UART_Command1=0x0000;//输入和输出使能设置
*P_UART_Command2=0x00c0;
while(1)
{
if(*P_UART_Command2&0x0080) //检测是否有数据接收
{
data=*P_UART_Data; //接收数据
data=data-0x30;
}
if(data<=9)
LedDispDig(6,data);
*P_Watchdog_Clear=0x0001;
}
}