【51单片机】STC89C52数码管静态显示实验,含c代码(5)

1.参考教程:

清翔51单片机教程

2.基本原理 :

1)数码管位数:几个数码管连在一起,就是几位。
2)数码管共级:共阴极-数码管中间的线是GND。共阳极-数码管中间的线是VCC。用万用表测:黑表笔放GND(中间)处,红表笔放a处,若a灯亮起则是共阴极。
在这里插入图片描述
3)控制每段的亮灭,亮输入高电平,灭低电频。例:数码管显示数字1。对应二进制排列:00000110.
在这里插入图片描述

3.静态显示

每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直达送入新字形码为止。
1)锁存器原理
在这里插入图片描述
2)位选和段选
用两个锁存器分别进行位选和位选。
在这里插入图片描述
位选流程:
①P27赋高定平(也就是位选锁存器的LE脚打开)-——使得输入端D与输出端Q能够互通数据。
②输入端D(也就是P0口)输入数据–控制数码管每位的点亮和熄灭。
③P27赋低电平(也就是位选锁存器的LE脚关闭)——使得输入端D与输出端不互通数据,Q端的位选数据被保存。
段选流程:
①P26赋高定平(也就是段选锁存器的LE脚打开)-——使得输入端D与输出端Q能够互通数据。
②输入端D(也就是P0口)输入数据–控制数码管每位的点亮和熄灭。
③P26赋低电平(也就是段选锁存器的LE脚关闭)——使得输入端D与输出端不互通数据,Q端的位选数据被保存。

3.参考C代码:

#include <reg52.h>
#include <intrins.h>//标准库函数

#define uint unsigned int
#define uchar unsigned char

sbit DU = P2^6;	//数码管段选
sbit WE = P2^7; //数码管位选

void main()//main函数自身会循环
{
	WE = 1;//打开位选锁存器
	P0 = 0XFE;//1111 1110
	WE = 0;//锁存位选数据

	DU = 1;//打开段选锁存器
	P0 = 0X06;//0000 0110
	DU = 0;//锁存段选数据

}

4.显示效果:

在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值