串口通信数码管显示输入数字

#include <reg52.h>

sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit PIN_PXD=P3^0;
sbit PIN_TXD=P3^1;
unsigned char LedChar[]={//数码管
    0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
    0x80, 0x90
};
unsigned char LedBuff[]={//
  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
void  send_buf(unsigned char *ch)//输出函数
{
   unsigned char i=0;
   for(i=0;i<10;i++)
   {
      SBUF=ch[i];//发送输出  输出完了为1
   while(~TI);//是否发送完成
     TI=0;//手动清零发送中断标志
   }
}
void Config(unsigned int baud)//串口通信配置函数,波特率
{
   SCON = 0x50;//配置串口函数为模式一
   TMOD &= 0x0F;//清零T1的控制位
   TMOD |= 0x20;//T1设为模式2
   TH1=256-(11059200/12/32)/baud;计算T1的重值
   TL1=TH1;初值等于重载值
   ET1=0;//禁止T1中断
   ES=1;//启用UART中断
   TR1=1;//启用定时器T1
}
unsigned int chuin=0;
void main()
{
 static unsigned char i=0;
  EA=1;//使能总中断
  ADDR3=1;
  ENLED=0;

Config(9600);
  while(1)
  {
       
      LedBuff[0]=LedChar[chuin%10];
    LedBuff[1]=LedChar[chuin/10%10];

P0=0xFF;
   switch (i)
   {
     case 0 :   ADDR2=0;ADDR1=0;ADDR0=0;i++; P0=LedBuff[0];break;
  case 1 :   ADDR2=0;ADDR1=0;ADDR0=1;i=0; P0=LedBuff[1];break;

default : break;
   }
  }
 
}
void inte() interrupt 4
{
 
  if(RI)//接收到字节  收完了为1
  {    
    chuin=SBUF;//收到的值附值给chuin
 chuin=chuin%16+(chuin/16)*10;//把十六进制变为十进制
     RI=0;// 手动清零接受终端标志
 
//    if(chuin)
//   P0=0;
// else if(SBUF==‘2‘)
//   P0=0xFF;

}
   
}

时间: 2024-10-08 08:57:56

串口通信数码管显示输入数字的相关文章

第一个app-进阶:1、让EditText屏蔽软键盘仍能光标闪动:2、EditText 的inputType参数类型(密码方式-隐藏显示、只允许输入数字等等)

EditText屏蔽软键盘后,光标消失问题 开始我有个需求:屏蔽系统软键盘 于是找到并使用这个方法: //edit_text1.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出//edit_text2.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出//edit_text3.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出 让三个EditText都成功地没有软键盘弹出. 后来我

只允许input框输入数字,输入其他的键的时候,直接不显示的方法

function numInteger(){ if((event.keyCode>=48 && event.keyCode<=57)  || (event.keyCode>=96 && event.keyCode<=105)) { return true; }else if(event.keyCode==8 || event.keyCode==9){     //保留回格键和tab键 return true; }else{ event.returnV

单片机编程:让led数码管显示数字0到9

led数码管在单片机系统中应用非常普遍,是由发光二极管构成的.数码管由7个发光二极管组成的一个"日"字形,如果需要显示小数点,那么就再加上一个点,就是8段数码管. 数码管显示亮度高,相应速度快,分共阴极和共阳极两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的. /*************************************************** *程序功能:点亮一个led数码管,让它显示数字从0到9 * *日期:2015.5.11 * *******

提示用户一直输入数字(默认为正整数),当用户输入end的时候显示当前输入数字中的最大值。

string input = ""; int max = 0; while (input != "end") { Console.WriteLine("请输入一个正整数,输入end的时候我们将输入当前的最大值:"); input = Console.ReadLine();//可能输入数字, end,或者乱七八糟的字符串. if (input != "end") { try { int number = Convert.ToIn

jquery正则表达式显示文本框输入范围 只能输入数字、小数、汉字、英文字母的方法

正则表达式限制文本框只能输入数字 许多时候我们在制作表单时需要限制文本框输入内容的类型,下面我们用正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等各类代码.1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">2.只能输入数字,能输

linux下串口通信与管理

linux下的串口与windows有一些区别,下面将介绍一下linux下串口通信管理 查看是否支持USB串口: #lsmod | grep usbserial 如果没有信息:sudo apt-get install setserial 插上USB转串口,在终端输入命令 #dmesg | grep ttyUSB0 如果出现连接成功信息,则说明系统已经识别该设备 一.找到自己的串口设备 查找自己的开发板与电脑的连接的COM口方法 Windows:设备管理器 linux: (1)dmesg #查看带有

单片机: EEPROM和串口通信

名称:IIC协议 EEPROM24c02 通过串口通信存数读取数据 内容:此程序用于检測EEPROM性能,測试方法例如以下:写入24c02一个数据,然后在内存中改变这些数据. 掉电后主内存将失去这些信息,然后从24c02中调入这些数据.看是否与写入的同样. 电脑通过串口发送一个十六进制的数据到单片机,存储进24c02,要求断电重新启动后在数码管上显示上一次发送的数据. (本例是1us机器周期,即晶振频率要小于12MHZ) #include <reg52.h> //头文件的包括 #include

单片机与控制实验(1)——数码管显示

一.实验目的和要求 初步学习和掌握MCS-51的体系结构和汇编语言,了解Keil编程环境和程序下载工具的使用方法.了解数码管输出的原理及编程方式. 二.实验设备 单片机测控实验系统 STC-ISP程序下载工具 Keil开发环境 三.实验内容 使用MCS-51汇编语言编写程序,完成如下功能: 1. 使用三个数码管显示十进制数值(001~999,可任意设置): 2. 每隔1秒,该数值自动减一,直到归零; 3. 归零后的下一秒,显示一个新的十进制数值(001~999,可任意设置): 4. 每隔1秒,新

LabVIEW串口通信

Instrument I/O 利用LabVIEW内置的驱动程序库和具有工业标准的设备驱动软件,可对 GPIB(通用接口总线).Ethernet(以太网)接口.RS-232(标准串行接口总线)/RS-485 等 I/O 仪器设备进行控制.在LabVIEW的仪器I/O子模板上提供了多种图标可对各种I/O仪器设备进行驱动. 在LabVIEW功能模板的Instrument I/O→Serial中包含进行串行通信操作的多个功能模块,如下图所示,分别可实现串口缓存检测.串口写.串口读.中断.串口设置.关闭串