要达到单片机数码管轮流显示的效果,不但要控制哪一个数码管显示,还要控制此数码管显示什么内容,因此我们引入两个table分别对位选和段选进行编码放入这2个table,再利用下标就可以来同时控制位选和段选信号了.
源代码如下,产生的效果是:四个数码管轮流显示1-9
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led2=P0^0;
sbit led3=P0^1;
sbit led4=P0^2;
sbit led5=P0^3;
sbit sda=P1^0;
sbit clk=P1^1;
sbit dig1=P1^2;
sbit dig2=P1^3;
sbit dig3=P1^4;
sbit dig4=P1^5;
uchar code table_dig[]={0x38,0x34,0x2c,0x1c};
uchar code table_num[]={0x7e,0x0c,0xb6,0x9e,0xcc,0xda,0xfa,0x0e,0xfe,0xde};
uchar code table[]={0x7e,0x0c,0xb6,0x9e,0xcc,0xda,0xfa,0x0e,0xfe,0xde};
uint dig,num,times;
void write164(uchar);
void delay(uchar t);
void main()
{
/** LED的显示 **/
led2=0;
led3=1;
led4=0;
led5=1;
/** 定时器操作 **/
TMOD=0x01;//定时器模式1,16位定时
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开中断
ET0=1;
TR0=1;//定时器开始计时
dig=0;
num=0;
times=0;
while(1)
{
if(times==20)
{
times = 0; //这一步很重要,少了会出一些奇怪的问题的
write164(table_num[num]);
num++;
if(num==10)
num=0;
//delay(100);
P1=table_dig[dig];
dig++;
if(dig==4)
dig=0;
}
}
}
/** 延迟函数 **/
void delay(uchar t)
{
uchar x,y;
for(x=t;x>0;x--)
for(y=101;y>0;y--);
}
/** 向锁存器写入一个字节数据 **/
void write164(uchar b)
{
uchar temp = b;
uint i;
for(i=0;i<8;i++)
{
clk=1;
sda = temp & 0x80;
clk=0;
temp = temp << 1;
}
}
/** 定时器中断函数 **/
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
times ++ ;
}
分享到:
相关推荐
单片机数码管动态显示原理 一、动态显示与视觉暂留原理 数码管作为一种常见的显示设备,在电子系统设计中有着广泛的应用。数码管显示分为静态显示和动态显示两种方式。其中,动态显示利用了人眼的视觉暂留效应来...
在单片机开发板上,通过单片机控制数码管动态显示5201314,并闪烁显示
总的来说,"51单片机数码管动态显示+汇编程序+Proteus仿真"是一个全面的教程,涵盖了单片机硬件控制、低级语言编程和电路仿真的多个方面,对于想要进入电子设计领域的初学者来说,是一份宝贵的学习资源。通过深入...
单片机数码管动态显示是单片机编程中常见的实践环节,主要应用于各种电子设备的显示界面,如计时器、仪表盘等。本实验详细介绍了如何利用单片机实现数码管的动态显示,提供了代码、原理图以及两种语言版本(C语言和...
"单片机数码管动态显示" 单片机数码管动态显示是指使用单片机控制数码管显示动态内容的技术。该技术广泛应用于数字仪表、自动控制系统、家电产品等领域。 知识点: 1. LED 数码管显示技术:LED 数码管是一种常用...
【51单片机数码管动态显示程序】是嵌入式系统开发中常见的一个实践案例,主要用于学习和掌握51单片机控制数码管显示的基本原理和技术。在电子工程和物联网应用中,51单片机因其结构简单、性价比高而被广泛应用。...
51单片机数码管动态显示是嵌入式系统中常见的技术,主要应用于电子设备的显示界面,如计时器、仪表盘等。在51单片机上实现数码管动态显示,通常需要掌握以下几个核心知识点: 1. **51单片机基础**:51系列单片机是...
综上所述,51单片机数码管动态显示的实现需要掌握单片机IO口控制、数码管工作原理、动态显示原理、限流电阻计算及程序设计等多方面的知识。只有深入理解和熟练运用这些知识点,才能设计出高效、稳定的动态显示系统。
多个数码管显示数字的时候,我们实际上是轮流点亮数码管(一个时刻内只有一个数码管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数码管都同时亮了,这就是动态显示,也叫做动态扫描。...
8051单片机数码管动态显示、4x4键盘Proteus仿真与汇编程序设计 本文将对8051单片机数码管动态显示、4x4键盘Proteus仿真与汇编程序设计进行详细的知识点总结。 一、数码管动态显示系统 * 数码管动态显示系统的功能...
单片机数码管动态显示是嵌入式系统中常见的显示技术,它利用人眼的视觉暂留效应,通过快速切换不同段码来实现多位数码管同时显示的效果,从而节省硬件资源,提高显示效率。本项目提供了相关的源程序和仿真电路文件,...
### 单片机数码管动态显示0~F程序解析 #### 一、程序概述 本程序为一个典型的单片机动态显示程序,适用于初学者学习单片机如何控制数码管进行数字显示。程序通过循环控制四个数码管轮流显示0到F(即十六进制数0x00...
本项目聚焦于利用飞思卡尔单片机实现数码管动态显示学号的功能,这对于教育、实验室环境或者学生管理系统非常实用。通过动态扫描的方式,可以在有限的硬件资源下实现高效、节能的显示效果。 飞思卡尔单片机是一款高...
单片机数码管动态显示是一种常见的微控制器应用技术,它通过快速切换不同数码管的显示状态,使得人眼无法察觉到切换过程,从而达到节省硬件资源、提高显示效果的目的。在单片机系统中,数码管通常用于显示数字或字符...
实现51单片机数码管动态显示0~7,首先需要设置单片机的I/O端口,用于控制数码管的各个段。然后编写程序,使用定时器或中断来控制显示的频率,保证视觉上的连续性。通常,程序会包含以下部分: 1. 初始化:设置...
单片机数码管动态显示是单片机编程中常见的应用场景,通常用于实现数字或字符的可视化展示。在提供的实验程序中,使用了8位单片机(从org 00h可以看出),通过P0口(num equ p0)连接一个共阴极的数码管进行动态显示...