问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用单片机实现4位数码管动态显示0217。

发布网友 发布时间:2024-03-03 14:11

我来回答

1个回答

热心网友 时间:2024-04-06 20:34

#include<reg51.h>
#define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //0到f
uchar keyval,num,dis[4],kn=0;

void delay(uchar a)
{
 uchar i,j;
 for(i=0;i<a;i++)
 for(j=0;j<125;j++);
}
uchar kbscan(void)
{
 unsigned char sccode,recode;
 P3=0x0f;  //发0扫描,列线输入
 if ((P3 & 0x0f) != 0x0f)  //有键按下
 {
  delay(20);   //延时去抖动
  if ((P3&0x0f)!= 0x0f)
  {
   sccode = 0xef;    //逐行扫描初值
   while((sccode&0x01)!=0)
   {
       P3=sccode;
    if((P3&0x0f)!=0x0f)
    {
        recode=(P3&0x0f)|0xf0;
     while((P3&0x0f)!=0x0f);//等待键抬起
     return((~sccode)+(~recode));
     }
          else
    sccode=(sccode<<1)|0x01;
   }
  }
 }
 return 0;  //无键按下,返回0
}

void getkey(void)
{
 unsigned char key;
 key=kbscan();
 if(key==0)
 {
 return;
 }
  switch(key)
  {
  case 0x11:keyval=7;break;
  case 0x12:keyval=4;break;
  case 0x14:keyval=1;break;
  case 0x18:keyval=10;break;
  case 0x21:keyval=8;break;
  case 0x22:keyval=5;break;
  case 0x24:keyval=2;break;
  case 0x28:keyval=0;break;
  case 0x41:keyval=9;break;
  case 0x42:keyval=6;break;
  case 0x44:keyval=3;break;
  case 0x48:keyval=11;break;
  case 0x81:keyval=12;break;
  case 0x82:keyval=13;break;
  case 0x84:keyval=14;break;
  case 0x88:keyval=15;break;
  default:keyval=0xff;break;
  }
  dis[kn]=keyval;
  kn++;
  kn%=4;
}
void t0isr() interrupt 1
{
 TH0=(65536-10000)/256;
 TL0=(65536-10000)%256;
 switch(num)
 {
 case 0:P2=0x01;break;
 case 1:P2=0x02;break;
 case 2:P2=0x04;break;
 case 3:P2=0x08;break;
 default:break;
 }
 P0=~tab[dis[num]];
 num++;
 num&=0x03;
}
main()
{
 TMOD=0x01;
 TH0=(65536-10000)/256;
 TL0=(65536-10000)%256;
 TR0=1;
 ET0=1;
 EA=1;
 while(1)
 {
 getkey();
 }
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 单片机:求一个动态显示分别显示0123在四位数码管上的c语言代码。 要在... 手动挡汽车行驶中如果脚刹车失灵,手刹能使车速下降到停车吗? 危害根部的害虫 4.85一斤的材料,6克重的产品,怎么算成本? 轻医美公司取名适合做医美公司的名字免费 医美高大上的名字美容院名字大全最新 医疗美容机构名称大全好听的医美名字大全 医疗美容机构名字大全经典医疗美容取名 红米k40屏幕坏了修还是换? 最新最好听医美名称好听的医美机构名字 医美公司取名字大全好听的美容公司名字大全 医美公司名字100个医美整形名字高端大气 保险迟交会有影响吗 二战后,亚洲最先成为现代化国家的是???、 国五货车停车后在走为什么加不起油,但熄火了重新启动又恢复正常?_百度... 四川珀妮雅美容服务有限公司怎么样 四川芙兰舒养老服务有限公司怎么样啊 我想知道材油货车放久打不着怎么办 想看我提问过的问题请问车放时间长了怎么加不起来油 大货车放时间长了 车打不燃了 怎么回事 张海生的介绍 自动编号的底色(突出显示的颜色)怎么去掉? 商调函和审批表哪个在先 干部调动审批表和商调函时间可以是同一天吗 操作NVIC的函数在stm32固件库的哪里???我是3.5的版本 stm32固件库中delay_ms函数,以及stm32_clock_init(u8 Pll)函数的... ...独立显卡,怎么开机还是启用的集成显卡,怎么切换??? ...就显示一个集成显卡呢? 不是应该两个显卡吗?独立显卡怎么开启呀... ...设置成独显..我这个是集显吧.右键并没有切换显卡.百度了一下..我好... iphone 6设置不了噪音消除吗? oppo浏览器怎么关闭窗口? 为什么就俄罗斯和塞尔维亚反对科索沃独立? 感冒两三天了,第一天早起有黄痰,白天流清涕,在吃感冒软胶囊,但病情时好... 怎样挑选化装绵? 蒙古顶碗舞曲《伊如勒》《祝福》从哪儿能找到并下载?请大家帮帮忙,谢谢... 鑫开发-金融牌照转让怎们样?想从他们那过户个融资租赁,价格蛮便宜但... 仁港永胜这家公司怎么样,想在他们公司办理金融牌照 95351湘财证券为什么总打我电话 《境界的彼方》中名濑博臣围巾系法, 《进击的巨人》三笠的围巾系法,可... 西府海棠适合家里养吗