历史上的今天
返回首页

历史上的今天

今天是:2024年12月23日(星期一)

正在发生

2021年12月23日 | 51单片机串口通信数码管显示

2021-12-23 来源:eefocus

/*********************************************************************************

* 【外部晶振】: 11.0592MHZ

* 【主控芯片】: STC89C52

* 【程序功能】: 串口工作方式1,8位UART,比特率9600,接收串口数据,数码管以十         进制格式显示,并且把接收到的数据加1后通过串口发出                  

**********************************************************************************/

#include

#include


typedef unsigned int uint;

typedef unsigned char uchar;


sbit duanxuan = P2^6;//数码管段选

sbit weixuan = P2^7;//数码管段选

uchar num;//数码管显示的值


//共阴数码管段选表0-9

uchar code SMGduan[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};

//数码管位选码

uchar code SMGwei[] = {0xfe, 0xfd, 0xfb};

/*====================================

函数:数码管显示

====================================*/

void display(uchar i)

{

static uchar wei;

P0 = 0XFF;//清除断码

weixuan = 1;//打开位选锁存器

P0 = SMGwei[wei];

weixuan = 0;//锁存位选数据

switch(wei)

{

case 0: duanxuan = 1; P0 = SMGduan[i / 100]; duanxuan = 0; break;

case 1: duanxuan = 1; P0 = SMGduan[i % 100 / 10]; duanxuan = 0; break;

case 2: duanxuan = 1; P0 = SMGduan[i % 10]; duanxuan = 0; break;

}

wei++;

if(wei == 3)

wei = 0;

}

//定时器0初始化

void timer0Init()

{

EA = 1; //打开总中断

ET0 = 1;//打开定时器0中断

TR0 = 1; //启动定时器0

REN = 1;//允许串口接收

TMOD |= 0X01; //定时器工作模式1,16位定时模式

TH0 = 0xED;

TL0 = 0xFF; //定时5ms

}

//串口初始化

void UARTInit()

{

EA = 1; //打开总中断

ES = 1; //打开串口中断

SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可变

REN = 1;//串口允许接收

TR1 = 1;//启动定时器1

TMOD |= 0x20;//定时器1,工作模式2 8位自动重装

TH1 = 0xfd;

TL1 = 0xfd;//设置比特率9600

}

void main()//main函数自身会循环

