以下代码在8个数码管上同时依次显示从0~F,利用i,j,m三个变量来实现显示的控制。
#include
sbit LATCH1=P2^2;
sbit LATCH2=P2^3;
unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码
void Delay(unsigned int t); //函数声明
main()
{
unsigned char i=0,num;
unsigned int j;
while(1)
{
P1=WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
P1=DuanMa[num+i]; //取显示数据,段码
LATCH1=1; //段锁存
LATCH1=0;
Delay(200); // 扫描间隙延时
i++;
j++;
if(i==8) //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位
i=0;
if(j==500) //检测当前数值显示了一小段时间后,需要显示的数值加1,实现数据显示的变化
{
j=0;
num++;
if(num==9)
num=0;
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
关键字:数码管显示 动态数字
引用地址:
数码管显示动态数字
推荐阅读最新更新时间:2024-03-16 15:30
【C51自学笔记】数码管(静态与动态显示)+74HC138+点阵的动态显示
数码管: 数码管由7个发光二极管组成一个日字形,如果需要显示小数点,那么就再加一个点,就是8段数码管。 数码管显示亮度高,响应速度快,分共阴和共阳两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的。 分类:共阴;共阳 编码问题: 必须对数字或字符进行编码。因此为LED显示器提供的编码正好是一个字节。也有采用BCD-7段译码芯片的。 显示问题: 静态显示方式 静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。 动态显示
[单片机]
CH454 数码管显示驱动和键盘扫描控制芯片
1、概述 CH454 是 数码管显示 驱动和 键盘扫描 控制芯片。CH454内置时钟振荡电路,可以动态驱动8 只16段的数码管或者128 只LED,支持11 段、14 段、16 段×8 以及17 段×7 等;同时还可以进行64 键的键盘扫描;CH454 通过2 线串行接口与单片机等交换数据。 2、特点 2.1. 显示驱动 ● 内置电流驱动级,段电流不小于20mA,字电流不小于150mA。 ● 动态显示扫描控制,直接驱动8 位16 段的数码管或者128 只发光管LED。 ● 各数码管的数字独立闪烁控制,可选快慢两种闪烁速度。 ● 通过占空比设定提供16 级亮度控制。 ● 部分段
[模拟电子]
基于51单片机ADC0808自动数字电压表数码管显示
硬件设计 该设计是基于51单片机,ADC采用TI公司的ADC0808,自动数字电压测量表,显示器采用4位数码管,测量范围为0.5~10V,精度约为0.02。 仿真图如下: 程序源码: #include reg52.h unsigned char code dispbitcode ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispbuf ; unsigned int i; unsigned int j; unsigned int getdata; unsigned int temp; unsigned int temp1;
[单片机]
单片机温度测控系统+精度为0.1℃+4位共阳数码管显示
要求基本上是实现的。 温度测控显示系统 设计功能要求: (1) DS18B20为温度传感器,实时采样温度;温度测量精度:±0.1℃。 (2) 4位LED数码管主要用于显示温度。 (3) 无任何键按下,4位LED数码管显示时分,初值显示09:09。 (4)按键K1按下,数码管显示本机测量的温度值。 希望可以得到采纳! 单片机源程序如下: 单片机源程序如下: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar code tab ={0xc0,0xf9,0xa4,0xb0,0x99,
[单片机]
单片机8位LED数码管的静态显示课程设计说明书与仿真
设计单片机控制8位LED数码管的动态驱动电路,并编写程序实现在8位LED数码管上静态信息的显示。 电路方面主要包括以下3部分。 (a)设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。 (b)采用动态驱动的方式,设计单片机并行端口与LED数码管的动态显示电路,包括LED数码管位选线和段选线的连线。 (c)设计LED数码管位选端(线)给电流电路。 编写单片机控制(驱动)8位LED数码管显示程序,实现数字(0—9)或简单的英文字符(A—F)的静态信息显示。显示方式和内容自定,如每隔一段时间循环
[单片机]
串行口通信上位机发送0~65536间的数据,数码管上显示
一. 硬件设计 二. 软件设计 1. 程序功能 以16进制发送一个0-65536之间的任一数,当单片机收到后在数码管上动态显示出来,波特率自定. 2. 程序源码 #include reg52.h #define uchar unsigned char #define uint unsigned int #define BUF_LEN 2 sbit dula = P2 ^ 6; sbit wela = P2 ^ 7; uint inbuf , dData; uchar flag, count; uchar wan, qian, bai, shi, ge; //数码管编码表 uc
[单片机]
51单片机心形流水和数码管同步效果显示仿真与程序
LED流水和数码管流水效果 独立 进行,实现方法包里有代码,互相交流。 仿真原理图: 单片机源程序如下: #include reg51.h #include intrins.h #define Number 50 //数码管数字长亮时间,t=Number*50ms=2500ms #define Speed 6 //数码管数字显示流动速度,t=Speed*50ms=300ms #define time100 100 //延时函数时间:t=time100=100ms #define time1000 1000 //延时函数时间:t=time1000=1000ms #define uchar unsigned
[单片机]
33. 4×4键盘及8位数码管显示构成的电子密码锁
1. 实验任务 用4 4组成0-9数字键及确认键。 用8位数码管组成显示电路提示信息,当输入密码时,只显示 8. ,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出 叮咚 声;若密码不正确,禁止按键输入3秒,同时发出 嘀、嘀 报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。 2. 电路原理图 图4.33.1 3. 系统板上硬件连线 (1). 把 单片机系统 区域中的P0.0-P0.7用8芯排线连接到 动态数码显示 区域中的ABCDEFGH端子上。 (2). 把 单片机系统 区
[单片机]