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

📄 ql300uart.lst

📁 MB90092字符叠模块应用 通用视频字符叠加器模块QL300A UART接口C51源程序
💻 LST
字号:
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE QL300UART
OBJECT MODULE PLACED IN ql300uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ql300uart.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*视频字符叠加模块(器)UART接口测试程序(仅供参考)
   2          本程序仅提供常用的基本功能,其它功能读者请自行编写
   3          应用产品:QL300A
   4          编译环环境: KEIL C         
   5          简要说明:
   6          本测试程序使用AT89S51,晶振11.0592MHZ
   7            注:读者如果使用更高运行速度请在指令结束插入适当的延时
   8          */
   9          
  10          #include<reg51.h>
  11          #include<intrins.h>
  12          #include<stdio.h>
  13          #include<string.h>
  14          //#include<ql503_spi_public.c>
  15          #define UN  unsigned char
  16          
  17          void csf_main(void);//初始化叠加的默认值
  18          
  19          UN code zfc[]={0,0,0,0,12,0,0,30,0,0,14,0,0,14,0,31,
  20          255,254,31,255,254,24,0,14,24,0,14,24,0,14,24,0,
  21          14,0,0,16,3,255,240,3,255,240,0,12,0,0,12,0,
  22          0,12,0,3,140,0,3,143,252,3,143,252,7,12,0,7,
  23          12,0,7,140,0,15,204,0,15,204,0,28,236,0,28,124,
  24          1,60,63,254,56,15,254,8,0,0,0,0,0,0,0,0};//定
  25          void csf_uart();
  26          sfr16 DPTR=0x82;
  27          
  28          unsigned char bdata bm;
  29          sbit  bm0=bm^0;
  30          sbit  bm1=bm^1;
  31          sbit  bm2=bm^2;
  32          sbit  bm3=bm^3;
  33          sbit  bm4=bm^4;
  34          sbit  bm5=bm^5;
  35          sbit  bm6=bm^6;
  36          sbit  bm7=bm^7;
  37          
  38          void  write_1byte(unsigned char x);
  39          void Tx4b(UN a,b,c,d);
  40          void cls(UN ys);//cm1//按指定颜色清屏0-7
  41          void Neiwai_SaoMiao(UN x);//cm2//内外频及扫描方式选择0-1
  42          void hwy(UN  h,l);//cm3//设定水平方向开始显示的位置0-511
  43          void vwy(UN  h,l);//cm4 PAL方式下设定垂直方向开始显示的位置0-511
  44          void zfjj(UN x);//cm5
  45          void size(UN x);//cm6//字符大小,设置指定行的字符大小,size:大小0-3
  46          void Ding_Wei(UN H,L);//cm7 //定位,设置要显示的起始位置H:行号1-16,L:列号1-35
  47          //void Tx_arry(UN  zfc[]);//字符数组的显示
  48          void Tx_nei_ma(UN  nmH,nmL);//cm8//按字符内码显示1字符,nmH:内码高字节,nmL:内码低字节
  49          void MoRen_Color(UN ys);//cm9//设置默认字符颜色,ys高位0-7,低位0-7
  50          void hj(UN x);//cm10//行距设定0-7
  51          void bk(UN x);//cm11
  52          void yy_ys(UN x);//cm12
  53          void fxg(UN x);//cm13
  54          void yykg(UN x);//cm14
  55          void blinking(UN x);//cm15
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 2   

  56          void lxfszf();//cm16
  57          
  58          void wcode(UN idata zfc[],UN x);//cm17
  59          //无cm18
  60          void copy_f_r(UN m,n);//cm19
  61          void disram(UN x);//cm20
  62          
  63          void delay(unsigned int x);
  64          void delay_ms(unsigned int nMs);//豪秒级的延时<65535ms,,延时函数读者可根据实际使用编写
  65          #define addr  0xff
  66          //============================================================================
  67          //主程序
  68          //============================================================================
  69          void  main(void)
  70           {UN i,j,h,a,b,a1,b1;
  71   1       unsigned int old1,new1;
  72   1        csf_uart();
  73   1      delay_ms(200);
  74   1      cls(1);//按蓝色清屏
  75   1      delay_ms(60);//发清屏指令后延时
  76   1      blinking(0);//不闪烁
  77   1      hj(0);//设行距为0
  78   1      hwy(0,10);//设水平位移
  79   1      vwy(0,12);//设垂直位移
  80   1      yy_ys(0);//设阴影颜色为黑色
  81   1      yykg(2);//设强阴影
  82   1      
  83   1      Ding_Wei(2,7);//定位,第2行第7列
  84   1      disram(8);//调出显示用户自定义RAM的8个字符
  85   1      
  86   1      Ding_Wei(3,9);//定位,第3行第9列
  87   1      MoRen_Color(0x16);//改变默认字符颜色为蓝底黄字
  88   1      disram(4);//调出显示用户自定义RAM的8个字符
  89   1      
  90   1      
  91   1      MoRen_Color(0x17);//改变默认字符颜色为蓝底白字
  92   1      Tx_nei_ma(0,0xa0);//按字符内码显示1字符
  93   1      Tx_nei_ma(0,0xa1);//按字符内码显示1字符
  94   1      Tx_nei_ma(0,0xa2);//按字符内码显示1字符
  95   1      Tx_nei_ma(0,0x02);//按字符内码显示1字符
  96   1      Tx_nei_ma(0,0x03);//按字符内码显示1字符
  97   1      
  98   1      yykg(0);////设为无阴影
  99   1      Ding_Wei(4,2);//定位,第4行第2列
 100   1      hj(2);//设行距为2
 101   1      i=0;
 102   1      while(i<15){Tx_nei_ma(0,0x11+i);i++;}//按字符内码循环显示字符
 103   1      
 104   1      
 105   1      Ding_Wei(5,2);//定位,第5行第2列
 106   1      size(2);//设字符大小为2号字
 107   1      zfjj(1);//设字间距为1
 108   1      bk(2);//有背景显示且框架阴影在底边
 109   1      MoRen_Color(0x27);//
 110   1      i=0;
 111   1      while(i<15){Tx_nei_ma(0,0x11+i);i++;}//按字符内码显示字符
 112   1      Ding_Wei(6,2);
 113   1      size(3);
 114   1      zfjj(3);
 115   1      //bk(1);//有背景显示且框架阴影在底边
 116   1      yykg(0);//设无阴影
 117   1      
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 3   

 118   1      MoRen_Color(0x60);
 119   1      
 120   1      i=0;
 121   1      while(i<8){Tx_nei_ma(0,0x11+i);i++;}//按字符内码显示字符
 122   1      
 123   1      bk(0);//有背景显示且框架阴影在底边
 124   1      Ding_Wei(7,2);
 125   1      MoRen_Color(0x17);
 126   1      disram(8);
 127   1      
 128   1      
 129   1      Ding_Wei(7,2);
 130   1      blinking(1);//设闪烁
 131   1      MoRen_Color(0x17);
 132   1      disram(8);
 133   1      wcode(zfc,5);//写入1个用户自定义字符点阵数据(96个字节)到用户RAM 5区;
 134   1      Ding_Wei(7,10);
 135   1      size(3);
 136   1      Tx_nei_ma(0,0xa0);//按字符内码显示1字符
 137   1      copy_f_r(15,6);//复制用户FLASH 15区的点阵数据到指定的用户RAM 6区 。
 138   1      //---------------------------------------------------------
 139   1      Ding_Wei(1,10);
 140   1      lxfszf();//连续发送字符代码显示
 141   1      write_1byte(1);write_1byte(0xce);delay(100);write_1byte(1);write_1byte(0xcf);delay(100);write_1byte(1);wri
             -te_1byte(0xd0);delay(100);
 142   1      write_1byte(1);write_1byte(0x40);delay(100);write_1byte(1);write_1byte(0x41);delay(100);write_1byte(1);wri
             -te_1byte(0x42);delay_ms(3);
 143   1      //------------------------------------------------------------------------
 144   1      Ding_Wei(1,17);Tx_nei_ma(0,0xa0);//按字符内码显示1字符
 145   1       
 146   1       
 147   1       
 148   1       
 149   1        while(1){;}//主循环
 150   1      
 151   1      }
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'j': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'h': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'a': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'b': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'a1': unreferenced local variable
*** WARNING C280 IN LINE 70 OF QL300UART.C: 'b1': unreferenced local variable
*** WARNING C280 IN LINE 71 OF QL300UART.C: 'old1': unreferenced local variable
*** WARNING C280 IN LINE 71 OF QL300UART.C: 'new1': unreferenced local variable
 152          //==========================================================================
 153          void csf_main(void)//初始化叠加的默认值
 154          {UN idata i;
 155   1      
 156   1        cls(1);//按蓝色清屏
 157   1      
 158   1        delay_ms(70);//清屏后至少插入70ms的延时
 159   1              }