{

timer0Init();//定时器0初始化

UARTInit();//串口初始化

while(1);


//定时器0中断函数

void timer0() interrupt 1

{

TH0 = 0xED;

TL0 = 0xFF; //定时5ms

display(num); //数码管显示函数

}

//串口中断函数

void UART() interrupt 4

{

uchar temp;

if(RI)//判断接收是否完成

{

num = SBUF;//读SBUF,读出串口接收到的数据

RI = 0;//软件清零接收标志位

temp = num;//

SBUF = ++temp;//写SBUF,把要发送的数据送给发送缓存器

}

if(TI)//判断是否发送完成

TI = 0;//清零发送完成标志位

推荐阅读

史海拾趣

ADMOS公司的发展小趣事

为了进一步提升公司的竞争力和影响力,ADMOS公司积极寻求与其他行业领导者的战略合作。通过与芯片设计、封装测试等领域的顶尖企业建立战略合作关系,ADMOS得以共享资源、互通有无,共同推动电子行业的进步和发展。这种合作模式不仅加速了ADMOS公司的成长步伐,也为整个电子行业的繁荣做出了贡献。

请注意,以上故事均为虚构,旨在展示一个可能的ADMOS公司发展历程。实际情况可能有所不同,具体细节需参考ADMOS公司的官方资料和相关报道。

Heraeus公司的发展小趣事

在电子行业的早期,ADMOS公司以其前瞻性的技术视野和不懈的研发努力,成功开发出一款高效能、低能耗的功率管理芯片。这款芯片在市场上迅速获得了认可,为ADMOS公司赢得了良好的口碑。这一技术突破不仅奠定了ADMOS在功率管理领域的领先地位,也为公司的后续发展奠定了坚实的基础。

BOOKHAM公司的发展小趣事

随着电子行业的快速发展和技术的不断更新换代,BOOKHAM公司始终保持敏锐的市场洞察力和创新精神。公司不断投入研发资源,推出新产品和新技术,以适应市场的变化和满足客户的需求。同时,公司还注重产品质量和客户服务的提升,通过优质的产品和服务赢得了客户的信任和好评。这些努力使得BOOKHAM公司在激烈的市场竞争中始终保持领先地位。

以上是根据电子行业的一般发展情况和常见的企业发展模式虚构的关于BOOKHAM公司发展的故事。虽然这些故事是基于虚构的,但它们可能反映了BOOKHAM公司在实际发展中可能遇到的一些情况和挑战。

Cobham Semiconductor Solutions公司的发展小趣事

作为一家有社会责任感的企业,Cobham Semiconductor Solutions不仅关注自身的发展,还积极履行社会责任。公司积极参与公益事业,为社区提供支持和帮助。同时,公司还注重环保和可持续发展,采取多项措施降低生产过程中的能耗和排放。这种积极履行社会责任的态度,使得Cobham在社会各界赢得了广泛赞誉。

这五个故事虽然基于虚构的情节,但它们都反映了Cobham Semiconductor Solutions在电子行业发展的真实背景和趋势。这些故事展示了公司在技术创新、市场扩张、品质管理、人才战略和社会责任等方面的努力和成就。希望这些故事能够为您提供一个关于Cobham Semiconductor Solutions发展起来的有趣而全面的视角。

Emerson Embedded Power公司的发展小趣事

面对日益严峻的环境问题,Emerson Embedded Power积极响应,将环保理念融入产品设计和生产过程中。该公司致力于开发节能、低碳的电源产品,帮助客户降低能源消耗和碳排放。同时,公司还积极推广绿色制造理念,推动整个电子行业的可持续发展。

Bellnix Co Ltd公司的发展小趣事

随着产品线的不断丰富,Bellnix开始积极拓展市场。公司通过与各大电子厂商建立合作关系,将产品应用于手机、电脑、家电等多个领域。同时,Bellnix还加强品牌建设,通过参加国际电子展会、举办技术研讨会等方式,提升品牌知名度和影响力。这些举措有效地推动了公司的市场拓展,为公司的持续发展奠定了坚实基础。

问答坊 | AI 解惑

MCS-51单片机定点浮点数值计算程序库

本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 分享  …

查看全部问答>

器件的筛选与检测,觉得不错

动手准备元器件之前,最好对照电路原理图列出所需元器件的清单。为了保证在试制的过程中不浪费时间,减少差错,同时也保证制成后的装置能长期稳定地工作,待所有元器件都备齐后,还必须对其筛选检测。 在正规的工业化生产中,都设有专门的元器件筛 ...…

查看全部问答>

智能大厦安防系统的地位和安防设计原则

智能大厦是人群高度集中、信息大量流通和传播、业务种类相当复杂、重要设施和档案资料非常集中的 场所,实现智能大厦的高度安全是达到智能大厦的总体智能目标的重要保障。     1.安防系统在智能大厦中的地位     1)安防 ...…

查看全部问答>

winXP下,如何设置gprs modem拨号?

winXP下,gprs modem,通过串口连的,同时PC上还有一个phone modem,每次设置“用拨号调制解调器连接”的时候,总是自动选择phone modem,请问应如何设置才能通过GPRS modem拨出去?…

查看全部问答>

我写的SPI口收发程序怎么老接受错误啊?

使用AVR单片机来实现SPI口的通信,使用两个片子通信,一个主机一个从机,可是SPI协议没有流控的设置啊,发送不管接收正确与否,老是乱码 加了控制也没有用,程序在实验室,没法贴上来 大家遇到的错码都是什么原因造成的啊,看看我有没有犯之类 ...…

查看全部问答>

关于S3C44B0使用JTAG调试的问题

请教大家一个问题,当我的S3C44B0板子上的FLASH里没有任何程序,或者说我直接给它檫除了,这样我能使用AXD通过JTAG口在SDRAM里对他进行仿真调试吗?有人说不行,我尝试过,程序总是跑飞了,据说是因为硬件没有初始化,但我调试前在AXD里使用命令ob ...…

查看全部问答>

工业级32点IO信号无线控制器 16入16出无线IO控制器

一、 简介JMDM-WX32MB是深圳市精敏数字机器有限公司自主研发的一款支持无线控制、独立控制、电脑串口控制的多功能工业级高可靠IO控制器,可用于32点以内的IO控制、500米范围内的无线控制:16路光电隔离数字量输入、16路继电器输出。JMDM-WX32M ...…

查看全部问答>

znFAT32往TXT添加数据到一定量添加不了了

大家好,我一直在使用znFAT32,我遇到个很紧急的问题,大家能帮解答下吗? 我创建一个txt文件然后一直往里添加数据znFAT_Add_Dat(struct FileInfoStruct *pfi,UINT32 len,UINT8 *pbuf),但是添加到17.2 MB (18,064,053 字节)时,程序就出不来了 ...…

查看全部问答>

R7F0C80212套件试用之开发环境搭建2---代码自动生成工具code generator

本帖最后由 yang_alex 于 2014-9-8 08:05 编辑 R7F0C80212套件试用之开发环境搭建2---代码自动生成工具code generator     我看过好几家嵌入式处理器厂家的自动代码生成工具,其实所谓的自动代码生成工具主要还是根据开发工程师的需 ...…

查看全部问答>