STC89C52单片机 数码管动态显示

   日期:2020-11-03     浏览:147    评论:0    
核心提示:数码管动态显示静态与动态显示动态显示动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。数组的定义与引用数组是一组有序数据的集合,数组中每一个数据都是同一数据类型。数组中的元素可以用数组名和下标来唯一确定。数组的一般格式定义如下:数据类型 数组名[常量表达式] = {元素表};例如:unsigned c

数码管动态显示

静态与动态显示

动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

数组的定义与引用

数组是一组有序数据的集合,数组中每一个数据都是同一数据类型。数组中的元素可以用数组名和下标来唯一确定。

数组的一般格式定义如下:

数据类型 数组名[常量表达式] = {元素表};

例如:
unsigned char tabel[3] = [0x3F, 0x06, 0x5B,];
P0 = tabel[0]; // P0此时的值为0x3F

数码管动态显示数字 123

#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

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

// 毫秒级延时函数定义
void delay(uint z){  // 毫秒级延时函数定义
	uint x, y;
	for (x = z; x > 0; x--){ 
		for (y = 114; y > 0; y--){ 
		
		}
	}
}

void main(){  // main函数自身会循环

	P0 = 0xFF; // 清除断码
	WE = 1; // 打开位选锁存器
	P0 = 0xFE;   // 1111 1110 选通第一位数码管
// P0 = 0x00; // 0000 0000 表示选通所有位数码管
	WE = 0; // 锁存位选数据
	
	DU = 1;  // 打开段选锁存器
	P0 = 0x06;  // 0000 0110 显示“1”
	DU = 0;   // 锁存段选数据
	delay(5);
	
	while(1){ 
		
	   	P0 = 0xFF; // 清除断码 如果没有为P0 初始化赋值 0xFF,那么 P0的值会是上一个打开段选锁存器过程中赋予的值,执行到这里 会把段选值赋给锁存器中P0,导致数码管显示错误。
		WE = 1; // 打开位选锁存器
		P0 = 0xFE;   // 1111 1110 选通第一位数码管
	// P0 = 0x00; // 0000 0000 表示选通所有位数码管
		WE = 0; // 锁存位选数据
		
		DU = 1;  // 打开段选锁存器
		P0 = 0x06;  // 0000 0110 显示“1”
		DU = 0;   // 锁存段选数据
		delay(5);	// 对每次数码管的切换进行 5毫秒延时操作


		
 		P0 = 0xFF; // 清除断码
		WE = 1; // 打开位选锁存器
		P0 = 0xFD;   // 1111 1101 选通第二位数码管
	// P0 = 0x00; // 0000 0000 表示选通所有位数码管
		WE = 0; // 锁存位选数据
		
		DU = 1;  // 打开段选锁存器
		P0 = 0x5B;  // 0101 1011 显示“2”
		DU = 0;   // 锁存段选数据
		delay(5);


		
		P0 = 0xFF; // 清除断码
		WE = 1; // 打开位选锁存器
		P0 = 0xFB;   // 1111 1011 选通第三位数码管
	// P0 = 0x00; // 0000 0000 表示选通所有位数码管
		WE = 0; // 锁存位选数据
		
		DU = 1;  // 打开段选锁存器
		P0 = 0x4F;  // 0100 1111 显示“3”
		DU = 0;   // 锁存段选数据
		delay(5);

	}	
}

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服