51单片机对8位数码管依次显示0-7的设计

发布者:平和的心情最新更新时间:2023-02-08 来源: elecfans关键字:51单片机  8位数码管 手机看文章 扫描二维码
随时随地手机看文章

共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90}

共阳极数组A~F:display[]={0x88,0x83,0xA6,0xC1,0x86,0x8E}

共阴极数组0~9:display[]={0x3F,0x06,0x5B,0x4F,0x6E,0x6D,0x7D,0x07,0x7F,0x6F}

共阴极数组A~F:display[]={0x77,0x7C,0x59,0x3E,0x79,0x71}

共阴、两组四位一体数码管,位选接74LS138译码器,输入(位选)CBA接P20,P21,P22。段选通过74573后接P1口。

若不使用译码器,可直接将位选段接IO口,赋值改变。

51单片机对8位数码管依次显示0-7的设计

/*******************************************************************************

2 * 实 验 名 : 动态数码管显示

3 * 实验说明 : 8位数码管依次显示0~7

*******************************************************************************/

8 #include

9

10 #define GPIO_DIG P1 //Digitron 数码管

11 sbit LSA= P2^0;

12 sbit LSB= P2^1;

13 sbit LSC= P2^2;

14

15 unsigned char code DIG_CODE[10]={

16 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码

17 void DigDisplay();

18

19 void main(void)

20 {

21 while(1)

22 DigDisplay();

23 }

24

25

26 void DigDisplay()

27 {

28 unsigned char i;

29 unsigned int j;

30 for(i=0;i《8;i++)

31 {

32 switch(i) //位选,选择点亮的数码管,

33 {

34 case(0):

35 LSA=0;LSB=0;LSC=0; break;//显示第0位

36 case(1):

37 LSA=1;LSB=0;LSC=0; break;//显示第1位

38 case(2):

39 LSA=0;LSB=1;LSC=0; break;//显示第2位

40 case(3):

41 LSA=1;LSB=1;LSC=0; break;//显示第3位

42 case(4):

43 LSA=0;LSB=0;LSC=1; break;//显示第4位

44 case(5):

45 LSA=1;LSB=0;LSC=1; break;//显示第5位

46 case(6):

47 LSA=0;LSB=1;LSC=1; break;//显示第6位

48 case(7):

49 LSA=1;LSB=1;LSC=1; break;//显示第7位

50 }

51 GPIO_DIG=DIG_CODE[i];//发送段码

52 j=10000; //扫描间隔时间设定,若减少j,可观察到稳定显示的0~7 (扫描速度太快,人眼识别不了)

53 while(j--);

54 GPIO_DIG=0x00;//消隐

55 }

56 }

1 /*******************************************************************************

2 * 实 验 名 : 数码管秒表显示

3 * 实验说明 : 0~59依次显示

*******************************************************************************/

8 #include

9

10 #define GPIO_DIG P1 //Digitron 数码管

11 #define uchar unsigned char

12 #define uint unsigned int

13 sbit LSA= P2^0;

14 sbit LSB= P2^1;

15 sbit LSC= P2^2;

16

17 uchar shi,ge,num1=0,num=0;

18 uchar code DIG_CODE[10]={

19 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9的显示码

20 void Delay5ms();

21 void DigDisplay(uchar shi,uchar ge);

22

23

24 void main()

25 { //200微秒@20MHz

26 TMOD = 0x01; //设置定时器模式

27 TL0 = 0xA8; //设置定时初值

28 TH0 = 0xFD; //设置定时初值

29 EA = 1; // 开总中断

30 TF0 = 0; //清除TF0标志

31 ET0 = 1; // 开定时器0中断

32 TR0 = 1; //定时器0开始计时

33 while(1)

34 {

35 DigDisplay(shi,ge);

36 }

37 }

38

39 void DigDisplay(uchar shi,uchar ge)

40 {

41 GPIO_DIG=DIG_CODE[shi]; //段选

42 LSA=0;LSB=0;LSC=0;

43 Delay5ms();

44 GPIO_DIG=DIG_CODE[ge];

45 LSA=1;LSB=0;LSC=0;

46 Delay5ms();

47 }

48

49 void TImer0Init(void) interrupt 1

50 {

51 TL0 = 0xA8; //重装初

52 TH0 = 0xFD;

53 num1++;

54 if(num1==200) //5次200ms即为1s到

55 {

56 num1=0;

57 num++;

58 if(num==60)

59 num=0;

60 shi=num/10;

61 ge = num%10;

62 }

63 }

64

65

66 void Delay5ms() //@12.000MHz

67 {

68 unsigned char i, j;

69

70 i = 59;

71 j = 90;

72 do

73 {

74 while (--j);

75 } while (--i);

76 }


关键字:51单片机  8位数码管 引用地址:51单片机对8位数码管依次显示0-7的设计

上一篇:C51单片机设计的水箱温度PID控制系统的程序,PID控制程序
下一篇:基于MCS-51单片机和CAN总线控制器实现总线节点的设计

推荐阅读最新更新时间:2024-11-17 05:15

51单片机的外部中断实验设计
51单片机的外设究竟该怎样理解?做以下实验。 实验1:外部中断0的实验 实验步骤:将一根杜邦线的一端接到P3^2口上,另一端接电源或者地 实验程序: #include sbit led = P1^0; void mian(void) { while(1){ if(IE0){ led = 0; } else{ led = 1; } } } 实验结果:当杜邦线另一端接电源时,led灭;当接地时,led就亮 结论:无论配置与否,51单片机的外部中断这个外设都在工作着,不可能禁止 实验2:定时器0的实验 实验程序: #include sbit led = P1^0; void main(void) { TR0 =1; while(
[单片机]
<font color='red'>51单片机</font>的外部中断实验设计
在8051单片机应用系统中使用DiskOnChip
前言   随着各种8051兼容单片机的功能和性能越来越强,其应用系统的智能化程度和复杂度也在不断提高。在某些场合下对数据非易失存储的容量要求已远远超过了64KB。为此,通常的解决方法是采用NOR型Flash存储器,并采用分段式存储器访问技术以扩展8051的寻址空间。这种方法增加了软硬件设计的复杂性且可靠性较低,成本也较高。而DiskOnChip(简称DOC)是一种基于NAND型Flash存储器的大容量固态存储系列产品,在单一封装内集成了大容量NAND Flash Memory和对Flash进行操作的微控制器NFDC(Nand Flash Disk Controller),其存储容量从8MB直到1GB。各种容量均采用统一的DIP32
[单片机]
uIP在51单片机上的移植
  uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。      (1)移植的基本过程。      针对所用编译器的类型更改定义数据类型,底层RTL8019AS芯片的驱动和实现应用层代码,系统定时器接口等。下面分别予以说明。      数据类型的定义:   typedefunsignedcharu8_t;typedefunsignedshortu16_t;typedefunsignedshortuip_stats_t;由于KeilC编译器默认情况下的编译模式为small,变量的定义在内部RAM中,编译时编译模式应改为Large,即变量的定义在XDATA中
[单片机]
uIP在<font color='red'>51单片机</font>上的移植
51单片机制作电子琴
#include reg52.h unsigned char tone; unsigned char op; sbit led=P1^1; sbit spk=P1^0; sbit key1=P3^2; //两只老虎演奏按键 sbit key2=P3^3; //1~i演奏按键 unsigned char code shuma ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //用于使定时器初值变化以产生相应频率的定时 unsigned char code yinfu_H = {0xfb
[单片机]
C51单片机矩阵键盘扫描去抖程序
  这段有1个C51的项目,用的是新华龙的C51 F020单片机。项目中要使成为事实4*5的矩阵键盘。矩阵电路图如次如示      此中,四条列线接在 F020的P2~P5口线上,5条行线接在P5口线上(F020的P5口是差别于平凡C51的扩大接口,不克不及位寻址)。同时4条列线接在一四输入与非门(74LS20)上,门输出接F020的外间断1,如许,不论什么一键按下,都会孕育发生间断,报信程序举行键盘电子扫描。   托1个新手给写了键盘的电子扫描程序,基本功效都能使成为事实,但对键盘的去抖措置惩罚老是做欠好,体现是或不克不及去抖,或按钮相应太卡,或采集到纰缪键值。看来新手对矩阵键盘电子扫描原理掌握较好(网上资料多)
[单片机]
C<font color='red'>51单片机</font>矩阵键盘扫描去抖程序
51单片机KEIL如何建立多个C文件及注意事项
1如何建立多个C文件 首先,我们需要一个新文档,这个文档的建立有两种方法(以delay1s函数为例)。第一种,在工程目录下建立一个delay1s.txt然后将其改名为delay1s.h。因为都是同编码的所以不会出现乱 码,然后在工程中将其打开。第二种方法是直接在工程中新建一个文档,然后保存的时候将名字保存为delay1s.h即可。如果是需要添加很多文件的话建议使用第一种方法,这是个人建议。其 次,我们需要编写delay1s.h这个文件的内容,其内容如下: #ifndef _DELAY1S_H_ #define _DELAY1S_H_ void delay1s();//延时函数 #endif 这个是头文件的定义,作用是声明了de
[单片机]
什么是单片机_51单片机学前预备知识
  一、单片机的概念:   二、单片机的用途:   工业自动化:数据采集,测控技术;   智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等;   消费类电子产品:洗衣机、电冰箱、空调机、手机等;   凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。   三、怎么学单片机:   实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。   四、为什么选择51单片机作为单片机学习的入门:   学51单片机成本低,而且51单片机技术最成
[单片机]
基于AT89S51单片机的PWM专用信号发生器设计
1 引言       涡流无损检测作为无损检测应用最广泛的方法之一,具有传感器结构简单、灵敏度高、测量范围大、不受油污等介质影响、抗干扰能力强等优点,已被广泛应用于冶金、机械、化工、航空等多个工业部门。然而由于受趋肤效应的影响,常被限制在对导体表面及亚表面层的检测上,这使其检测应用范围受到了很大的限制。但是,若检测线圈在脉冲激励作用下,因脉冲信号中含有丰富、连续的频率成分,所以检测线圈中所得到的信息不仅包含了被检测试件的表面、亚表面信息,还包含其深度信息,能够对材质以及缺陷进行定量评价。而脉冲信号的波形、频率、幅值、占空比等参数的改变对检测结果有着不同的影响。因此为了获得不同的脉冲激励下的检测结果。特制作了这一专用高精度大
[单片机]
基于AT89S<font color='red'>51单片机</font>的PWM专用信号发生器设计
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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