2、51单片机实现数码管的数值显示

2.1、实验目的

8位共阴数码管显示8位以内的数字

2.2、实验环境

普中51开发板(stc89c52、74HC245、74HC138、8位共阴数码管)

2.3、实验代码

#include<reg52.h>	  			
#include<intrins.h>	  				
typedef unsigned char u8;	 
typedef unsigned int u16;
static u8 digital_buffer[8];
static u8 digital_code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay1ms(u8 count){			
	int i,j;
	while(count>0){
		count=count-1;
		_nop_();
		i=2;
		j=199;
		do{
			while(--j);
		}while(--i);
	}
}

void DigitalTube_Single(u16 dig,u16 dat){

   	P0 =  0x00;
    P2 = P2 | 0xc7;
    dat = dig << 3;
    P2 = P2 | dat;
    P0 = dat;

}

void DigitalTube_Flush(){
	u8 i = 0;
	for(i;i<8;i++){
		 DigitalTube_Single(i,digital_buffer[i]);
		 delay1ms(10);
	}
}

void DigitalTube_Num(u16 num){
	
	u8 i=0;
	for(i;i<8;i++){
		digital_buffer[i] = 0x00;
	}
	i=7;
	while(num>0){
		digital_buffer[i] = digital_code[num%10];
		num = num / 10;
		i = i - 1;
	}
}

void main(){
	DigitalTube_Num(12345678);
	while(1){
		DigitalTube_Flush();		   
	}
}

posted @   酒暖=  阅读(180)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示