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

📄 main.lst

📁 自己写的测试程序,调试已通过,可以直接使用, 而且有的还有详细的注释.红外采集器软件
💻 LST
📖 第 1 页 / 共 5 页
字号:
 958   1       
 959   1      return(keycode);
 960   1        }
 961          
 962           /*************** initialization all function ********************/
 963          void initialization()
 964          {
 965   1       
 966   1        TMOD=0x01;          /*工作模式,定时器0*/
 967   1        TH0=0x3c;
 968   1        TL0=0xb0;         
 969   1        EA=1; 
 970   1        ET0=1;
 971   1        TR0=1;              /*启动定时器器*/
 972   1      
 973   1           EX1=0;              // out interrupt 
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 17  

 974   1      
 975   1      
 976   1               PX1=0;              // 优先级
 977   1               IT1=1;              // 边沿触发(下降沿有效)
 978   1      
 979   1      /************************/
 980   1              TMOD|= 0x20;
 981   1              SCON = 0x50;
 982   1              TH1 = 0xf4;
 983   1              TL1 = 0xf4;
 984   1              PCON = 0x00;                                            // SMOD=0
 985   1      
 986   1         TR1  = 1;       /* 定时器1启动计数*/
 987   1         ES   = 0;       /* 串口开中断     */
 988   1         PS   = 0;       /* 串口低优先级   */
 989   1         REN  = 1;       /* 串口接收允许   */
 990   1         EA   = 1;       /* 开CPU中断      */
 991   1         DE=0;
 992   1      /*************************/
 993   1      
 994   1        
 995   1        initialization_led_screen();
 996   1                                                                                             // There have lcd_s
             -crren error! 
 997   1       // ds18b20_start();
 998   1        
 999   1        key_flag=0; 
1000   1             delay_iic();
1001   1            read_iic_data(1,&iic_read,0,1);      
1002   1            if(iic_read[0]==-1|iic_read[0]>64|iic_read[0]<0){memery_error();}   //存储器故障!
1003   1        start();       
1004   1      
1005   1            if(iic_read[0]==0)                               // read two times
1006   1                       {    lcd_screen_blank();
1007   2                        found_new(); 
1008   2                        display_set();
1009   2                                        }
1010   1              display_set(); 
1011   1      
1012   1        ch451_init();  
1013   1        ch451_write(0x406);
1014   1         
1015   1      
1016   1       } 
1017           //******************    off    *********************************************//
1018           void off(void)
1019           {
1020   1                    clear_lcd_screen();
1021   1        
1022   1             
1023   1                    write_word(0,3,16,&chinese[63]);  // 重新启动中……
1024   1                    write_word(0,3,32,&chinese[39]);
1025   1                    write_word(0,3,48,&chinese[64]);  
1026   1                    write_word(1,3,0,&chinese[65]); 
1027   1                                                                write_byte(1,3,30,&number[24]);
1028   1                    write_word(1,3,16,&chinese[36]);
1029   1      
1030   1                    
1031   1                    write_byte(1,3,34,&number[24]);
1032   1                    write_byte(1,3,38,&number[24]);
1033   1                    write_byte(1,3,42,&number[24]);
1034   1                    write_byte(1,3,46,&number[24]);
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 18  

1035   1                   // write_byte(1,3,50,&number[24]);
1036   1      
1037   1      
1038   1               delay_1s(20000);
1039   1        EA=0;
1040   1        while(1);
1041   1        }
1042          /*******************  myselfe_number  ******************************/
1043          void myselfe_number(void)
1044          {
1045   1        unsigned char o1,o2;
1046   1        clear_lcd_screen();
1047   1        write_word(0,3,16,&chinese[18]);            //write input a word "本"
1048   1        write_word(0,3,32,&chinese[19]);           //write input a word "机"
1049   1        write_word(0,3,48,&chinese[20]);           //write input a word "编"
1050   1        write_word(1,3,0,&chinese[21]);           //write input a word "号"
1051   1        write_byte(1,3,16,&number[22]);             //write input a byte ":"
1052   1       
1053   1        read_iic_data(1,&iic_read,5,1);
1054   1        o1=iic_read[0]/100;
1055   1        write_byte(1,3,24,&number[o1]);
1056   1        o2=(iic_read[0]-o1*100)/10;
1057   1        write_byte(1,3,32,&number[o2]);
1058   1        o1=(iic_read[0]-o1*100-o2*10)%10;
1059   1        write_byte(1,3,40,&number[o1]);
1060   1       key_delay(60000);
1061   1       key_delay(60000);
1062   1       clear_lcd_screen();
1063   1      }
1064          /*******************  myselfe_number  ******************************/
1065          void myselfe_number_1(void)
1066          {
1067   1        unsigned char o1,o2;
1068   1      
1069   1        write_word(0,0,18,&chinese[18]);            //write input a word "本"
1070   1        write_word(0,0,34,&chinese[19]);           //write input a word "机"
1071   1        write_word(0,0,50,&chinese[20]);           //write input a word "编"
1072   1        write_word(1,0,1,&chinese[21]);           //write input a word "号"
1073   1        write_byte(1,0,16,&number[22]);             //write input a byte ":"
1074   1       
1075   1        read_iic_data(1,&iic_read,5,1);
1076   1        o1=iic_read[0]/100;
1077   1        write_byte(1,0,24,&number[o1]);
1078   1        o2=(iic_read[0]-o1*100)/10;
1079   1        write_byte(1,0,32,&number[o2]);
1080   1        o1=(iic_read[0]-o1*100-o2*10)%10;
1081   1        write_byte(1,0,40,&number[o1]);
1082   1      }
1083          
1084          //**********  给写到LCD SCREEN 的数据求反  ***************/
1085          void changed(bit x,bit k,unsigned char  y[])  
1086           {
1087   1        unsigned char i;
1088   1        unsigned char *p;
1089   1        p=y;
1090   1      
1091   1        if(x==0)
1092   1           {
1093   2                for(i=0;i<16;i++)
1094   2                 {
1095   3                   if(k==1)
1096   3                         {change_byte[i]=~*p;
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 19  

1097   4                     p++;}
1098   3                         else 
1099   3                           {
1100   4                                change_byte[i]=*p;
1101   4                                p++;
1102   4                                }
1103   3                   }}
1104   1         if(x==1)
1105   1         {
1106   2        for(i=0;i<32;i++)
1107   2        {   
1108   3           if(k==1)
1109   3            {
1110   4                change_word[i]=~*p;
1111   4               p++;
1112   4                }
1113   3                else 
1114   3                 {
1115   4                  change_word[i]=*p;
1116   4                      p++;
1117   4                      }
1118   3           }}
1119   1       }
1120          /**************     setup succeed  ************************************/
1121          void setup_succeed(void)
1122          {                                                                     
1123   1        clear_lcd_screen();
1124   1        write_word(0,3,32,&chinese[66]);
1125   1        write_word(0,3,48,&chinese[67]);  
1126   1        write_word(1,3,0,&chinese[55]);
1127   1        write_word(1,3,16,&chinese[56]);
1128   1        write_byte(1,3,32,&number[23]); 
1129   1        key_delay(60000);key_delay(60000);
1130   1        clear_lcd_screen();
1131   1        }
1132          /****************  setup unceed  **************************/
1133          void setup_unsucceed(void)
1134          {                                                                     
1135   1        clear_lcd_screen();
1136   1        write_word(0,3,24,&chinese[25]);
1137   1        write_word(0,3,40,&chinese[26]);  
1138   1        write_word(0,3,56,&chinese[17]);
1139   1        write_word(1,3,8,&chinese[114]);
1140   1        write_word(1,3,24,&chinese[115]);
1141   1      
1142   1        write_byte(1,3,40,&number[23]); 
1143   1        key_delay(60000);key_delay(60000);
1144   1        clear_lcd_screen();
1145   1        }
1146          /*****************    key  *********************************************/
1147          
1148            
1149          void key(void)
1150          {
1151   1       unsigned char i,key_value,ff,bb,ss,display_mode;
1152   1       unsigned char change_value;
1153   1       unsigned char page;
1154   1       int temp;
1155   1       bit minus_flag;
1156   1       bit row1,row2,row3,row4;
1157   1       float temperature_value;                      // ES=0;
1158   1      
C51 COMPILER V7.08   MAIN                                                                  06/13/2007 16:48:08 PAGE 20  

1159   1      
1160   1      
1161   1      //  unsigned long int n1;
1162   1      //  float g_value;
1163   1      //   short int voltage;   
1164   1       
1165   1           key_value=key_code();                                                      
1166   1               key_flag=0;
1167   1                                  //if(key_flag==1){while(1);}
1168   1                       if(key_value==0x58|key_value==0x18)
1169   1                              {  
1170   2                                                                clear_lcd_screen();
1171   2                                              write_word(0,3,40,&chinese[22]);
1172   2                                              write_word(0,3,56,&chinese[106]);
1173   2                                              write_word(1,3,8,&chinese[107]);
1174   2      
1175   2                                              write_byte(1,3,24,&number[27]); 
1176   2                                              write_byte(1,3,28,&number[27]); 
1177   2                                              write_byte(1,3,32,&number[27]); 
1178   2                                              write_byte(1,3,36,&number[27]); 
1179   2                                              write_byte(1,3,40,&number[27]); 
1180   2      
1181   2                                       read_iic_data(1,&iic_read,0,8);delay_iic();
1182   2                                       write_iic_data(3,&iic_read,0,8);delay_iic();                                                                           
1183   2                                             i=iic_read[0];                                       
1184   2                                       for(iic_write[0]=0;iic_write[0]<i;iic_write[0]++)
1185   2                                          {
1186   3                                       read_iic_data(0,&iic_read,iic_write[0]*8,8);delay_iic();
1187   3                                       write_iic_data(2,&iic_read,iic_write[0]*8,8);delay_iic();
1188   3      
1189   3                                          
1190   3                                         }
1191   2                   setup_succeed();
1192   2                                      }
1193   1       
1194   1                       if(key_value==0x60)                    
1195   1                        {
1196   2                          
1197   2                          for(i=0;i<40;i++)
1198   2 

⌨️ 快捷键说明

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