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

📄 ht1621_drv.lst

📁 PLL的资料文档,包括资料
💻 LST
📖 第 1 页 / 共 5 页
字号:
 105   1        Byte bBits= 0x80; //write mode command and address is 1000b.
 106   1         
 107   1          LCD_CS = 0;
 108   1              LCD_DA = 1;
 109   1              for (i=0; i<4; i++) { //transmit data "1000"
 110   2                      LCD_RW = 0;
 111   2                      if (bBits & 0x80) LCD_DA = 1;
 112   2              else LCD_DA = 0;
 113   2                      bBits <<= 1;
 114   2                      LCD_RW = 1;
 115   2              }
 116   1              //bBits = bByte;
 117   1              HT1621_getMSB(bByte);
 118   1          LCD_CS = 1;
 119   1          LCD_DA = 1;
 120   1      }
 121          
 122          /*F**************************************************************************
 123          * NAME: HT1621_getdata
 124          *----------------------------------------------------------------------------
 125          * PARAMS:
 126          *
 127          * return:
 128          *   Decoded key pressed
 129          *----------------------------------------------------------------------------
 130          * PURPOSE: 
 131          *----------------------------------------------------------------------------
 132          * EXAMPLE:
 133          *----------------------------------------------------------------------------
 134          * NOTE:
 135          *----------------------------------------------------------------------------
 136          * REQUIREMENTS:
 137          *****************************************************************************/
 138          /***************************************************/
 139          void HT1621_getdata(Byte address,Byte bByte) {
 140   1         
 141   1              address = (address | 0x40);//write mode command and address is 101000000b.
 142   1          LCD_CS = 0;
 143   1              LCD_RW = 0;
 144   1              LCD_DA = 1;
 145   1              LCD_RW = 1; 
 146   1              HT1621_getMSB(address);
 147   1              HT1621_getLSB(bByte);
 148   1              LCD_CS = 1;
C51 COMPILER V8.01   HT1621_DRV                                                            08/07/2006 11:16:11 PAGE 10  

 149   1          LCD_DA = 1; 
 150   1      }
 151          
 152          
 153          /*-----------------------------------------------*/
 154          /*LCD所有的显示RAM清除*/
 155          void ht1621_cls (void)
 156          {
 157   1              Byte i; //data
 158   1         
 159   1          LCD_CS = 0;
 160   1              LCD_RW = 0;
 161   1              LCD_DA = 1;
 162   1              LCD_RW = 1;
 163   1              HT1621_getMSB(0x40);
 164   1              for (i=0; i<9; i++){
 165   2                      HT1621_getLSB(0X00);
 166   2                      }
 167   1              LCD_CS = 1;
 168   1          LCD_DA = 1;
 169   1      }
 170          
 171          /*-----------------------------------------------*/
 172          /*ht1621秒钟显示*/
 173          void glht1621_sec(Byte bByte) 
 174          {
 175   1              HT1621_getdata(HT1621SEC_ADDH,ht1621disp_Map[bByte/10]);                /*显示十位*/
 176   1              HT1621_getdata(HT1621SEC_ADDL,ht1621disp_Map[bByte%10]);        /*显示个位*/
 177   1              //HT1621_getdata(HT1621SEC_ADDL,0x06);  /*显示十位*/
 178   1              //HT1621_getdata(HT1621SEC_ADDH,0x06);  /*显示个位*/
 179   1      }
 180          /*-----------------------------------------------*/
 181          /*ht1621分钟显示*/
 182          void glht1621_min(Byte bByte) 
 183          {
 184   1              HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[bByte/10]);                /*显示十位*/
 185   1              HT1621_getdata(HT1621MIN_ADDL,ht1621disp_Map[bByte%10] | HT1621COL);    /*显示个位*/    
 186   1      }
 187          
 188          /*-----------------------------------------------*/
 189          /*ht1621曲目数显示*/
 190          void glht1621_TRACK(Byte bByte) 
 191          {
 192   1              HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[bByte/10]);      /*显示十位*/
 193   1              HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[bByte%10]);      /*显示个位*/    
 194   1      }
 195          
 196          /*-----------------------------------------------*/
 197          /*ht1621“STOP”字符显示*/
 198          void glht1621_stop(void) 
 199          {
 200   1              HT1621_getdata(HT1621_ADDRESS3,0xc7);   /*显示字符“S”*/
 201   1          HT1621_getdata(HT1621_ADDRESS4,0x8e);       /*显示字符“t”*/
 202   1              HT1621_getdata(HT1621_ADDRESS5,0xcc);   /*显示字符“o”*/
 203   1              HT1621_getdata(HT1621_ADDRESS6,0x2f);   /*显示字符“P”*/       
 204   1      }
 205          
 206          /*-----------------------------------------------*/
 207          /*ht1621“REC”字符显示*/
 208          void glht1621_rec(void) 
 209          {
 210   1              HT1621_getdata(HT1621_ADDRESS1,0x8e);   /*显示字符“r”*/
C51 COMPILER V8.01   HT1621_DRV                                                            08/07/2006 11:16:11 PAGE 11  

 211   1          HT1621_getdata(HT1621_ADDRESS2,0x8f);       /*显示字符“E”*/
 212   1      }
 213          
 214          /*-----------------------------------------------*/
 215          /*ht1621 VOLUME调整显示*/
 216          void glht1621_volume(void) 
 217          {
 218   1              HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[vol_value/10] | HT1621VOL);              /*显示十位*/
 219   1              HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[vol_value%10]);  /*显示个位*/
 220   1      }
 221          /*ht1621 P OFF字符显示*/
 222          void glht1621_POFF(void) 
 223          {
 224   1              HT1621_getdata(HT1621TRACK_ADDL,0Xf2);          /*显示“P”*/
 225   1              HT1621_getdata(HT1621MIN_ADDH,0Xbe);            /*显示“O”*/
 226   1              HT1621_getdata(HT1621MIN_ADDL,0Xf0);            /*显示“F”*/
 227   1              HT1621_getdata(HT1621SEC_ADDH,0Xf0);            /*显示“F”*/
 228   1      }
 229          
 230          /*F**************************************************************************
 231          * NAME: dts_DispMem
 232          *----------------------------------------------------------------------------
 233          * PARAMS:
 234          *
 235          * return:
 236          *----------------------------------------------------------------------------
 237          * PURPOSE: 
 238          *   Display task initialization
 239          *----------------------------------------------------------------------------
 240          * EXAMPLE:
 241          *----------------------------------------------------------------------------
 242          * NOTE:
 243          *----------------------------------------------------------------------------
 244          * REQUIREMENTS:
 245          *****************************************************************************/
 246          void dts_DispMem (void)
 247          {
 248   1              Byte temp;
 249   1      
 250   1              temp = (Mem_add - Mem_StartAdd)/2;
 251   1              HT1621_getdata(HT1621_ADDRESS0,0xf7);
 252   1              HT1621_getdata(HT1621SEC_ADDH,ht1621disp_Map[temp/10]);         
 253   1              HT1621_getdata(HT1621SEC_ADDL,ht1621disp_Map[temp%10]);                 
 254   1      }
 255          
 256          /*F**************************************************************************
 257          * NAME: dts_DispFer
 258          *----------------------------------------------------------------------------
 259          * PARAMS:
 260          *
 261          * return:
 262          *----------------------------------------------------------------------------
 263          * PURPOSE: 
 264          *   Display task initialization
 265          *----------------------------------------------------------------------------
 266          * EXAMPLE:
 267          *----------------------------------------------------------------------------
 268          * NOTE:
 269          *----------------------------------------------------------------------------
 270          * REQUIREMENTS:
 271          *****************************************************************************/
 272          void dtsFM_DispFer (void)
