⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hd7279.lst

📁 hd7279对键盘和数码管矩阵扫描译码显示功能
💻 LST
📖 第 1 页 / 共 2 页
字号:
 125   1              DBYTE[0X00A6]=0xe1;             /*启动看门狗*/
 126   1              Send_Byte(0xa4); /*HD7279复位*/
 127   1              Write_Hd7279(ACT_CTL,0x1f); /*HD7279启动消隐功能,能提高灯的亮度*/
 128   1              Write_Hd7279(0xc9,0x03);        /*上电显示6、5、4、3*/
 129   1              Write_Hd7279(0xca,0x04);
 130   1              Write_Hd7279(0xcb,0x05);
 131   1              Write_Hd7279(0xcc,0x06);
 132   1              }
 133          
 134          
 135          void int1_Hd7279key(void) interrupt 0 /*外部中断0函数*/
 136                  {         
 137   1              Keyboard_Out=Read_Hd7279(0x15); /*读取键值*/ 
 138   1              switch(Keyboard_Out) 
 139   1                      {/*键盘设置*/
 140   2                      case 16:Keyboard_Out=0;
 141   2                              Set_Bit(Keyboard_Flag); break;/*设置键标志*/
 142   2                      case 27:Keyboard_Out=1;
 143   2                              Set_Bit(Keyboard_Flag); break;
 144   2                      case 19:Keyboard_Out=2;
 145   2                              Set_Bit(Keyboard_Flag); break;
 146   2                      case 11:Keyboard_Out=3;
 147   2                              Set_Bit(Keyboard_Flag); break;
 148   2                      case 26:Keyboard_Out=4;
 149   2                              Set_Bit(Keyboard_Flag); break;
 150   2                      case 18:Keyboard_Out=5;
 151   2                              Set_Bit(Keyboard_Flag); break;
 152   2                      case 10:Keyboard_Out=6;
 153   2                              Set_Bit(Keyboard_Flag); break;
 154   2                      case 25:Keyboard_Out=7;
 155   2                              Set_Bit(Keyboard_Flag); break;
 156   2                      case 17:Keyboard_Out=8;
 157   2                              Set_Bit(Keyboard_Flag); break;
 158   2                      case 9:Keyboard_Out=9;
 159   2                              Set_Bit(Keyboard_Flag); break;
 160   2                      case 3:Keyboard_Out=10;
 161   2                              Set_Bit(Keyboard_Flag); break;
 162   2                      case 2:Keyboard_Out=11;
 163   2                              Set_Bit(Keyboard_Flag); break;
 164   2                      case 1:Keyboard_Out=12;
 165   2                              Set_Bit(Keyboard_Flag); break;
 166   2                      case 0:Keyboard_Out=13;
 167   2                              Set_Bit(Keyboard_Flag); break;
 168   2                      case 24:Keyboard_Out=14;                   /* "*"号键 */
 169   2                              Set_Bit(Keyboard_Flag); break;
 170   2                      case 8:Keyboard_Out=15;                   /* "#"号键 */
 171   2                              Set_Bit(Keyboard_Flag); break;
C51 COMPILER V7.20   HD7279                                                                04/28/2007 16:48:04 PAGE 4   

 172   2                      default:break;
 173   2                      }
 174   1              } 
 175          
 176          void Short_Delay(void) /*短延时函数*/
 177                  { 
 178   1              BYTE i;
 179   1              for(i=0;i<0x08;i++);
 180   1              }
 181          
 182          void Long_Delay(void) /*长延时函数*/
 183                  {
 184   1              BYTE i;
 185   1              for(i=0;i<0x30;i++);
 186   1              }
 187          
 188          void Led_On(BYTE Led_Num) /*点亮LED灯函数*/
 189                  {
 190   1              Write_Hd7279(SEG_ON,Led_Num);  /*让Led_Num个数码管亮*/
 191   1              }
 192          
 193          void Led_Off(BYTE Led_Num) /*熄灭LED灯函数*/
 194                  {
 195   1              Write_Hd7279(SEG_OFF,Led_Num);
 196   1              }
 197          
 198          void Write_Hd7279(BYTE Command,BYTE Data) /*HD7279写函数*/
 199                  { 
 200   1              Send_Byte(Command);      /*先发送命令*/
 201   1              Send_Byte(Data);         /*再接收字节*/
 202   1              }
 203          
 204          BYTE Read_Hd7279(BYTE Command) /*HD7279读函数*/
 205                  { 
 206   1              Send_Byte(Command);             /*先发送命令*/
 207   1              return(Receive_Byte()); /*再接收字节*/
 208   1              }
 209          
 210          
 211          void Send_Byte(BYTE Data_Out) /*向HD7279发送字节函数*/
 212                  { 
 213   1              BYTE i;
 214   1              Long_Delay();
 215   1              for(i=0;i<8;i++)
 216   1                      { 
 217   2                      if(Data_Out&0x80) 
 218   2                              Set_Bit(Hd7279_Data);
 219   2              else 
 220   2                              Clear_Bit(Hd7279_Data);
 221   2              Set_Bit(Hd7279_Clk);
 222   2              Short_Delay();
 223   2              Clear_Bit(Hd7279_Clk);/*下降沿发出数据*/
 224   2              Short_Delay();            
 225   2              Data_Out=Data_Out<<1;
 226   2              }
 227   1          Clear_Bit(Hd7279_Data);
 228   1              }
 229          
 230          
 231          BYTE Receive_Byte(void)  /*从HD7279接收字节函数*/
 232                  { 
 233   1              BYTE i,Data_In;
C51 COMPILER V7.20   HD7279                                                                04/28/2007 16:48:04 PAGE 5   

 234   1              Set_Bit(Hd7279_Data);
 235   1              Long_Delay();
 236   1              for(i=0;i<8;i++)
 237   1                      {
 238   2                      Set_Bit(Hd7279_Clk);
 239   2              Short_Delay();
 240   2              Data_In=Data_In<<1;
 241   2              if(Hd7279_Data)  /*数据线上为1时*/
 242   2                              Data_In=Data_In|0x01;
 243   2              Clear_Bit(Hd7279_Clk);
 244   2              Short_Delay();
 245   2              }
 246   1          Clear_Bit(Hd7279_Data);
 247   1          return(Data_In);
 248   1              }
 249          /*END*/ 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    585    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -