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

📄 mcu_test.lst

📁 c /c++的智能VGA控制资料。值得大家一看!!
💻 LST
字号:
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 12:43:31 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MCU_TEST
OBJECT MODULE PLACED IN mcu_test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mcu_test.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //下面是图片的排序号。它是一个头文件,需将其加入到您的程序中。
   2          #define        hehua              0
   3          #define        pic_0              1
   4          #define        pic_1              2
   5          #define        pic_2              3
   6          #define        wheel_0              4
   7          #define        wheel_1              5
   8          #include<Atmel/AT89x52.H>
   9          //定义颜色数据类型(可以是数据结构) 
  10          typedef struct _tcolor
  11          {
  12             unsigned char R;
  13             unsigned char G;
  14             unsigned char B;
  15          } TCOLOR;
  16          #define uint16 unsigned short
  17          #define uint8  unsigned char
  18          TCOLOR Fcolor,  Bcolor;
  19          //*************************************************************
  20          void InitUART(void)  //串口初始化函数,使用11.0592M晶体
  21          {
  22   1              SCON = SCON|0x50;               //选择模式1,8位数据格式,使能UART 
  23   1              PCON |= 0x80;               //波特率加倍
  24   1              TMOD =TMOD| 0x20;               //定时器1:模式2
  25   1          //TH1=256-(2f/32*12*19200)
  26   1              TH1 = 0xfd;                 //定时器1自动装载初值,时钟频率11.0592MHz,fd(19200bps)
  27   1              TL1 = 0xfd;
  28   1              TR1 = 1;                            //定时器1计数使能 
  29   1              REN = 1;                //允许串口接受使能
  30   1      }
  31          /*
  32          ******************************************************************
  33          *
  34          * 名称:    write_byte()
  35          * 功能:    向串口发送一个字节的数据
  36          * 入口参数:i为待发送的字节数据
  37          ******************************************************************
  38          */
  39          
  40          void write_byte(uint8 i)
  41          {
  42   1              SBUF=i;
  43   1              while(TI==0){}
  44   1          TI=0;
  45   1      }
  46          /****************************************************************************
  47          * 名称:MCU_Draw_Pic()
  48          * 功能:显示一幅图片
  49          *     
  50          * 入口参数:x           起点的x坐标值
  51          *           y           起点的y坐标值
  52          *           num     图片编号
  53          ****************************************************************************/
  54          void  MCU_Draw_Pic(uint16 x,uint16 y,uint16 num)
  55          {
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 12:43:31 PAGE 2   

  56   1              write_byte(0x81);  //指令开始 
  57   1          write_byte(0x20);
  58   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
  59   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
  60   1              write_byte(y/100);  //起点位置y轴坐标
  61   1              write_byte(y%100); //起点位置y轴坐标
  62   1              write_byte(num/100);  //图片编号
  63   1              write_byte(num%100); //
  64   1              write_byte(0x84);   //指令结束 
  65   1      
  66   1      }
  67          /****************************************************************************
  68          * 名称:MCU_Save_Window()
  69          * 功能:
  70          *     
  71          * 入口参数:
  72          *           
  73          *           num     后台窗口编号编号
  74          ****************************************************************************/
  75          void  MCU_Save_Window(uint8 num)
  76          {
  77   1          if(num>3) return;
  78   1              write_byte(0x81);  //指令开始 
  79   1          write_byte(0x50);
  80   1              write_byte(num);  
  81   1              write_byte(0x84);   //指令结束 
  82   1      
  83   1      }
  84          /****************************************************************************
  85          * 名称:MCU_ReSave_Window()
  86          * 功能:
  87          *     
  88          * 入口参数:
  89          *           
  90          *           num     后台窗口编号编号
  91          ****************************************************************************/
  92          void  MCU_ReSave_Window(uint8 num)
  93          {
  94   1          if(num>3) return;
  95   1              write_byte(0x81);  //指令开始 
  96   1          write_byte(0x51);
  97   1              write_byte(num);  
  98   1              write_byte(0x84);   //指令结束 
  99   1      }
 100          /****************************************************************************
 101          * 名称:MCU_Change_WriteWindow()
 102          * 功能:
 103          *     
 104          * 入口参数:
 105          *           
 106          *           num     后台窗口编号编号
 107          ****************************************************************************/
 108          void  MCU_Change_WriteWindow(uint8 num)
 109          {
 110   1          if(num>3) return;
 111   1              write_byte(0x81);  //指令开始 
 112   1          write_byte(0x52);
 113   1              write_byte(num);  
 114   1              write_byte(0x84);   //指令结束 
 115   1      }
 116          uint16 mouse_x,mouse_y;
 117          uint8  mouse_buf[5];
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 12:43:31 PAGE 3   

 118          uint8  cnt=0;
 119          void Wait_MouseKeyDown(void)
 120          {
 121   1         uint8 ch;
 122   1         while(1)
 123   1        {     if(RI==0)       continue;
 124   2          ch=SBUF;
 125   2              RI=0;
 126   2          if((cnt==0) && ((ch==0xf3)||(ch==0xf4)))   {cnt++;}
 127   2          else if((cnt==1)&& (ch<100)) {mouse_buf[cnt]=ch;cnt++;}
 128   2              else if((cnt==2)&& (ch<100)) {mouse_buf[cnt]=ch;cnt++;}
 129   2              else if((cnt==3)&& (ch<100)) {mouse_buf[cnt]=ch;cnt++;}
 130   2          else if((cnt==4)&& (ch<100)) 
 131   2              {
 132   3                        
 133   3                        mouse_buf[cnt]=ch;
 134   3                        cnt=0;
 135   3                        mouse_x=mouse_buf[1]*100+mouse_buf[2];
 136   3                        mouse_y=mouse_buf[3]*100+mouse_buf[4];
 137   3                        break;
 138   3              }
 139   2              else {cnt=0;}
 140   2        }
 141   1      }
 142          /*
 143          ******************************************************************
 144          *
 145          * 名称:    MCU_Mouse()
 146          * 功能:    
 147          * 入口参数:
 148          ******************************************************************
 149          */
 150          void  MCU_Mouse(uint8 en)
 151          {
 152   1              write_byte(0x81);  //指令开始 
 153   1              if(en) write_byte(0x40);  //指令代码
 154   1              else   write_byte(0x41);  //指令代码
 155   1              write_byte(0x84);    //指令结束 
 156   1      } 
 157          void main(void)     
 158          { 
 159   1          uint16 delay;
 160   1              uint8 i=2;
 161   1              for(delay=0;delay<65530;delay++);//延迟一点时间,等待智能VGA控制板初始化完毕    
 162   1          InitUART();
 163   1          MCU_Draw_Pic(0,0,0);
 164   1              MCU_Save_Window(1);
 165   1              MCU_Change_WriteWindow(2);
 166   1              MCU_Draw_Pic(0,0,1);
 167   1              MCU_Change_WriteWindow(3);
 168   1              MCU_Draw_Pic(0,0,2);
 169   1              MCU_Change_WriteWindow(0);
 170   1              MCU_Mouse(1);            //打开鼠标功能 
 171   1      
 172   1        while(1)
 173   1        {
 174   2          Wait_MouseKeyDown();  //等待鼠标或触摸屏按下并获取按下时的坐标
 175   2              MCU_ReSave_Window(i);
 176   2              i++;
 177   2              if(i>3) i=1;
 178   2         }
 179   1          while(1);
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 12:43:31 PAGE 4   

 180   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    463    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16       5
   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 + -