Linglong之AVR程例5 数码管4位显示

发布者:平安守护最新更新时间:2016-03-03 来源: eefocus关键字:AVR程例  数码管  4位显示 手机看文章 扫描二维码
随时随地手机看文章
现在我们让4位数码管显示4位数字,这里用的动态扫描法。

这里说一个这个写这个程序要注意的地方:

                   动态描的循序。首先是将数据送入段选端,再打开要显示位的位选端,再延时,最后就是开闭所有的位选端。这个如果没有处理好很容易出现鬼影。

                   延时。我这里是延时5ms。看了下延时效果还不错。

 

关键是理解动态扫描的思想:我们先点亮第一位数码管,亮5ms.再点亮第二位数码管,亮5ms.这时第一位是不亮的,如此循环下去。因为人眼5ms反映不过来,看上去就是4位数码管都是亮的。

 

比较简陋的源程序:

#include                  //IO口头文件调用
#include
#define uchar unsigned char         //申明
#define uint unsigned int

uchar reg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};   //8位数码管字型编码表


int main(void)

   DDRB = 0xff;     //这两行表示设制IO寄存器为输出
   DDRC = 0xff;
 
   while(1)
   {
      
        PORTC = reg[0];     //送数据到第一位数码管
        PORTB = 0xfe;       //打开第一位数码管位选端
        _delay_ms(5);       //延时5MS
        PORTB = 0xff;       //关闭第一位数码管位选端
       
        PORTC = reg[5];       
        PORTB = 0xfd;
        _delay_ms(5);
        PORTB = 0xff;

        PORTC = reg[1];       
        PORTB = 0xfb;
        _delay_ms(5);
        PORTB = 0xff;

        PORTC = reg[0];       
        PORTB = 0xf7;
        _delay_ms(5);
        PORTB = 0xff;

       }
    }
关键字:AVR程例  数码管  4位显示 引用地址:Linglong之AVR程例5 数码管4位显示

上一篇:CEPARK AVR单片机 之HC595驱动数码管显示
下一篇:Linglong之AVR程例4 数码管一位显示

推荐阅读最新更新时间:2024-03-16 14:46

【STC单片机学习】第七课:单片机控制静态/动态数码管
1.7.1.什么是数码管 1.7.1.1、几方面看数码管 (1)外观 (2)作用:数码管是显示器件,用来显示数字的:工业场合用的比较多! (3)分类:单个(1位)、联排(2位、4位、8位) 1.7.1.2、工作原理 (1)亮灭原理(其实就是内部的照明LED) 一个数码管里面有8个LED。 (2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示,人看到的就是不同的数字。和点灯很相似!例如下面:显示2、8 1.7.1.3、共阳极和共阴极数码管 (1)驱动方法的差异 必须清楚一个数码管内部的8颗LED是独立驱动的。如果8颗LED的正极接在一起接到VCC上(负极分别接到单
[单片机]
【STC单片机学习】第七课:单片机控制静态/动态<font color='red'>数码管</font>
51单片机超声波测距数码管显示
超声波原理简单测距准确,应用广泛下面贴一个自己写的数码管程序,显示部分需要改,最近比赛写的我使用的是慧净开发板,共阴数码管 //超声波模块程序 //作者 : Z H //时间 2015/11/29 //Trig = P2^0 //Echo = P3^2 #include reg52.h #define uchar unsigned char #define uint unsigned int unsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的码
[单片机]
单片机数码管显示消隐
不知道同学们是否发现了,我们的这两个数码管动态显示程序的运行效果似乎并不是那么完美,第一个小问题,大家仔细看,数码管的不应该亮的段,似乎有微微的发亮,这种现象叫做“鬼影”,这个“鬼影”严重影响了我们的视觉效果,我们该如何解决呢? 同学们在今后可能会遇到各种各样的实际问题,可能很多都是我们没有讲过的,遇到问题怎么办呢?大家要相信,你作为初学者,遇到的问题肯定不是第一个遇到的,肯定有前辈已经遇到过相同的或类似的问题,他们一般都会在网上发表各种帖子,各种讨论,所以大家遇到问题,首先就应该形成一个到网上搜索的条件反射,这个问题大家可以到网上搜:“数码管消隐”或者“数码管鬼影解决”,多找相关关键词搜索试试,会搜索也是一种能力。 大家在网上搜
[单片机]
实验1 单片机IO口应用及数码管显示
1. 单片机驱动蜂鸣器的实验; a) 说明:Lab51单片机实验板的蜂鸣器连接到单片机的P1.5 b) 基本要求:控制蜂鸣器每2秒响0.5秒。 #include reg51.h #define unit unsigned int void delay(unit x){ unit i=x; unit j; for(;i 0;--i){ for(j=x;j 0;--j); } } void main() { while(1){ P1=0x00; delay(250); //0.5秒 P1=0xff; delay(420);//2秒 } }
[单片机]
第32节:数码管中的倒计时程序
开场白: 上一节讲了一二级菜单的综合程序,这一节要教会大家三个知识点: 第一个:通过本程序,继续加深理解按键与数码管的关联方法。 第二个:复习一下我在第五节教给大家的时间校正法。 第三个:继续加深熟悉鸿哥首次提出的 一二级菜单显示理论 :凡是人机界面显示,不管是数码管还是液晶屏,都可以把显示的内容分成不同的窗口来显示,每个显示的窗口中又可以分成不同的局部显示。其中窗口就是一级菜单,用ucWd变量表示。局部就是二级菜单,用ucPart来表示。不同的窗口,会有不同的更新显示变量ucWdXUpdate来对应,表示整屏全部更新显示。不同的局部,也会有不同的更新显示变量ucWdXPartYUpdate来对应,表示局部更新显示。 具体内
[单片机]
单片机数码管显示数字为流水灯亮的个数
本程序所用的原理图下载: 点这里 ,单片机芯片使用的stc89c52; /** *Function:数码管显示数字为流水灯亮的个数 *Author: 徐冉 *Time: 2013-07-28 **/ /*************基于AT89C52-RC MCU************/ /************基于HL-1开发板****************/ #include reg52.h typedef unsigned int uint; typedef unsigned char uchar; /*数码管锁存器位声明*/ sbit wela = P2^7; sbit dula = P2^6; /*数码管编码
[单片机]
数码管流水灯式显示数据
本程序是采用51单片机实现共阳数码管流动显示数据,蛮好看的,所以把程序写出来和大家一起分享一下!! 电路图在下面 下面是汇编程序代码: D0 BIT P2.0 D1 BIT P2.1 D2 BIT P2.2 D3 BIT P2.3 D4 BIT P2.5 ORG 0000H SJMP START ORG 0040H START:MOV SP,#60H MOV R0,#00H MOV R1,#20 MOV DPTR,#TABLE SETB D4 MOV A,R0 MOVC A,@A+DPTR //1 MOV P0,A CLR D0 LCALL DELAY MOV R1
[单片机]
<font color='red'>数码管</font>流水灯式<font color='red'>显示</font>数据
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved