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

📄 beepon.lst

📁 基于LPC2132和图形液晶128*64(型号为MGL(S)-12864T)的控制显示系统。可以显示时间
💻 LST
📖 第 1 页 / 共 5 页
字号:
ARM COMPILER V2.32a,  beepon                                                               25/01/07  14:11:00  PAGE 1   


ARM COMPILER V2.32a, COMPILATION OF MODULE beepon
OBJECT MODULE PLACED IN beepon.OBJ
COMPILER INVOKED BY: d:\Keil\ARM\BIN\CA.exe beepon.c THUMB BROWSE DEBUG TABS(4) 

stmt  level    source

    1          
    2          
    3          #include    <includes.h>
    4          #include <LPC21xx.H>                            /* LPC21xx definitions */
    5          #define     BEEPCON     0x80000000          /*P0.7 引脚控制B1,低电平蜂鸣*/
    6          #define     safe        0x00000800      /*p0.11绿灯亮 低电平亮*/
    7          #define     danger      0x00001000       /*p0.12红灯亮*/
    8          #define     LCD_BL      0x00800000      /*P0.23背光高电平亮 */
    9          #define  GUI_LCM_XMAX       128                         /* 定义液晶x轴的点数 */
   10          #define  GUI_LCM_YMAX       64                          /* 定义液晶y轴的点数 */
   11          
   12          //IODIR1=IODIR1|0xFFFF0000;    使用P1 口时用这种办法改变输入输出方向
   13          //IOSET1=0xB1AA0000 ;
   14          
   15           /* 硬件连接: D0--D7  <===>  P1.16--P1.23   PINSEL2 =0x0008H  P1:25:16 用作GPIO 管脚。
   16          *           LCD_DIR <--->  P0.22
   17          *           LCD_BL   <-->  P0.23
   18          *           /WR     <===>  P0.27
   19          *           /RD     <===>  P0.28
   20          *           /CE     <===>  P0.29
   21          
   22          *           C/D     <===>  P1.27/TDO    跳线
   23          *           /RST    <===>  P1.24*/
   24          
   25          #define  LCD_WR             0x08000000
   26          #define  LCD_RD             0x10000000
   27          #define  LCD_CE             0x20000000 
   28          #define  LCD_CD             0x08000000
   29          #define  LCD_RST            0x01000000
   30          #define  LCD_DIR            0x00400000
   31          
   32          
   33          /* T6963C 命令定义 */
   34          #define  LCD_CUR_POS        0x21                        /* 光标位置设置(只有设置到有效显示地址并打开显示时才看到) */
   35          #define  LCD_CGR_POS        0x22                        /* CGRAM偏置地址设置(可以增加自已的符号) */
   36          #define  LCD_ADR_POS        0x24                        /* 地址指针位置(设置读写操作指针) */
   37          
   38          #define  LCD_TXT_STP        0x40                        /* 文本区首址(从此地址开始向屏幕左上角显示字符) */
   39          #define  LCD_TXT_WID        0x41                        /* 文本区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */
   40          #define  LCD_GRH_STP        0x42                        /* 图形区首址(从此地址开始向屏幕左上角显示点) */
   41          #define  LCD_GRH_WID        0x43                        /* 图形区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */
   42          
   43          #define  LCD_MOD_OR         0x80                        /* 显示方式:逻辑或 */
   44          #define  LCD_MOD_XOR        0x81                        /* 显示方式:逻辑异或 */
   45          #define  LCD_MOD_AND        0x82                        /* 显示方式:逻辑与 */
   46          #define  LCD_MOD_TCH        0x83                        /* 显示方式:文本特征 */
   47          
   48          #define  LCD_DIS_SW         0x90                        /* 显示开关:D0=1/0,光标闪烁启用/禁用 */
   49                                                                  /*          D1=1/0,光标显示启用/禁用 */
   50                                                                  /*          D2=1/0,文本显示启用/禁用(打开后再使用) */
   51                                                                  /*          D3=1/0,图形显示启用/禁用(打开后再使用) */
   52                                                                  
   53          #define  LCD_CUR_SHP        0xA0                        /* 光标形状选择:0xA0-0xA7表示光标占的行数 */
   54          
   55          #define  LCD_AUT_WR         0xB0                        /* 自动写设置 */
   56          #define  LCD_AUT_RD         0xB1                        /* 自动读设置 */
   57          #define  LCD_AUT_OVR        0xB2                        /* 自动读/写结束 */
   58          
   59          #define  LCD_INC_WR         0xC0                        /* 数据一次写,地址加1 */
ARM COMPILER V2.32a,  beepon                                                               25/01/07  14:11:00  PAGE 2   

   60          #define  LCD_INC_RD         0xC1                        /* 数据一次读,地址加1 */
   61          #define  LCD_DEC_WR         0xC2                        /* 数据一次写,地址减1 */
   62          #define  LCD_DEC_RD         0xC3                        /* 数据一次读,地址减1 */
   63          #define  LCD_NOC_WR         0xC4                        /* 数据一次写,地址不变 */
   64          #define  LCD_NOC_RD         0xC5                        /* 数据一次读,地址不变 */
   65          
   66          #define  LCD_SCN_RD         0xE0                        /* 屏读 */
   67          
   68          #define  LCD_SCN_CP         0xE8                        /* 屏拷贝 */
   69          
   70          #define  LCD_BIT_OP         0xF0                        /* 位操作:D0-D2--定义D0-D7位,D3--1为置位,0为清除 */
   71          uint8 gui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX/8];
   72          
   73          /************************************************
   74          *   名称:DelayNS()
   75          *   功能:长软件延时
   76          *   入口参数:dly               延时参数,值越大,延时越长
   77          *   出口参数:无
   78          ***************************************************/
   79          extern void DelayNs(uint32 dly);
   80          extern void LCD_WriteData(uint8 lcddat);
   81          extern void  LCD_FillAll(uint8 dat);
   82          extern uint8 LCD_ReadData();
   83          extern void  LCD_UpdatePoint(uint32 x, uint32 y);
   84          extern uint8  LCD_WriteTCommand2(uint8 command, uint8 dat1);
   85          
   86          extern void  LCD_Initialize(void);
   87          
   88          extern uint8 LCD_ReadState(void);
   89          extern uint8  LCD_WriteTCommand3(uint8 command, uint8 dat1, uint8 dat2);
   90          extern uint8  LCD_WriteTCommand2(uint8 command, uint8 dat1) ;
   91          extern uint8  LCD_WriteTCommand1(uint8 command);
   92          extern uint8  LCD_RTCommand1(uint8 command);
   93          extern uint8  LCD_WriteTData1(uint8 dat);
   94          extern uint8 display_date(uint8 * Disp_date);
   95           extern uint8 display_time(uint8 * Disp_time);
   96           extern uint8 display_speed(uint8 * Disp_speed);
   97           extern void TimeInit(void);
   98          //extern void irq1(void)__irq;
   99          //extern void irq2(void);
  100          extern  void ClkInit();     
  101          void DelayNs2(uint32 dly)
  102          {   uint32  i;
  103   1          for(;dly>0;dly--)
  104   1              for(i=0;i<1000;i++);}                
  105          /***********************************
  106          *名称:  main()                               
  107          *
  108          ********************************************/
  109          
  110          uint8 count=0;  
  111          uint16   frequence;    //存储T0计数值
  112          int main(void)
  113          {       
  114   1          uint32 i;
  115   1          uint8 j;
  116   1          uint32 addr1;
  117   1          uint8 k;
  118   1       
  119   1          uint8   speed;     //存储转换后的车速
  120   1          uint16 m[6];
  121   1          
  122   1          uint8 temp;
  123   1          uint32  times,dates;
  124   1         // uint8 temp;
  125   1          uint8 dat;
ARM COMPILER V2.32a,  beepon                                                               25/01/07  14:11:00  PAGE 3   

  126   1          uint8 datesz[8] ;
  127   1          uint8 timesz[6];
  128   1          uint8 speedsz[3];
  129   1          
  130   1       uint8 Matrixdate[90]=
  131   1      {
  132   1      /*------------------------------------------------------------------------------
  133   1      ;  源文件 / 文字: "日期:"
  134   1      ;  宽×高(像素) : 18×39 横向5个字节
  135   1      ------------------------------------------------------------------------------*/
  136   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  137   1        0x00,0x00,0x00,0x10,0x24,0x08,0x00,0x1F,
  138   1        0xF8,0x24,0xFC,0x00,0x10,0x10,0x7E,0x88,
  139   1        0x00,0x10,0x10,0x24,0x88,0x00,0x10,0x10,
  140   1        0x3C,0xF8,0x00,0x10,0x10,0x24,0x88,0x10,
  141   1        0x1F,0xF0,0x24,0x88,0x10,0x10,0x10,0x3C,
  142   1        0x88,0x00,0x10,0x10,0x24,0xF8,0x00,0x10,
  143   1        0x10,0xFE,0x88,0x00,0x10,0x10,0x14,0x88,
  144   1        0x00,0x1F,0xF0,0x22,0x88,0x10,0x10,0x10,
  145   1        0x41,0x28,0x10,0x10,0x10,0x82,0x10,0x00,
  146   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  147   1        0x00,0x00
  148   1      };
  149   1      uint8 Matrixtime[90] =
  150   1      {
  151   1      /*------------------------------------------------------------------------------
  152   1      ;  源文件 / 文字: 时间:
  153   1      ;  宽×高(像素) : 18×39
  154   1      ------------------------------------------------------------------------------*/
  155   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  156   1        0x00,0x00,0x00,0x20,0x20,0x08,0x00,0x00,
  157   1        0x20,0x17,0xFC,0x00,0x78,0x20,0x50,0x08,
  158   1        0x00,0x4B,0xFC,0x40,0x08,0x00,0x48,0x20,
  159   1        0x47,0xC8,0x00,0x48,0x20,0x44,0x48,0x10,
  160   1        0x79,0x20,0x44,0x48,0x10,0x48,0xA0,0x47,
  161   1        0xC8,0x00,0x48,0xA0,0x44,0x48,0x00,0x48,
  162   1        0x20,0x44,0x48,0x00,0x78,0x20,0x47,0xC8,
  163   1        0x00,0x48,0x20,0x40,0x08,0x10,0x40,0xA0,
  164   1        0x40,0x28,0x10,0x00,0x40,0x40,0x10,0x00,
  165   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  166   1        0x00,0x00
  167   1      };
  168   1      uint8 Matrixspeed[90]   =
  169   1      {
  170   1      /*------------------------------------------------------------------------------
  171   1      ;  源文件 / 文字: 速度:
  172   1      ;  宽×高(像素) : 18×39
  173   1      ------------------------------------------------------------------------------*/
  174   1       0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  175   1        0x00,0x00,0x40,0x80,0x01,0x00,0x00,0x20,
  176   1        0x88,0x00,0x88,0x00,0x2F,0xFC,0x3F,0xFC,
  177   1        0x00,0x00,0x80,0x22,0x20,0x00,0x07,0xF0,
  178   1        0x2F,0xF8,0x00,0xE4,0x90,0x22,0x20,0x10,
  179   1        0x27,0xF0,0x23,0xE0,0x10,0x20,0xC0,0x20,
  180   1        0x00,0x00,0x21,0xA0,0x2F,0xF0,0x00,0x22,
  181   1        0x90,0x22,0x20,0x00,0x24,0x88,0x21,0x40,
  182   1        0x00,0x50,0x80,0x40,0x80,0x10,0x88,0x00,
  183   1        0x43,0x60,0x10,0x07,0xFC,0x9C,0x1C,0x00,
  184   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  185   1        0x00,0x00
  186   1      };
  187   1      uint8 Matrixxie[17]=
  188   1      {
  189   1      /*------------------------------------------------------------------------------
  190   1      ;  源文件 / 文字: /
  191   1      ;  宽×高(像素) : 18×7
ARM COMPILER V2.32a,  beepon                                                               25/01/07  14:11:00  PAGE 4   

  192   1      ------------------------------------------------------------------------------*/
  193   1        0x00,0x00,0x02,0x04,0x04,0x04,0x08,
  194   1        0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x40,
  195   1        0x80,0x00
  196   1      };
  197   1      uint8 MatrixMaohao[12]=
  198   1      {
  199   1      /*------------------------------------------------------------------------------
  200   1      ;  源文件 / 文字: :
  201   1      ;  宽×高(像素) : 18×7
  202   1      ------------------------------------------------------------------------------*/
  203   1       0x00,0x00,
  204   1        0x00,0x10,0x10,0x00,0x00,0x10,0x10,0x00,
  205   1        0x00,0x00
  206   1      };
  207   1      uint8 Matrixkmh[90] =
  208   1      {
  209   1      /*------------------------------------------------------------------------------
  210   1      ;  源文件 / 文字: km/h
  211   1      ;  宽×高(像素) : 18×40
  212   1      ------------------------------------------------------------------------------*/
  213   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  214   1        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,
  215   1        0x00,0x00,0x02,0x80,0x40,0x00,0x00,0x04,
  216   1        0x80,0x40,0x00,0x00,0x04,0x80,0x40,0x00,
  217   1        0x00,0x04,0x80,0x42,0x17,0x38,0x08,0xBC,
  218   1        0x44,0x18,0xC4,0x08,0xC2,0x48,0x10,0x84,
  219   1        0x10,0x82,0x50,0x10,0x84,0x10,0x82,0x68,
  220   1        0x10,0x84,0x20,0x82,0x44,0x10,0x84,0x20,
  221   1        0x82,0x42,0x10,0x84,0x40,0x82,0x41,0x10,
  222   1        0x84,0x40,0x82,0x00,0x00,0x00,0x40,0x00,
  223   1        0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  224   1        0x00,0x00
  225   1      };
  226   1      
  227   1      
  228   1      
  229   1      
  230   1         DelayNs(6000);  //延时为LCD作准备
  231   1      
  232   1         /*引脚定义*/
  233   1          PINSEL0=0x00000005;
  234   1          PINSEL1=0x00000000|0x20000000;  //设置P0.30为CAP0.0;                //设置引脚连接GPIO
  235   1          PINSEL2=PINSEL2&0xFFFFFF03;             //P1.16-P1.31均设置为GPIO
  236   1          EXTMODE=0x08;
  237   1          IODIR0= LCD_WR|LCD_RD|LCD_CE|BEEPCON|safe|danger|LCD_DIR|LCD_BL ;
  238   1          IODIR1=IODIR1|0xFFFF0000;       //P1口暂时定义全为 输出 使用时记得修改
  239   1      
  240   1          IOCLR1|=LCD_RST;                //重置LCD
  241   1          IOSET0=IOSET0|BEEPCON;          //禁止 蜂鸣
  242   1          IOCLR0=IOCLR0|safe;
  243   1          IOCLR0|=danger;
  244   1          DelayNs(1000);
  245   1          IOSET1|=LCD_RST;
  246   1              
  247   1      /*for(i=0;i<2;i++)
  248   1          {
  249   1          IOSET0|=safe;
  250   1          IOSET0|=danger;
  251   1          DelayNs(4000);
  252   1          IOCLR0|=safe;
  253   1          DelayNs(4000);
  254   1          IOCLR0|=danger;
  255   1          DelayNs(4000);
  256   1          }
  257   1          IOCLR0=IOCLR0|LCD_BL;       
ARM COMPILER V2.32a,  beepon                                                               25/01/07  14:11:00  PAGE 5   

  258   1          DelayNs(4000);  */
  259   1               
  260   1          
  261   1          /***************初始化***********************/
  262   1           TimeInit();            //计数器初始化
  263   1           
  264   1          ClkInit();
  265   1                          //实时时钟初始化
  266   1           DelayNs2(4000);
  267   1          LCD_Initialize();       //LCD初始化
  268   1          LCD_FillAll(0x00);      //清屏
  269   1      
  270   1          IOCLR1=IOCLR1&0xFF00FFFF;
  271   1          IOSET0|=safe;
  272   1           IOSET0|=danger;
  273   1           IOCLR0|=LCD_DIR;
  274   1      
  275   1           /*****************显示汉字“日期:”*****************************/ 
  276   1       LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00);           // 置地址指针
  277   1       
  278   1         i=0;
  279   1         dat=Matrixdate[i] ;
  280   1           for(k=0;k<18;k++)
  281   1              {for(j=0;j<5;j++)  

⌨️ 快捷键说明

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