单片机编程,有一个4位数码管(共阴),并在数码管上显示学号的最后4位。 1、实现一个按下第一个按钮

单片机编程,有一个4位数码管(共阴),并在数码管上显示学号的最后4位。 1、实现一个按下第一个按钮,第1张

先说说单片机,一般我们使用的是越来越多的MCS-51单片机,其数据越多,用的人很多,市场也很

很大。恰巧我个人的身体有什么可以学得更快单片机课程。这当然是一个单芯片高度重视实践课程,二手

并不总是阅读,但必须要学会它一读,从书中,因为你需要了解单片机各功能寄存器, BR>亚洲和理解这一点,我们使用的单芯片微控制器是使用软件来控制各功能寄存器,说明白点,就是单片机引脚控制的

一定程度时,输出高,什么时候输出低。从高分到系统板的底层控制这些变化,实现我们需要

各种功能。至于阅读,几乎所有了解单片机引脚都在干些什么?可以实现什么样的功能?第一,第二有限公司您可能不理解,但是这并不重要,因为缺乏实际的感官认识。所以我总是说,学习单片机读取两三天就足以看出企业名录,以及看小说,你可以看到五六一天,你看到了两三天,看微控制器两个或三个时间是不够的,你可以仔细看。推荐一本书,在这

一个就够了,标题是“新的MCS-51单片机应用设计”,是出于技术出版社的哈尔滨工业大学,作者是章一港。大

书需要看的内容,再实践,这是非常关键的,如果你不练习来学习单片机是不可能的学习和实践上真正

两个采用哪种方式,一种方式:你自己花钱买的单片机学习板,不要求功能太宽,适合初学者有限公司您买的是非常的那种板子,上面有很多事情你做不需要这辈子,我建议有流水灯,数码管,独立键盘企业名录,RS232串口,液晶,蜂鸣器,这几乎是相同的。如果我上面提到的这些,你能熟练应用。

DISPLAY: MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码 输出

MOV A,R3

MOVC A,@A+DPTR

MOV P2,#01H

MOV P0,A

ACALL DELAY2

MOV DPTR,#DAT2

MOV A,R5

MOVC A,@A+DPTR

MOV P2,#02H

MOV P0,A

ACALL DELAY2

MOV A,R4

MOVC A,@A+DPTR

MOV P2,#04H

MOV P0,A

ACALL DELAY2

RET

DAT1: DB 0ffh,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffH,8eH

;"灭","1","2","3","4","5","6","7","8","9","灭","F"

DAT2: DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffH,8eH

#include<reg51h>

#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;

uint x;

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;

  }

}

void t0isr() interrupt 1

{

 TH0=(65536-10000)/256;

 TL0=(65536-10000)%256;

 switch(num)

 {

 case 0:P2=0x0fe;break;

 case 1:P2=0x0fb;break;

 case 2:P2=0x0fd;break;

 case 3:P2=0x0f7;break;

 default:break;

 }

 P0=tab[keyval];

 num++;

 num&=0x03;

}

main()

{

 TMOD=0x01;

 TH0=(65536-10000)/256;

 TL0=(65536-10000)%256;

 TR0=1;

 ET0=1;

 EA=1;

 while(1)

 {

 getkey();

 }

}

以上就是关于单片机编程,有一个4位数码管(共阴),并在数码管上显示学号的最后4位。 1、实现一个按下第一个按钮全部的内容,包括:单片机编程,有一个4位数码管(共阴),并在数码管上显示学号的最后4位。 1、实现一个按下第一个按钮、51单片机 汇编 4位数码管 共阴改共阳 程序、帮我改成4*4矩阵键盘控制 4位共阴极数码管显示! 51单片机等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9400960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存