【51单片机】 数据管显示HELLO.

这篇博客介绍了如何在51单片机上通过C语言编写程序,利用锁存器74HC573控制数据管显示“HELLO.”。内容包括软件和硬件准备,程序解析,头文件reg52.h中的特殊功能寄存器,锁存器工作原理,C51数据类型扩展定义,以及延时函数的实现。博主还分享了学习单片机的经验和代码细节,帮助读者理解单片机数据管显示的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件准备+硬件准备

软件:1.Keil软件v6.12(与书中版本保持一致方便学习,如果喜欢别的版本也可以下载别的)

      2. STC-ISP(将十六进制代码写到单片机上)

硬件:TX-1C(书本推荐,并非本人广告)

【学习单片机,你起码得有块单片机的板子吧…也不一定是自己的,借别人的也可以】


HELLO.程序

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;                           //申明U1锁存器的锁存端
sbit wela=P2^7;                           //申明U2锁存器的锁存端
  
void delayms(uint xms){                  //延时函数
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}                    
void main()
{
while(1)
{
dula=1;
P0=0x76;               //送段选数据,显示H
dula=0;                
P0=0xff;               //原来段选数据通过位选锁存器造成混乱,专业术语叫"消影"
wela=1;                
P0=0xfe;               //送位选数据
wela=0;        
delayms(1);            //延时

dula=1;
P0=0x79;              //送段选数据,显示E
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(1);

dula=1;
P0=0x38;              //送段选数据,显示L
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delayms(1);

dula=1;
P0=0x38;               //送段选数据,显示L
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(1);

dula=1;
P0=0x3f;               //送段选数据,显示0
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(1);


dula=1;
P0=0x80;               //送段选数据,显示.
dula=0;
P0=0xff;
wela=1;
P0=0xDf;
wela=0;
delayms(1);
}

}



 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值