历史上的今天
今天是:2024年12月24日(星期二)
2021年12月24日 | 51单片机实验1——数码管显示串行口接收的字符的ASCII码
2021-12-24 来源:eefocus
仿真电路图如下:
代码如下:
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
uint code segcode[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D, 0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
uchar code weicode[4]={0x0e,0x0d,0x0b,0x07};
uchar disbuf[4]={0,0,0,0}; //定义并初始化数码管数据缓冲区
void delayms(uint x) //延时1ms函数
{
uchar i;
while(x--)
{
for(i=0;i<125;i++);
}
}
void usart_Init( ) //串行中断初始化程序
{
TMOD=0x20;
TH1=0xfa;
TL1=0xfa; // 配置串口波特率为 9600
SCON=0x50; //设置串口工作在方式1,8位数据位
PCON=0x80; // 配置为波特率倍增
IE=0x90; // 打开中断
TR1=1; // 启动定时/计数器
}
void segdisplay() //数码管显示函数
{
uchar i;
for(i=0;i<4;i++)
{
P1=weicode[i];
P0=segcode[disbuf[i]];
delayms(1);
P0=0x00;
}
}
void main( ) //主函数
{
usart_Init( ); //串口初始化
while(1) { segdisplay(); } //CPU循环执行显示函数
}
void usart_Int( ) interrupt 4 //串行中断服务程序
{
if(RI==1) //判断是否为接收中断
{
uint temp; //临时开辟一段内存空间,用以存放接收到的数据
RI=0; //将RI及时置0,防止数据丢失
temp=SBUF; //读取接收数据缓冲器的内容到指定内存空间中
SBUF=temp; //将输入的数据重新发送到上位机,回显
while(TI==0);
TI=0; //等待发送完成将TI复位
disbuf[3]=disbuf[1];
disbuf[2]=disbuf[0];
disbuf[1]=temp/0x10;
disbuf[0]=temp%0x10; //修改显示缓冲区
}
}
运行仿真后,输入字符‘1’,数码管显示“31”,如图下:

依次输入其他字符会相应显示他们的ASCII码,输入第二个字符‘2’,数码管显示“3132”;输入第三个字符‘5’的话,数码管显示“3235”(将之前的31顶掉了),连续输入字符后依次类推。
史海拾趣
|
各位高手,最近在做一个大型PC软件移植到WINCE平台的项目,请教几个问题! 公司项目需要,最近一直在准备将公司原来的PC平台的一个软件移植到WINCE5.0下,由于软件很大,今天移植了一个模块,发现原来软件需要的winbase.h里的_lopen()函数在Wince的相应库里面没有实现,还有就是PC平台的setupapi.h在Wince平台下没有找到这 ...… 查看全部问答> |
|
一个简单的想法,可以存储不少能量 2月25日消息,桥梁始终暴露在自然环境下,经受着各种气候条件和天气状况的考验。令人感到不解的是,一直以来人们未曾想过借助这些巨大的人造结构利用生态友好型天然能源。现在,意大利设计师提出了建造 ...… 查看全部问答> |
|
我知道打广告不好,但是确实是非常不错的活动。 需要的同志们去买吧。 不是那么实惠我也不会发。 原价500的,目前特价限量促销中,一个208 2个-3个198 http://item.taobao.com/item.htm?id=15010483611… 查看全部问答> |
|
第二周beaglebone试用开发板芯片测试单桨时发现是假了 板子做好一段时间了之前没怎么理会它上的全性能测试M3 M4 系列它是兼优了无刷电机projcet的所以就没多大理会 结果今天应用它下载单桨测试程序是发现有问题老提示。。警告提示但我们买的芯片的型号是没问题的啊但想起以前我们遇到的问题一想起我觉的 ...… 查看全部问答> |
|
我用的是ti给的例程,在调的时候用CCS看变量的值,发现变量的值根本没变,我先看了一下变量的值,然后让他跑一会,再看。两个数组变量里面的值,根本没变。求哪位大神,给我指点一下,这个例程到底怎么用? #include \"DSP28x_Project.h\" & ...… 查看全部问答> |
|
Altera FPGA/CPLD设计(基础篇) 编辑 本书可作为高等院校通信工程、电子工程、计算机、微电子与半导体等专业的教材,也可作为硬件工程师和IC工程师的实用工具书,结合作者多年工作经验,系统地介绍了FPGA/CPL的基本设计方法。在介绍FPGA/CPLD ...… 查看全部问答> |




