独立按键控制数码管位移

发布者:安静的夜晚最新更新时间:2020-07-19 来源: eefocus关键字:独立按键控制  数码管  位移 手机看文章 扫描二维码
随时随地手机看文章

独立按键控制数码管位移


代码:

#include

#define uchar unsigned char

#define uint unsigned int


uchar code DSY_CODE[]=

{

  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff

};

uchar code DSY_Index[]=

{

  0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01

};

uchar Display_Buffer[]=

{

  0,10,10,10,10,10,10,10

};


void DelayMS(uint x)

{

  uchar t;

while(x--)

{

for(t=0;t<120;t++);

}

}


void Show_Count_ON_DSY()

{

  uchar i;

for(i=0;i<8;i++)

{

P2 = DSY_Index[i];

P0 = DSY_CODE[Display_Buffer[i]];

DelayMS(2);

}

}


void main()

{

  uchar i;

uchar Key_NO,Key_Counts=0;

P0 = 0xff;

P1 = 0xff;

P2 = 0x00;

while(1)

{

Show_Count_ON_DSY();

P1 = 0xff;

Key_NO = P1;

switch(Key_NO)

{

case 0xfe: Key_Counts++;

if(Key_Counts>8)

Key_Counts = 8;

Display_Buffer[Key_Counts-1] = Key_Counts;

break;

case 0xfd: if(Key_Counts>0)

Display_Buffer[--Key_Counts] = 10;

if(Key_Counts==0)

Display_Buffer[0] = 0;

break;

case 0xfb: Display_Buffer[0]=0;

for(i=1;i<8;i++)

Display_Buffer[i] = 10;

Key_Counts = 0;

}

while(P1 != 0xff)

Show_Count_ON_DSY();

}

}


硬件连接

关键字:独立按键控制  数码管  位移 引用地址:独立按键控制数码管位移

上一篇:数码管最右边一位从0到9无限循环
下一篇:好玩的单片机——数码管原理(一)

推荐阅读最新更新时间:2024-11-13 01:33

合泰单片机数码管显示控制程序
;4位共阴数码管显示0123 ;数码管段码接法A-PD0,B-PD1....G-PD6,H-PD7 ;数码管位码接法OM0-PC0...COM4-PC3 ;目的: ;1.查表 ;2.间接寻址 include HT66F50.inc ORG0000H JMPA1 ORG0020H Q1: DC03FH; 0 DC006H; 1 DC05BH; 2 DC04FH; 3 DC066H; 4 DC06DH; 5 DC07DH; 6 DC007H; 7 DC07FH; 8 DC06FH; 9 DC077H; A DC07CH; B DC039H; C DC05EH; D DC079H; E
[单片机]
BASCOM-AVR 驱动数码管简洁代码
'''''''''''''''''''''' BASCOM-AVR 驱动一个数码管显示数字 0-9 下载附件查看原理图 代码 实物照片 ''''''''''''''''''''''''''''''''
[单片机]
BASCOM-AVR 驱动<font color='red'>数码管</font>简洁代码
51单片机实习-数码管动态显示4399(模块化编程)
#include reg52.h sbit wei0=P1^0; sbit wei1=P1^1; sbit wei2=P1^2; sbit wei3=P1^3; int zxm ={0x98,0x98,0xb0,0x99}; void delay(int i) { while(i--) { int j=0; for(;j 115;j++); } } void display() { int i; for( i=0;i 4;i++) { switch(i) { case 0: wei0=0,wei1=1,wei2=1,wei3=1;break; case
[单片机]
51单片机实习-<font color='red'>数码管</font>动态显示4399(模块化编程)
单片机中 LED 数码管的介绍
LED 小灯是一种简单的 LED,只能通过亮和灭来表达简单的信息。而这节课我们要来学习一种能表达更复杂信息的器件——LED 数码管。 先给大家提供一张原理图看一下,如图5-3所示。 图5-3 数码管原理图 这是比较常见的数码管的原理图,我们板子上一共有6个数码管。前边有了 LED 小灯的学习,数码管学习就会轻松的多了。从图5-3可以看出来,数码管共有 a、b、c、d、e、f、g、dp 这么8个段,而实际上,这8个段每一段都是一个 LED 小灯,所以一个数码管就是由8个 LED 小灯组成的。我们看一下数码管内部结构的示意图,如图5-4。 图5-4 数码管结构示意图 数码管分为共阳和共阴两种,共阴数码管就是8只 LED 小灯的
[单片机]
单片机中 LED <font color='red'>数码管</font>的介绍
数码管计时器程序
这是一个51hei网友测试通过的计时器程序、电路很简单就不画了数码管的段选是P0口位选是P1口 #include reg52.h typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; code uint8 number ={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xa7,0xa1,0x86,0x8e}; //数字0到F uint16 counter = 0; /
[单片机]
两片74HC595级联动态驱动8位数码管 51单片机
功能 : 用2片74HC595驱动8位数码管, 级联的最低1片595控制位选,那么第一片控制段选 时间 : 2013-3-28 21:11:59 作者 : Stone 版本 : REV1 平台 : STC89C52 11.0592MHz 现象 : 8位数码管从第一位开始从0计数,满10进位 版本说明 : 第0版本没有使用定时器中断,同时定义了一个 unsigned long int 变量计数 再把这个数的每位分离出来显示,所以导致有点闪屏,此版本使用定时器中断, 而且没有用 unsigned long int 之类的变量,而是用数组 Val 来计数,
[单片机]
51单片机计数器计数数码管显示
#include reg52.h #define uint unsigned int #define uchar unsigned char uchar code smg_tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//{0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa9,0x26,0xa1,0Xb1}; uchar code bit_tab ={0x7f,0xbf}; uchar Counts=0; uchar Display_Buffer ={0,0}; void _del
[单片机]
51单片机实验5:动态数码管
开发板数码管模块电路图如下: 由于74ls138译码器的特点,即只能是一个数码管的阴极电平为0,显然不能使多个数码管同时工作,若想要得到多个数码管同时工作的效果,只能采用动态扫描显示的方式。所谓动态扫描显示,就是利用发光管的余辉和人眼视觉暂留作用,使人感觉好像多个数码管在同时工作。 程序中digdisplay函数利用for循环和switch语句,不断扫描8个数码管,完成位选工作,并对P0口赋值实现段选功能。从而在8个数码管依次输出1~8,并利用延时函数控制输出间隔时间,实现动态输出的功能。 细节: (1)在每位数码管显示之后设置一定时间的延时。 (2)P0口置0(P0=0x00),完成“消影”目的。 #incl
[单片机]
51单片机实验5:动态<font color='red'>数码管</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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