C51 COMPILER V8.01   HT1621_DRV                                                            08/07/2006 11:16:11 PAGE 12  

 273          {
 274   1              char temp;
 275   1               if(dts_frequency < 1000){
 276   2                      temp = dts_frequency/100;
 277   2                      //ht1621disp_Buffer[3] = ht1621disp_Map[temp];
 278   2                      HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Map[temp]);
 279   2                      temp = (dts_frequency-temp*100);
 280   2                      //ht1621disp_Buffer[4] = ht1621disp_Map[temp/10];
 281   2                      HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[temp/10]);
 282   2                      //ht1621disp_Buffer[5] = ht1621disp_Map[temp%10];
 283   2                      HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[temp%10]);
 284   2                      //ht1621disp_Buffer[7] = 0x00;
 285   2                      HT1621_getdata(HT1621TRACK_H_ADD,0x00);
 286   2                      }
 287   1                      else{
 288   2                              if(dts_frequency ==1000){
 289   3                                      //ht1621disp_Buffer[3] = ht1621disp_Map[0];
 290   3                                      //ht1621disp_Buffer[4] = ht1621disp_Map[0];
 291   3                                      //ht1621disp_Buffer[5] = ht1621disp_Map[0];
 292   3                                      HT1621_getdata(HT1621TRACK_ADDH,0xbe);
 293   3                                      HT1621_getdata(HT1621TRACK_ADDL,0xbe);
 294   3                                      HT1621_getdata(HT1621MIN_ADDH,0xbe);
 295   3                              }
 296   2                              else {
 297   3                                      //ht1621disp_Buffer[3] = ht1621disp_Map[0];
 298   3                                      HT1621_getdata(HT1621TRACK_ADDH,0xbe);
 299   3                                      temp = (dts_frequency-1000);
 300   3                                      //ht1621disp_Buffer[4] = ht1621disp_Map[temp/10];
 301   3                                      //ht1621disp_Buffer[5] = ht1621disp_Map[temp%10];
 302   3                                      HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Map[temp/10]);
 303   3                                      HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Map[temp%10]);
 304   3                              }
 305   2                      //ht1621disp_Buffer[7] = 0x60;
 306   2                      HT1621_getdata(HT1621TRACK_H_ADD,0x60);
 307   2                      }
 308   1                      //HT1621_getdata(HT1621TRACK_ADDH,ht1621disp_Buffer[3]);
 309   1                      //HT1621_getdata(HT1621TRACK_ADDL,ht1621disp_Buffer[4]);
 310   1                      //HT1621_getdata(HT1621MIN_ADDH,ht1621disp_Buffer[5]);
 311   1                      //HT1621_getdata(HT1621TRACK_H_ADD,ht1621disp_Buffer[7]);
 312   1      }               
 313          
 314          /*LCD字码表*/
 315          Byte code ht1621disp_Map[]={
 316             0xbe,  //0/
 317             0x06,  //1/
 318             0xda,  //2/
 319             0x5e,  //3/
 320             0x66,  //4/
 321             0x7c,  //5/
 322             0xfc,  //6
 323             0x16,  //7
 324             0xfe,  //8
 325             0x7e,  //9
 326          };
 327          
 328          #endif
