登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 单片机-按键2

[复制链接]
发表于 2022-2-6 18:22:49 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 按键(定时器和中断)
开始时间: 2022-02-05
结束时间: 2022-02-06


  1. #include <reg52.h>
  2. sbit P20=P2^0;
  3. sbit P21=P2^1;
  4. sbit P22=P2^2;
  5. sbit K4=P2^3;
  6. sbit ENLED=P1^1;

  7. unsigned char code LedChar[]={
  8.         0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
  9.         0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
  10. };

  11. bit KeySta = 1;

  12. void main()
  13. {
  14.         bit backup=1;
  15.         unsigned char cnt =0;
  16.        
  17.         EA=1;
  18.         ENLED=0;
  19.         TMOD=0x01;
  20.         TH0=0x2A;
  21.         TL0=0xAB;
  22.         ET0=1;
  23.         TR0=1;
  24.         P2=~0x82;
  25.         P0=LedChar[cnt];
  26.        

  27.                   while(1)
  28.         {
  29.                
  30.                 if(KeySta!=backup)
  31.                 {

  32.                                 if(backup==0)
  33.                                 {
  34.                                         cnt++;
  35.                                         if(cnt>=16)
  36.                                         {
  37.                                                 cnt = 0;
  38.                                                
  39.                                         }
  40.                                         P0 = LedChar[cnt];
  41.                                        
  42.                                 }
  43.                                 backup = KeySta;
  44.                 }
  45.         }
  46. }


  47. void InterrupTimer0() interrupt 1
  48. {
  49.         static unsigned char keybuf = 0xFF;
  50.         TH0=0x2A;
  51.         TL0=0xAB;
  52.         keybuf=(keybuf<<1) | K4;                     //xxxx xxx0 | 0000 000k4 = xxxx xxxk4
  53.         if(keybuf==0x00)
  54.         {
  55.                 KeySta=0;
  56.         }
  57.         else if(keybuf==0xFF)
  58.         {
  59.                 KeySta=1;
  60.         }
  61.         else{}
  62. }


复制代码


好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表