蓝桥杯单片机CT107D 数码管显示

蓝桥杯单片机CT107D 数码管显示
定义display.h

#ifndef  _display_h
#define _display_h

#include "common.h"  //包含通用的头文件

void display(uint32 dat);

#endif

定义相应的.c文件

#include "display.h"

uint8 wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 
uint8 duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void display(uint32 dat)
{
	uint8 str[8];
	static uint8 i;
	
	str[0]=dat%100000000/10000000;  
	str[1]=dat%10000000/1000000;
	str[2]=dat%1000000/100000;
	str[3]=dat%100000/10000;
	str[4]=dat%10000/1000;
	str[5]=dat%1000/100;
	str[6]=dat%100/10;
	str[7]=dat%10;

	P2=P2&0x1f|0xc0;//y6
	P0=wei[7-i];
	
	P2=P2&0x1f|0xe0;//y7
	P0=duan[str[7-i]];
	P2=P2&0x1f;
	
	i++;
	if(i>=8)
		i=0;
}	

工程模板:https://download.csdn.net/download/qq_41676952/11126460

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用蓝桥杯单片机实现四个数码管上交替显示“2015”“LOVE”的程序。假设使用的是51单片机,数码管的引脚分别接在P2口和P3口。 ``` #include <reg51.h> #define DELAY_TIME 1000 unsigned char code segData[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f // 数码管对应数字码表 }; void main() { unsigned char i = 0; while (1) { // 显示 "2015" P2 = 0xff; // 关闭所有数码管 P3 = 0x7f; // 选择第一个数码管 P2 = segData[2]; // 显示数字 2 delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xbf; // 选择第二个数码管 P2 = segData[0]; // 显示数字 0 delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xdf; // 选择第三个数码管 P2 = segData[1]; // 显示数字 1 delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xef; // 选择第四个数码管 P2 = segData[5]; // 显示数字 5 delay(DELAY_TIME); // 显示 "LOVE" P2 = 0xff; // 关闭所有数码管 P3 = 0x7f; // 选择第一个数码管 P2 = segData[3]; // 显示字母 L delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xbf; // 选择第二个数码管 P2 = segData[9]; // 显示字母 O delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xdf; // 选择第三个数码管 P2 = segData[8]; // 显示字母 V delay(DELAY_TIME); P2 = 0xff; // 关闭所有数码管 P3 = 0xef; // 选择第四个数码管 P2 = segData[3]; // 显示字母 E delay(DELAY_TIME); } } void delay(unsigned int t) { unsigned int i, j; for (i = t; i > 0; i--) { for (j = 110; j > 0; j--); } } ``` 注:以上程序仅为参考,具体实现方法可能因所使用的单片机型号和数码管型号等因素而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值