C51 COMPILER V8.01   HT1621_DRV                                                            08/07/2006 11:16:11 PAGE 13  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION ht1621_init (BEGIN)
                                           ; SOURCE LINE # 80
                                           ; SOURCE LINE # 81
                                           ; SOURCE LINE # 82
0000 D280              SETB    P0_0
                                           ; SOURCE LINE # 83
0002 D282              SETB    P0_2
                                           ; SOURCE LINE # 84
0004 D281              SETB    P0_1
                                           ; SOURCE LINE # 85
0006 22                RET     
             ; FUNCTION ht1621_init (END)

             ; FUNCTION _HT1621_command (BEGIN)
                                           ; SOURCE LINE # 103
;---- Variable 'bByte' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 105
;---- Variable 'bBits' assigned to Register 'R6' ----
0000 7E80              MOV     R6,#080H
                                           ; SOURCE LINE # 107
0002 C282              CLR     P0_2
                                           ; SOURCE LINE # 108
0004 D280              SETB    P0_0
                                           ; SOURCE LINE # 109
;---- Variable 'i' assigned to Register 'R5' ----
0006 E4                CLR     A
0007 FD                MOV     R5,A
0008         ?C0002:
                                           ; SOURCE LINE # 110
0008 C281              CLR     P0_1
                                           ; SOURCE LINE # 111

⌨️ 快捷键说明

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