首页 > 其他分享 >89C51实现单个指定按键消抖后计数(使用共阴极数码管7SEG-MPX8-CC-BLUE)

89C51实现单个指定按键消抖后计数(使用共阴极数码管7SEG-MPX8-CC-BLUE)

时间:2023-06-01 13:25:13浏览次数:37  
标签:BLUE char CC MPX8 Ligh unsigned Us Delay num

 

位选

关键锁存器

按键(消抖)区

小灯泡D1用于指示SW1是否被检测到按下(计数器设置为1次就溢出,在中断中计数num+1的同时对小灯泡连接的端口取反用于指示)。

#include <reg52.h>

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int

#define SEGPORT P2  //显示字形

#define BITPORT P0   //控制位选

 

sbit LED = P1^7;

sbit en = P3^0;     //控制74LS373使能位,用于打开/关闭锁存。

 

unsigned int num = 0;

unsigned char code ledTab[]=

{

  0x3F,0x06,  0x5B,  0x4F,  0x66,  0x6D, 0x7D, 0x07, 0x7F,  0x6F,

};            //共阴极的字码

 

void Delay_Us(unsigned int us)

{

       unsigned char i;

  while(us--)

       {

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

       }

}       //延时函数

 

void DynamicLed(unsigned char Ligh)    //已定最高显示三位数,设置为数码管右边三位亮

{

         Delay_Us(Ligh);

SEGPORT = 0x00;

         BITPORT = 0Xfe;

         SEGPORT = ledTab[num%10];  //显示个位

         en = 0;         //关闭锁存

         Delay_Us(Ligh);  //延时,否则失效,数码管会闪烁并且数值会交替变化(非故障)

         en = 1;         //打开锁存

         Delay_Us(Ligh);

         BITPORT = 0Xfd;

         SEGPORT = ledTab[num/10%10];   //显示十位

         Delay_Us(Ligh);

         BITPORT = 0Xfb;

         SEGPORT = ledTab[num/100%10];   //显示百位

 

}

 

void main()

{

       unsigned char Counter = 0;

       TMOD = 0X60;

       TH1 = 255;

       TL1 = 255;

       LED = 0;

       EA = 1;

       ET1 = 1;

       TR1 = 1;

  while(1)

  {

         DynamicLed(1);

  }

}

 

void timer1() interrupt 3

{

       LED = ~LED;

       num = num + 1;

}

 

标签:BLUE,char,CC,MPX8,Ligh,unsigned,Us,Delay,num
From: https://www.cnblogs.com/stysan/p/17448622.html

相关文章

  • 30万个名字汉字起名中文取名ACCESS\EXCEL数据库
    虽然汉字#起名名字#的数据库已经有一些,比如7千多汉字起名参考大典ACCESS数据库、汉字起名中文起名宝宝起名ACCESS数据库,但是今天发现了一个数据库,他是在《7千多汉字起名参考大典》的基础上增加了30万个男孩女孩的名字实例。非常适合于比如固定了名字的第二个字,取第三个字时一查就......
  • 1万9千多单词大冲关含真人读音ACCESS数据库
    英语类的数据其实已经有很多很多人,但是不同的需求适合的也会是各种的不同,甚至可能需要将多个相关的数据整合起来应用,而今天这份数据库对于整合来说是非常方便的,因为它是以单词为关键词进行各种关联的,也就是说只要是英语类的数据都可以与这份数据关联起来。这个数据的好处在于有17......
  • 3万5千英语句子英语例句大全ACCESS\EXCEL数据库
    在学习英语的过程中可能会发现没有比较适合自己的英语学习软件,适合你的软件不一定适合我,竟毕每个人的学习方法不尽相同。这个数据库收集了40多个课程,35000多个句子。是学习英语的必备资料。分类表:包含电话英语、旅游英语、求职英语、商务英语、社交英语、洋话连篇、走遍美国、灵......
  • 2万多汉字组词词组大全ACCESS\EXCEL数据库
    本数据库是由MicrosoftAccess2000创建的MDB数据库文件,您需要使用MicrosoftAccess2000或以上版本打开这个文件。可以通过到Access中全选复制,然后到Excel中粘贴立即转为XLS文件,也可以在Access中导出成其他格式文件。包含有近5千个常用字的组词,字段组词前面的10\20\30\40......
  • 2万多条经典台词电影台词ACCESS\EXCEL数据库
    电影台词中有不少令人难忘的好句子,很多时候,爱上一部电影不是因为镜头里的帅哥靓女,不是因为故事情节的跌宕起伏,只是因为有那么一句话,在主人公说出口的那一瞬间,击中我们内心最柔软的部分。本数据库收录经典电影台词大全,让我们来欣赏每部电影的经典台词、经典对白。此外,还收录了部分......
  • 24万个取名名字五行名字ACCESS\EXCEL数据库
    虽然之前弄到过一个《30万个名字汉字起名中文取名ACCESS数据库》数据库,但是有一些小缺点,比如没有单名,比如没有五行属性,而今天弄到的这份就包括,看截图:字数统计:名字单字的包含7088条,2个字的包含234337条;金属性名字有60697条,木属性名字有112682条,水属性名字有100979条,火属性名字有......
  • 解决fatal: unable to access ‘https://github.com……‘: Failed to connect to
    问题:gitclone时会报如下错误 解决办法:1.在cmd下执行 ipconfig/flushdns,清理DNS缓存 2.重新执行gitclonehttps://github.com/.../.git即可成功......
  • 计算机安全_jlu_ccst部分笔记
    这些是我当时复习计算机安全这门课的时候写的一些笔记(没有的部分要么是比较简单,要么是我没复习到(有的计算现在我还有别的事时间比较紧张,顾不上整理这门课的内容了,直接把图片放出来有需要的同学可以参考一下 (坏了,还少了一半,我记得当时是写了三四十页的(挠......
  • 2023ccpc大学生程序设计竞赛-zx
     这次ccpc整体来说做题做的比较卡,第一个签到都wa了,后面几道中档题全都是至少wa一次才能过,这导致我们不仅罚时增加也导致需要大量时间修改代码,还有一个G题很可惜,当时只注意到B过题多所以有点被带歪了,对着一个n更号n的算法研究了好久,其实当时就应该想到这个1e9的时间复杂度很难优......
  • 2022 CCPC威海补题记录
    L.NoviceMagician简单构造,但是读错了半年。大意是构造一组方程有唯一解。随便凑一个就行,没有任何讲究,不知道为啥没人过。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedeflongdoubleld;voidini();voidsolve();constintmod=998244353;/......