蓝桥杯数码管静态显示

蓝桥杯数码管

在蓝桥杯比赛中数据的显示,几乎都是靠数码管管实现的,也可以用串口和上位机软件实现显示但是考地很少只有第十届国赛考了串口。数码管显示分为动态和静态显示,动态是指多位数码管一起显示,但是本质上也是一位一位的显示。静态就只显示一位数码管,蓝桥杯数码管原理图如下蓝桥杯数码管原理图
蓝桥杯的数码管采用的是共阴极,其点亮数码管需要打通位选和段选的电路,led是一样的,需要把138译码器(真值表见数据手册),锁存器打通才行即Y6C和Y7C打通。
位选和段选我采用的是数组的方式,当然也可以采用其他方式。在蓝桥杯比赛过程中我们可以使用STC-ISP里面的示例程序。所以数码管的段选(stc-isp里面的数码管是共阳所以需要取反)和位选码不需要我们去单独记忆(也可以自己推算,官方也会提供一部分段选码)
在这里插入图片描述

代码如下

#include <STC15F2K60S2.H>
char wx[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};  //位选
char dx[]={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //段选
void smg(char a,b);
main()
{
	P0=0x00;//关闭蜂鸣器
	P2=(P2&0x1f)|0xa0;//打开蜂鸣器锁存器
	P2&=0x1f;//关闭蜂鸣器锁存器
	
	P0=0xff;  //关闭led
	P2=(P2&0x1f)|0x80;//打开led锁存器
	P2&=0x1f; //关闭led锁存器
	while(1)
	{
		smg(0,5);//第一位显示5
	}
}

void smg(char a,b) //数码管函数
{
	
	P0=wx[a]; //位选a为0~7
	P2=(P2&0x1f)|0xc0;  //打开位选锁存器
	P2&=0x1f;   //关闭位选锁存器
	P0=~dx[b]; 
	P2=(P2&0x1f)|0xe0;  //打开段选锁存器
	P2&=0x1f;   //关闭段选锁存器
}

代码仅供参考,不一定适合自己,可以适当更改;
小白入门,如有错误请指出。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值