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

📄 main.lst

📁 单片机51
💻 LST
📖 第 1 页 / 共 2 页
字号:
 146   1              for(j=0;j<16;j++)
 147   1              {
 148   2                      dd=array[j];
 149   2                      if(j<8) lw(x+j,y,dd);
 150   2                       else  lw(x+j-8,y+1,dd);
 151   2              }       
 152   1      }                       
 153          
 154          /*******************显示函数****************/
 155          void display0(void)                                     //显示汉字“房间床号”
 156          {
 157   1               write_chinese(0,0,fang);
 158   1               write_chinese(16,0,jian);
 159   1               write_chinese(32,0,chuang);
 160   1               write_chinese(48,0,hao);
 161   1               write_chinese(64,0,fang);
 162   1               write_chinese(80,0,jian);
 163   1               write_chinese(96,0,chuang);
 164   1               write_chinese(112,0,hao);
 165   1      }
 166          
 167          void display1(void)                                     //显示具体的房间号和床号
 168          {
 169   1               write_english(8,2,shu[room[0]/10]);write_english(16,2,shu[room[0]%10]);write_english(40,2,shu[bed[0]/10]
             -);write_english(48,2,shu[bed[0]%10]);
 170   1               write_english(72,2,shu[room[1]/10]);write_english(80,2,shu[room[1]%10]);write_english(104,2,shu[bed[1]/1
             -0]);write_english(112,2,shu[bed[1]%10]);
 171   1               write_english(8,4,shu[room[2]/10]);write_english(16,4,shu[room[2]%10]);write_english(40,4,shu[bed[2]/10]
             -);write_english(48,4,shu[bed[2]%10]);
 172   1               write_english(72,4,shu[room[3]/10]);write_english(80,4,shu[room[3]%10]);write_english(104,4,shu[bed[3]/1
             -0]);write_english(112,4,shu[bed[3]%10]);
 173   1               write_english(8,6,shu[room[4]/10]);write_english(16,6,shu[room[4]%10]);write_english(40,6,shu[bed[4]/10]
             -);write_english(48,6,shu[bed[4]%10]);
 174   1               write_english(72,6,shu[room[5]/10]);write_english(80,6,shu[room[5]%10]);write_english(104,6,shu[bed[5]/1
C51 COMPILER V8.02   MAIN                                                                  05/12/2008 12:39:48 PAGE 4   

             -0]);write_english(112,6,shu[bed[5]%10]);
 175   1      }
 176          
 177          /*******************串口设置********************/
 178          void UART_init()
 179          {
 180   1          TMOD=0x21;//设置波特率为9600的定时器1方式和初始
 181   1          PCON=0x00;
 182   1              SCON=0x50;//设置串行口方式
 183   1              IP=0x10;
 184   1              TH1=0xfd;//定时器初值
 185   1              TL1=0xfd;
 186   1              TH0=(65536-8333)/256;
 187   1              TL0=(65536-8333)%256;
 188   1              TCON=0x40;
 189   1              IE=0x92;
 190   1              TR0=0;
 191   1      }
 192          
 193          /***************发送回执****************/
 194          void send(void)
 195          {
 196   1              SBUF=0x55;
 197   1              while(TI==0);
 198   1              TI=0;
 199   1      }
 200          /*****************数据处理保存********************/
 201          void datadeal(void)
 202          {
 203   1              uchar roomdata,beddata;
 204   1              roomdata=receivedata&0xf0;
 205   1              roomdata=roomdata>>4;
 206   1              beddata=receivedata&0x0f;
 207   1              if(room[0]==0){room[0]=roomdata;}
 208   1              else if(room[1]==0){room[1]=roomdata;}
 209   1                      else if(room[2]==0){room[2]=roomdata;}
 210   1                              else if(room[3]==0){room[3]=roomdata;}
 211   1                                      else if(room[4]==0){room[4]=roomdata;}
 212   1                                              else if(room[5]==0){room[5]=roomdata;}
 213   1              if(bed[0]==0){bed[0]=beddata;}
 214   1              else if(bed[1]==0){bed[1]=beddata;}
 215   1                      else if(bed[2]==0){bed[2]=beddata;}     
 216   1                              else if(bed[3]==0){bed[3]=beddata;}     
 217   1                                      else if(bed[4]==0){bed[4]=beddata;}     
 218   1                                              else if(bed[5]==0){bed[5]=beddata;}                                                     
 219   1      }                       
 220          /***************接受数据********************/ 
 221          void receive() interrupt 4 using 1
 222          {        
 223   1              while(RI==0);
 224   1              RI=0;
 225   1              receivedata=SBUF;
 226   1              datadeal();
 227   1              send();
 228   1              TR0=1;
 229   1              buzzer=0;
 230   1      } 
 231          void time0() interrupt 1 using 2
 232          {
 233   1              TH0=(65536-8333)/256;
 234   1              TL0=(65536-8333)%256;
 235   1              Btime1++;
C51 COMPILER V8.02   MAIN                                                                  05/12/2008 12:39:48 PAGE 5   

 236   1              if(Btime1>100)
 237   1              {
 238   2                      buzzer=!buzzer;
 239   2                      Btime1=0;
 240   2                      Btime++;
 241   2              }       
 242   1      }
 243          void key(void)
 244          {       
 245   1              uchar i;
 246   1              P1=0xff;
 247   1              if(P1!=0xff)
 248   1              {
 249   2                      delay(10);
 250   2                      if(P1!=0xff)
 251   2                      {
 252   3                               i=P1;
 253   3                               switch(i)
 254   3                               {
 255   4                                      case 0xfe:room[0]=0;bed[0]=0;break;
 256   4                                      case 0xfd:room[1]=0;bed[1]=0;break;
 257   4                                      case 0xfb:room[2]=0;bed[2]=0;break;
 258   4                                      case 0xf7:room[3]=0;bed[3]=0;break;
 259   4                                      case 0xef:room[4]=0;bed[4]=0;break;
 260   4                                      case 0xdf:room[5]=0;bed[5]=0;break;
 261   4                                      default: break;
 262   4                               }
 263   3                               while(P1!=0xff);
 264   3                      }
 265   2              }
 266   1      }
 267          void main(void)
 268          {
 269   1              UART_init();
 270   1              lcd_init();
 271   1              for(;;)
 272   1              {       
 273   2                      key();
 274   2                      display0();
 275   2                      display1();
 276   2                      if(Btime>4){Btime=0;TR0=0;}
 277   2              }
 278   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1449    ----
   CONSTANT SIZE    =    288    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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