Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71264
  • 博文数量: 27
  • 博客积分: 2015
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 19:36
文章分类

全部博文(27)

文章存档

2011年(1)

2010年(5)

2009年(16)

2008年(5)

我的朋友

分类:

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;
    }
}

阅读(584) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~