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

📄 testlcd.lst

📁 该程序是ucosii在51单片机上的移置
💻 LST
字号:
C51 COMPILER V8.08   TESTLCD                                                               04/22/2009 17:44:07 PAGE 1   


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

line level    source

   1          /*-------------------------------------------------------------------------------------------------
   2                                ╔=======================================
   3                                ┆       YG51A开发板配套实验学习例程   ┆
   4                                ┆             Version 2.0             ┆
   5                                ┆                                     ┆
   6                                ┆            扬光电子工作室           ┆
   7                                ┆                                     ┆
   8                                ┆           QQ:573764777              ┆
   9                                ┆         E-mail:yg-stu@163.com       ┆
  10                                ╚=======================================╝  
  11          ********************************** 程序功能说明 ******************************************************
  12          在1602LCD上显示"HELLO YG51A !"和"START! NOW !两行内容,
  13          延迟后从右向左滚动.                                     
  14          ******************************************************************************************************/
  15          
  16          #include "reg52.h"
  17          
  18          #define uchar unsigned char
  19          
  20          typedef bit BOOL  ; 
  21          
  22          sbit rs = P2^6 ; 
  23          sbit rw = P3^6 ;
  24          sbit ep = P2^7 ;
  25          
  26          
  27          void delay(uchar) ;
  28          void lcd_wcmd(uchar) ;
  29          BOOL lcd_bz() ;
  30          void lcd_pos(uchar) ;
  31          void lcd_wdat(uchar) ;
  32          void display(uchar,uchar *) ;
  33          
  34          code uchar  dis1[] = {"HELLO EVERYONE ! "} ;
  35          code uchar  dis2[] = {"START! NOW!     "} ;  //一行16个字符
  36          
  37          
  38          
  39          void longdelay(uchar s)  //长延时
  40          {
  41   1               while(s--)
  42   1               {
  43   2                      delay(60) ;
  44   2               }
  45   1      }
  46          
  47          void delay(uchar ms)
  48          {                       // 延时子程序
  49   1               uchar i ;
  50   1               while(ms--)
  51   1               {
  52   2                      for(i=0;i<250;i++) ;
  53   2               }
  54   1      }
  55          
C51 COMPILER V8.08   TESTLCD                                                               04/22/2009 17:44:07 PAGE 2   

  56          BOOL lcd_bz()
  57          {                                // 测试LCD忙碌状态
  58   1               BOOL result ;
  59   1               rs = 0 ;
  60   1               rw = 1 ;
  61   1               ep = 1 ;
  62   1               result = (BOOL)(P0 & 0x80); //强制类型转换为BOOL,非0则等于1 
  63   1               ep = 0 ;
  64   1               return result ; 
  65   1      }
  66          
  67          void lcd_wcmd(uchar cmd)
  68          {       // 写入指令数据到LCD
  69   1              while(lcd_bz()) ;
  70   1              rs = 0 ;
  71   1              rw = 0 ;
  72   1              ep = 0 ;
  73   1              P0 = cmd ;
  74   1              ep = 1 ;
  75   1              ep = 0 ;  
  76   1      }
  77          
  78          void lcd_pos(uchar pos)
  79          {       
  80   1              lcd_wcmd(pos | 0x80);  //显示数据存储地址设置,最高位为1
  81   1      } 
  82          
  83          void lcd_wdat(uchar dat) 
  84          {                          //写入字符显示数据到LCD
  85   1              while(lcd_bz()) ;
  86   1              rs = 1 ;
  87   1              rw = 0 ;
  88   1              ep = 0 ;
  89   1              P0 = dat ;
  90   1              ep = 1 ;
  91   1              ep = 0 ; 
  92   1      }
  93          
  94          void lcd_init()
  95          {                           //LCD初始化设定
  96   1               lcd_wcmd(0x38) ;   //8位总线 双行显示
  97   1               delay(1) ;
  98   1               lcd_wcmd(0x01) ;   //清显示 光标复位到地址00H位置
  99   1               delay(1) ;
 100   1               lcd_wcmd(0x06) ;   //光标移动方向右移 所有文字不移动
 101   1               delay(1) ;
 102   1               lcd_wcmd(0x0c) ;   //开显示 无光标 不闪烁
 103   1               delay(1) ;
 104   1      }
 105          
 106          /*---------------
 107          函数名称:display()
 108          功能 :在LCD上显示数组的数据
 109          说明 :先写显示地址,后写显示数据
 110          调用 :lcd_wcmd(), lcd_pos()
 111          入口参数:pos 写入的位置,q指向要写入的数据所在的数组
 112          返回值 :无
 113          ----------------*/
 114          void display(uchar pos, uchar *q)
 115          { 
 116   1               uchar i ;
 117   1               //lcd_wcmd(0x01) ; //clear 
C51 COMPILER V8.08   TESTLCD                                                               04/22/2009 17:44:07 PAGE 3   

 118   1               //delay(10) ;
 119   1               lcd_pos(pos) ;
 120   1               for(i=0;i<16;i++)  //写16个字符
 121   1               {
 122   2                        lcd_wdat(*q) ;
 123   2                        q++ ;
 124   2                        longdelay(2) ;
 125   2               } 
 126   1      }
 127          
 128          main()
 129          {
 130   1               lcd_init() ;     //初始化LCD   
 131   1               //delay(10) ;
 132   1               display(0x00,dis1) ;
 133   1               display(0x40,dis2) ;
 134   1               display(0x14,dis1) ;
 135   1               display(0x54,dis2) ;
 136   1               lcd_wcmd(0x07) ;   //文字右移
 137   1               delay(1) ;
 138   1               while(1)
 139   1               {
 140   2               display(0x00,dis1) ;
 141   2               display(0x40,dis2) ;
 142   2               }
 143   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    256    ----
   CONSTANT SIZE    =     35    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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