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

📄 osd.lst

📁 一个用于驱动TFT屏的驱动程序,使用IC:1828,program (无EEPROM 无IR,完整说明)IIC只写一个
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   OSD                                                                   09/29/2006 10:54:51 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE OSD
OBJECT MODULE PLACED IN osd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE osd.c BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          //*********************************************************************
   2          //               osd.c      OSD 设置文件
   3          //               by hibernate  2005.9.29   
   4          //      Copyright(c) ShenZhen Challenge Technology Co.,Ltd 2005
   5          //remarks:本文件根据vxis原参考程序中"osd_vx1828"文件改写
   6          //*********************************************************************
   7          #include <intrins.h>
   8          #include <stdio.h>
   9          
  10          #include "vxis1828.h"
  11          #include "config.h"     
  12          #include "IIC_RW.h"
  13          
  14          //函数说明
  15          void osdDisplay(char pos,char numfont,char *fontcode);
  16          void osdSwitch(char osd_en);
  17          void osd_pos(char block,char posx,char posy);                                                                   // Set position of OSD Function
  18          void osd_size(char block,char sizex,char sizey) ;                                                               // Set Size of OSD Function
  19          //void osd_bigfont(bit);
  20          void osd_clear(char pos);                                                                                                               // Clear font of OSD Function
  21          void clrScreen();                                                                                                                               // Clear all fonts memory of OSD Function
  22          void osd_madr(char block,char pos);                                                                                             // Set block initial address in OSD Function  
  23          void osd_BackColor_H(char block,char color);                                                                    // 加亮背景颜色
  24          void osd_BackColor_N(char block,char color);                                                                    // 正常背景颜色
  25          void osd_ForeColor_H(char block,char color);                                                                    // 加亮前景颜色
  26          void osd_ForeColor_N(char block,char color);                                                                    // 正常前景颜色
  27          void osd_pos_Highlight(char block,char xstart,char xend,char ystart,char yend); // Set Start and End point
             - of Highlight Section of OSD Function
  28          void osd_pos_Blink(char block,char xstart,char xend,char ystart,char yend);             // Set Start and End point of
             - Blink Section of OSD Function
  29          void osd_alpha(char alpha);                                                                                                             // Set OSD alpha-blending Function
  30          void osd_blink(char blink);                                                                                                             // Set OSD blinking rate Function
  31          void adj_britclr(char kind,char value);
  32          
  33          //********************************************
  34          //函数:void osdDisplay()
  35          //作用:osd显示
  36          //参数:         pos          => 8 bits , The 0-7bits address of the starting point
  37          //                           of the fontcodes.
  38          //              numfont  => 8 bits , Number of fontcode
  39          //              fontcode => 8 bits , A pointer of the fonts array to show
  40          //Motion: 1、Show the fonts to the arbitrary position on screen
  41          //********************************************
  42          void osdDisplay(char pos,char numfont,char *fontcode)
  43          {
  44   1              unsigned char i;
  45   1      
  46   1              write1828(cw1,0x10);
  47   1              for(i = 0;i<numfont;i++)
  48   1              {
  49   2                      write1828(cw2,pos+i);
  50   2                      write1828(cw3,fontcode[i]);
  51   2              }
  52   1      }
  53          
C51 COMPILER V7.50   OSD                                                                   09/29/2006 10:54:51 PAGE 2   

  54          //*************************************
  55          //函数:void osdSwitch(char osd_en)
  56          //作用: OSD的开关函数
  57          //参数说明:osd_en        => 8 bits , 低3位是有效,高5位要清0     其中: 0 => Disable; 1 => Enable
  58          //                           0 bit => OSD Bottom Block enable or not
  59          //                           1 bit => OSD Content Block enable or not
  60          //                           2 bit => OSD Title Block enable or not   
  61          //remarks:Setup the three block of osd enable or not
  62          //**************************************
  63          void osdSwitch(char osd_en)
  64          {
  65   1              char idata temp;
  66   1              
  67   1              osd_en = osd_en & 0x07;                                                                  // 低3位是有效,高5位要清0
  68   1              temp = read1828(osd2);           
  69   1              temp = temp & 0xf8;                                                                                      // 保持高5位(清低3位)
  70   1              temp = temp | osd_en;
  71   1              write1828(osd2,temp);
  72   1      }
  73          
  74          
  75          //*************************************
  76          //函数:void osd_pos(char block,char posx,char posy)
  77          //作用: 设置OSD块的位置(size)
  78          //参数说明:  block       => 8 bits , OSD块
  79          //                       posx    => 8 bits , X方向的位置
  80          //                   posy        => 8 bits , Y方向的位置
  81          //remarks:
  82          //**************************************
  83          void osd_pos(char block,char posx,char posy)
  84          {
  85   1              switch(block)
  86   1              {
  87   2                      case title:                                                                                             // Setup position of Title Block
  88   2                              write1828(osd9,posx);
  89   2                              write1828(osd10,posy);
  90   2                              
  91   2                              break;
  92   2      
  93   2                      case content:                                                                                   // Setup position of Content Block
  94   2                              write1828(osd16,posx);
  95   2                              write1828(osd17,posy);
  96   2                              break;
  97   2      
  98   2                      case bottom:                                                                                    // Setup position of Bottom Block
  99   2                              write1828(osd30,posx);
 100   2                              write1828(osd31,posy);
 101   2                              break;
 102   2      
 103   2                      default: break;
 104   2              }
 105   1      }
 106          
 107          //*************************************
 108          //函数:void osd_size(char block,char sizex,char sizey)
 109          //作用: 设置OSD块的大小(size)
 110          //参数说明:  block       => 8 bits , OSD块
 111          //                      sizex    => 8 bits , X方向的大小, 低6位是有效
 112          //                               Value range => for small font:01h-26h
 113          //                                                 for large font:01h-13h
 114          //                      sizey    => 8 bits , Y方向的大小 ,低5位是有效
 115          //                              (Just for Content Block)
C51 COMPILER V7.50   OSD                                                                   09/29/2006 10:54:51 PAGE 3   

 116          //                               Value range => for small font:01h-15h
 117          //                                                       for large font:01h-0ah
 118          //remarks:
 119          //**************************************
 120          void osd_size(char block,char sizex,char sizey)
 121          {
 122   1              
 123   1              switch(block)
 124   1              {
 125   2                      case title:                                                                                             // Setup x size of Title Block
 126   2                              write1828(osd4,sizex);
 127   2                              break;
 128   2      
 129   2                      case content:                                                                                   // Setup x and y size of Content Block
 130   2                              write1828(osd13,sizex);
 131   2                              write1828(osd14,sizey);
 132   2                              break;
 133   2      
 134   2                      case bottom:                                                                                    // Setup x size of Bottom Block
 135   2                              write1828(osd28,sizex);
 136   2                              break;
 137   2                      default:
 138   2                              break;
 139   2              }
 140   1      }
 141          
 142          
 143          //*************************************
 144          //函数:void osd_clear(char pos)
 145          //作用: Clear font of OSD 
 146          //参数说明:     pos      => 8 bits , The 0-7bits address of the starting point
 147          //                           of the fontcodes.
 148          //remarks:Clear 16 fonts of OSD from the starting point
 149          //**************************************
 150          void osd_clear(char pos)
 151          {
 152   1              unsigned char i;
 153   1      
 154   1              write1828(cw1,0x10);
 155   1      
 156   1              for(i = 0;i<0x10;i++)
 157   1              {
 158   2                      write1828(cw2,pos+i);
 159   2                      write1828(cw3,0xc0);
 160   2              }
 161   1      }
 162          
 163          //*************************************
 164          //函数:void osd_clrScreen()
 165          //作用:Clear all fonts memory of OSD
 166          //参数说明:
 167          //remarks:
 168          //**************************************
 169          void clrScreen()
 170          {
 171   1              char idata i;
 172   1              
 173   1              for (i=0;i <= 0x0f;i++)
 174   1                      osd_clear(i*0x10);      
 175   1      }
 176          
 177          //*************************************
C51 COMPILER V7.50   OSD                                                                   09/29/2006 10:54:51 PAGE 4   

 178          //函数:void osd_madr(char block,char pos)
 179          //作用:设置OSD块的初始位置
 180          //参数说明:   block      => 8 bits , osd块
 181          //                pos    => 8 bits , osd块的初始位置
 182          //remarks:title块的初始位置是默认的
 183          //**************************************
 184          void osd_madr(char block,char pos)
 185          {
 186   1              switch(block)
 187   1              {
 188   2                      case content:                                                                                   // Setup position of Content Block
 189   2                              write1828(osd15,pos);
 190   2                              break;
 191   2                      case bottom:                                                                                    // Setup position of Bottom Block
 192   2                              write1828(osd29,pos);
 193   2                              break;
 194   2                      default:
 195   2                              break;
 196   2              }
 197   1      }
 198          
 199          //*************************************
 200          //函数:void osd_BackColor_H(char block,char color)
 201          //作用:设置OSD加亮背景颜色
 202          //参数说明:       block  => 8 bits , osd块
 203          //                color  => 8 bits , 低4位是有效
 204          //Function: OSD Displaying Color=(Video Color*OSD_ALPHA+OSD Color*(16-OSD_ALPHA))/16
 205          //**************************************
 206          void osd_BackColor_H(char block,char color)
 207          {
 208   1              char idata addr,temp;
 209   1                      
 210   1              switch(block)
 211   1              {
 212   2                      case title:                                                                                             // Setup position of Title Block
 213   2                              addr = osd12;                   
 214   2                              break;
 215   2                      case content:                                                                                   // Setup position of Content Block
 216   2                              addr = osd27;
 217   2                              break;
 218   2                      case bottom:                                                                                    // Setup position of Bottom Block
 219   2                              addr = osd37;   
 220   2                              break;
 221   2                      default:
 222   2                              break;
 223   2              }
 224   1      
 225   1              temp = read1828(addr);                                                                          // Read back the register
 226   1              temp = temp & 0x0f;                                                                             // 低4位是有效

⌨️ 快捷键说明

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