串口调试助手上输入数据,然后再数码管显示(C语言版本)

来源:互联网 发布:俄罗斯4g网络制式 编辑:程序博客网 时间:2024/06/05 02:06

//串口调试助手上输入数据,然后再数码管显示
#include <reg52.h>
#include "uart.h"
 

//数码管从0-F
uint8 number[]={0x0c0,0x0F9,0x0A4,0x0B0,
    0x99,0x92,0x82,0xF8,
    0x80,0x90,0x88,0x83,
    0xC6,0xA1,0x86,0x8E};
uint16 n,m,num=0;
void UART_init()
{

 TMOD = 0x20;   //0010 0000   说明在定时器1的工作方式2下工作
 TH1  = 0xFD;
 TL1  = 0xFD;

 TR1  = 1;    //定时器1运行控制位=1,说明开始计时
 SCON = 0x50;   //0101 0000   前两位说明在串口工作方式1  第三位SM2在方式1设置为0  第四位REN=1允许串口接收
 ES=1;
 EA=1;
}

main()
{
 P0 = 0xFF;  // led初始化
 
 ENLED1 = 0;
 ENLED2 = 1; //3/8译码器使能

 ADDR2 = 0;
 ADDR1 = 0;
 ADDR0 = 0; //选中第一个数码管


    UART_init();

 while (1);
}

void uart_interrupt() interrupt 4
{
    if(TI==1)
  {
    TI=0;
    REN=1;
  }
  if(RI==1)
  {
    RI=0;
    num=SBUF;
    if(num>=48&&num<=57)
              P0=number[num%16];
    else if((num>=65&&num<=70)|| (num>=97&&num<=102))
         {
       P0=number[9+num%16]; 
   }
  else P0=0xFF;
    SBUF=num;
    REN=0;
  }
}

原创粉丝点击