*** WARNING C280 IN LINE 154 OF QL300UART.C: 'i': unreferenced local variable
 160          //----------------------------------------------------------------------------------
 161          
 162          
 163          void csf_uart()
 164          {TMOD=0x21;TH1=0xfa;TL1=0xfa;SCON=0x50;PCON=0x80;//9600波特率
 165   1              TR1=1;}
 166           
 167           
 168           void cls(UN ys)//按指定颜色清屏:ys:0=7
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 4   

 169          {Tx4b(1,ys,0,addr);}
 170          //---------------------------------------------
 171          void Neiwai_SaoMiao(UN x)//内外屏及扫描方式选择:x=0为内同步;x=1为外同步
 172          {Tx4b(2,x,0,addr);}
 173          
 174          //----------------------------------------
 175          void hwy(UN  h,l)////设定水平方向开始显示的位置h:0-1;l:0-0xff
 176          {Tx4b(3,h,l,addr);}
 177          
 178          //----------------------------------------
 179          void vwy(UN  h,l)//PAL方式下设定垂直方向开始显示的位置h:0-1;l:0-0xff
 180          {Tx4b(4,h,l,addr);}
 181          
 182          //----------------------------------------
 183          void zfjj(UN x)//字符间距x:0-3
 184          {Tx4b(5,x,0,addr);}
 185          
 186          //-------字符大小,设置指定行的字符大小,size=0-3:
 187          void size(UN x)
 188          {Tx4b(6,x,0,addr);}
 189          
 190          //-------定位,设置要显示的起始位置--------------------
 191          void Ding_Wei(UN H,L)
 192          {Tx4b(7,H,L,addr);}
 193          
 194          //----------------------------------------
 195          void Tx_nei_ma(UN  nmH,nmL)//按字符内码显示1字符
 196          {Tx4b(8,nmH,nmL,addr);}
 197          
 198          //-------设置默认字符颜色--------------------
 199          void MoRen_Color(UN ys)
 200          {Tx4b(9,ys,0,addr);}
 201          
 202          ////行距设定0-7
 203          void hj(UN x)
 204          {Tx4b(10,x,0,addr);}
 205          
 206          //x=0-3;AT1=0无背景显示,AT1=1有背景显示但背景无框架,AT1=2有背景显示且框架阴影在底边,AT1=3有背景显示且框
             -架阴影在顶边;默认为0
 207          void bk(UN x)
 208          {Tx4b(11,x,0,addr);}
 209          //阴影颜色x=0-7
 210          void yy_ys(UN x)
 211          {Tx4b(12,x,0,addr);}
 212          
 213          //框架效果;0-1;默认为1
 214          void fxg(UN x)
 215          {Tx4b(13,x,0,addr);}
 216          
 217          ////0-2;0=无阴影;1=微阴影;2=强阴影;开关及颜色都在  行距函数里控制
 218          void yykg(UN x)
 219          {Tx4b(14,x,0,addr);}
 220          //0-1;0不闪,1闪
 221          void blinking(UN x)
 222          {Tx4b(15,x,0,addr);}
 223          
 224          void lxfszf()
 225          {Tx4b(16,0,0,addr);
 226   1      
 227   1      }
 228          
 229          //写入1个用户自定义字符点阵数据到指定的用户RAM区;sz[1]=0-7,第二个字节为用户区号//
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 5   

 230          
 231          void wcode(UN idata zfc[],UN x)
 232          {UN i;
 233   1              Tx4b(17,x,0,addr);
 234   1           i=0xff;
 235   1           do
 236   1           {i++;write_1byte(zfc[i]);}//发送字符代码
 237   1           while(i<96-1);
 238   1           
 239   1          while(RI==0){;}RI=0;//返回的0X55可不判断
 240   1         // delay_ms(3);
 241   1      }
 242          
 243          //复制1指定的FLASH区(0-15)的点阵数据到指定RAM区 (0-7)
 244          void copy_f_r(UN m,n)
 245          {Tx4b(19,m,n,addr);delay_ms(2);}
 246          
 247          void disram(UN x)
 248          {Tx4b(20,x,0,addr);}
 249          
 250          
 251          
 252          void Tx4b(UN a,b,c,d)//连续写4个字节--1个指令
 253          {ES=0;write_1byte(0x55);write_1byte(a);write_1byte(b);write_1byte(c);write_1byte(d);ES=1;delay_ms(1);}
 254          
 255          
 256           void  write_1byte(unsigned char x)//写1个字节
 257          {  unsigned char i=0;
 258   1              SBUF=x;while(TI==0){;}TI=0;
 259   1      }
 260          
 261          void delay_ms(unsigned int nMs)//豪秒级的延时<65535ms
 262          {
 263   1              unsigned int n=0;
 264   1              TMOD=0x21;
 265   1              TR0=1;
 266   1              while(n<nMs)////利用T0做定时计数器,循环采样,直到达到定时值
 267   1              {
 268   2                      TH0=0;
 269   2                      TL0=20;
 270   2                      while(TH0<4)
 271   2                      {;
 272   3                      }
 273   2                      n++;
 274   2              }
 275   1              TR0=0;
 276   1      }
 277          
 278          void delay(unsigned int x)
 279          {do{x--;}
 280   1       while(x!=0);
 281   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    994    ----
   CONSTANT SIZE    =     96    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      23
   IDATA SIZE       =   ----       1
   BIT SIZE         =   ----    ----
C51 COMPILER V7.06   QL300UART                                                             11/23/2007 13:52:43 PAGE 6   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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