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

📄 mcu_test.lst

📁 c /c++的智能VGA控制资料。值得大家一看!!
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 13:10:27 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          
   9          #include<Atmel/AT89x52.H>
  10          //定义颜色数据类型(可以是数据结构) 
  11          typedef struct _tcolor
  12          {
  13             unsigned char R;
  14             unsigned char G;
  15             unsigned char B;
  16          } TCOLOR;
  17          #define uint16 unsigned short
  18          #define uint8  unsigned char
  19          TCOLOR Fcolor,  Bcolor;
  20          //*************************************************************
  21          void InitUART(void)  //串口初始化函数,使用11.0592M晶体
  22          {
  23   1              SCON = SCON|0x50;               //选择模式1,8位数据格式,使能UART 
  24   1              PCON |= 0x80;               //波特率加倍
  25   1              TMOD =TMOD| 0x20;               //定时器1:模式2
  26   1          //TH1=256-(2f/32*12*19200)
  27   1              TH1 = 0xfd;                 //定时器1自动装载初值,时钟频率11.0592MHz,fd(19200bps)
  28   1              TL1 = 0xfd;
  29   1              TR1 = 1;                            //定时器1计数使能 
  30   1              REN = 1;                //允许串口接受使能
  31   1      }
  32          /*
  33          ******************************************************************
  34          *
  35          * 名称:    write_byte()
  36          * 功能:    向串口发送一个字节的数据
  37          * 入口参数:i为待发送的字节数据
  38          ******************************************************************
  39          */
  40          
  41          void write_byte(uint8 i)
  42          {
  43   1              SBUF=i;
  44   1              while(TI==0){}
  45   1          TI=0;
  46   1      }
  47          
  48          
  49          /*
  50          ******************************************************************
  51          *
  52          * 名称:    MCU_Draw_String()
  53          * 功能:    利用中英文汉字库显示中英文
  54          * 入口参数:x=起点X轴坐标;y=起点Y轴坐标;
  55          *           mode=汉字库类型选择;string=指向需显示的内容
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 13:10:27 PAGE 2   

  56          ******************************************************************
  57          */
  58          void  MCU_Draw_String(uint16 x, uint16 y, uint8 mode,char *string)
  59          {
  60   1              write_byte(0x81);  //指令开始 
  61   1              write_byte(mode);  //汉字库指令代码
  62   1      
  63   1              write_byte(Bcolor.B);  //背景色3个字节
  64   1              write_byte(Bcolor.G);  //绿
  65   1              write_byte(Bcolor.R);  //红
  66   1              write_byte(Fcolor.B);  //前景色3个字节
  67   1              write_byte(Fcolor.G);  //绿
  68   1              write_byte(Fcolor.R);  //红
  69   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
  70   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
  71   1              write_byte(y/100);  //起点位置y轴坐标
  72   1              write_byte(y%100); //起点位置y轴坐标
  73   1              while(*string)                  //为0时(字符串结束)退出
  74   1         {
  75   2          write_byte(*string);
  76   2              string++;
  77   2         }
  78   1              write_byte(0x84);   //指令结束 
  79   1      }
  80          
  81          /*
  82          ******************************************************************
  83          *
  84          * 名称:    MCU_Draw_Variable()
  85          * 功能:    利用中英文汉字库显示变量
  86          * 入口参数:x=起点X轴坐标;y=起点Y轴坐标
  87          *           mode=汉字库类型选择;i=变量值
  88          ******************************************************************
  89          */
  90          void  MCU_Draw_Variable(uint16 x, uint16 y, uint8 mode,uint16 i)
  91          {
  92   1              write_byte(0x81);  //指令开始 
  93   1              write_byte(mode|0x10); 
  94   1      
  95   1              write_byte(Bcolor.B);  //背景色3个字节
  96   1              write_byte(Bcolor.G);  //绿
  97   1              write_byte(Bcolor.R);  //红
  98   1              write_byte(Fcolor.B);  //前景色3个字节
  99   1              write_byte(Fcolor.G);  //绿
 100   1              write_byte(Fcolor.R);  //红
 101   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
 102   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
 103   1              write_byte(y/100);  //起点位置y轴坐标
 104   1              write_byte(y%100); //起点位置y轴坐标
 105   1              write_byte(i/100);  //变量
 106   1              write_byte(i%100); //
 107   1              write_byte(0x84);   //指令结束 
 108   1      
 109   1      }
 110          /****************************************************************************
 111          * 名称:MCU_Draw_Pic()
 112          * 功能:显示一幅图片
 113          *     
 114          * 入口参数:x           起点的x坐标值
 115          *           y           起点的y坐标值
 116          *           num     图片编号
 117          ****************************************************************************/
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 13:10:27 PAGE 3   

 118          void  MCU_Draw_Pic(uint16 x,uint16 y,uint16 num)
 119          {
 120   1              write_byte(0x81);  //指令开始 
 121   1          write_byte(0x20);
 122   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
 123   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
 124   1              write_byte(y/100);  //起点位置y轴坐标
 125   1              write_byte(y%100); //起点位置y轴坐标
 126   1              write_byte(num/100);  //图片编号
 127   1              write_byte(num%100); //
 128   1              write_byte(0x84);   //指令结束 
 129   1      
 130   1      }
 131          /****************************************************************************
 132          * 名称:MCU_Draw_Pic_Auto()
 133          * 功能:循环显示多幅图片,产生动画效果;当显示到第end幅时,又从第start开始重新显示,不断循环
 134          *     
 135          * 入口参数:x           起点的x坐标值
 136          *           y           起点的y坐标值
 137          *           start       起始图片编号
 138          *           end     结束图片编号
 139          *           T       显示时间间隔           //为0时表示关闭动画
 140          ****************************************************************************/
 141          void  MCU_Draw_Pic_Auto(uint16 x,uint16 y,uint16 start,uint16 end,uint8 T)
 142          {
 143   1              write_byte(0x81);  //指令开始 
 144   1          write_byte(0x21);
 145   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
 146   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
 147   1              write_byte(y/100);  //起点位置y轴坐标
 148   1              write_byte(y%100); //起点位置y轴坐标
 149   1      
 150   1              write_byte(start/100);  // 起始图片编号
 151   1              write_byte(start%100); //
 152   1              write_byte(end/100);  //   结束图片编号
 153   1              write_byte(end%100); //
 154   1      
 155   1              write_byte(T);   //指令结束 
 156   1              write_byte(0x84);   //指令结束 
 157   1      
 158   1      }
 159          /****************************************************************************
 160          * 名称:MCU_Draw_Pic_Step()
 161          * 功能:顺序显示多幅图片,当显示到第end幅时停止显示
 162          *     
 163          * 入口参数:x           起点的x坐标值
 164          *           y           起点的y坐标值
 165          *           start       起始图片编号
 166          *           end     结束图片编号
 167          *           T       显示时间间隔           //为0时表示关闭顺序显示
 168          ****************************************************************************/
 169          void  MCU_Draw_Pic_Step(uint16 x,uint16 y,uint16 start,uint16 end,uint8 T)
 170          {
 171   1              write_byte(0x81);  //指令开始 
 172   1          write_byte(0x22);
 173   1              write_byte(x/100);  //起点位置x轴坐标(取整运算-x为两字节变量,高低两字节100进1) 
 174   1              write_byte(x%100); //起点位置x轴坐标(取模运算) 
 175   1              write_byte(y/100);  //起点位置y轴坐标
 176   1              write_byte(y%100); //起点位置y轴坐标
 177   1              write_byte(start/100);  // 起始图片编号
 178   1              write_byte(start%100); //
 179   1              write_byte(end/100);  //   结束图片编号
C51 COMPILER V8.02   MCU_TEST                                                              03/31/2009 13:10:27 PAGE 4   

 180   1              write_byte(end%100); //
 181   1              write_byte(T);   //指令结束 
 182   1              write_byte(0x84);   //指令结束 
 183   1      
 184   1      }
 185          /*
 186          ******************************************************************
 187          *
 188          * 名称:MCU_Draw_LineWith()
 189          * 功能:指定起点和终点画直线。
 190          * 入口参数:x0 直线起点所在列的位置
 191          *                       y0 直线起点所在行的位置
 192          *                       x1 直线终点所在列的位置
 193          *                       y1 直线终点所在行的位置
 194          *           width 直线宽度 (需小于30)         
 195          ******************************************************************

⌨️ 快捷键说明

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