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

📄 1602c.lst

📁 简单的aduc834定时计数器测试小程序
💻 LST
字号:
C51 COMPILER V8.08   1602C                                                                 04/01/2009 15:14:43 PAGE 1   


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

line level    source

   1          #include<ADI/ADuC834.h>    //包含头文件,这个嘛,就不用多说了~~ 
   2          #define uint unsigned int  //预定义一下 
   3          #define uchar unsigned char 
   4          sbit rs=P2^3;    //1602的数据/指令选择控制线 
   5          sbit rw=P2^4;        //1602的读写控制线 
   6          sbit en=P2^5;        //1602的使能控制线 
   7          /*P2口接1602的D0~D7,注意不要接错了顺序,我以前可在这上面吃过亏~*/ 
   8          uchar n,m,TCcount=0;
   9          uchar code table[]="LCD1602 check ok"; //要显示的内容1放入数组tablel 
  10          uchar code table1[]="study up";             //要显示的内容2放入数组table1 
  11          void delay(uint n)       //延时函数                       
  12          { 
  13   1          uint x,y; 
  14   1          for(x=n;x>0;x--) 
  15   1              for(y=110;y>0;y--); 
  16   1      } 
  17          //中断初始化**************************************************************************************
  18          void sys_init(void)
  19          {
  20   1              ET0=1;
  21   1              EA=1;
  22   1      }
  23          //定时计数器初始化**************************************************************************************
  24          void TC_init(void)
  25          {
  26   1              TMOD|=0x01;
  27   1              TH0=0;
  28   1              TL0=0;
  29   1              TR0=1;
  30   1      }
  31          void lcd_wcom(uchar com)  //1602写命令函数                 
  32          { 
  33   1          rs=0;            //选择指令寄存器 
  34   1          rw=0;            //选择写 
  35   1          P0=com;            //把命令字送入P2 
  36   1          delay(5);            //延时一小会儿,让1602准备接收数据 
  37   1          en=1;           //使能线电平变化,命令送入1602的8位数据口 
  38   1          en=0; 
  39   1      } 
  40          void lcd_wdat(uchar dat)        //1602写数据函数       
  41          { 
  42   1          rs=1;        //选择数据寄存器 
  43   1          rw=0;        //选择写 
  44   1          P0=dat;        //把要显示的数据送入P2 
  45   1          delay(5);        //延时一小会儿,让1602准备接收数据 
  46   1          en=1;        //使能线电平变化,数据送入1602的8位数据口 
  47   1          en=0; 
  48   1      } 
  49          void lcd_init()              //1602初始化函数       
  50          { 
  51   1          lcd_wcom(0x38);       //8位数据,双列,5*7字形       
  52   1          lcd_wcom(0x0F);      //开启显示屏,关光标,光标不闪烁 
  53   1          lcd_wcom(0x06);    //显示地址递增,即写一个数据后,显示位置右移一位 
  54   1          lcd_wcom(0x01);    //清屏 
  55   1      } 
C51 COMPILER V8.08   1602C                                                                 04/01/2009 15:14:43 PAGE 2   

  56          void T0_int() interrupt 1 //定时器0中断
  57          {
  58   1              ET0=0;
  59   1              TH0=0;
  60   1              TL0=0;
  61   1              TCcount++;
  62   1              if(TCcount==10)
  63   1              {               
  64   2                lcd_wcom(0x80);
  65   2                for(n=0;n<8;n++)   //将table1[]中的数据依次写入1602显示 
  66   2          {     
  67   3            lcd_wdat(table1[n]); 
  68   3            delay(1); 
  69   3          }
  70   2        }
  71   1        if(TCcount==20)
  72   1        {
  73   2              lcd_wcom(0x80+0x40);
  74   2              for(m=0;m<16;m++)     //将table[]中的数据依次写入1602显示 
  75   2          { 
  76   3            lcd_wdat(table[m]);           
  77   3            delay(1); 
  78   3          }
  79   2        }
  80   1        if(TCcount==30)
  81   1        {
  82   2              lcd_wcom(0x80);
  83   2              for(m=0;m<16;m++)     //将table[]中的数据依次写入1602显示 
  84   2          { 
  85   3            lcd_wdat(table[m]);           
  86   3            delay(1); 
  87   3          }
  88   2        }
  89   1        if(TCcount==40)
  90   1              {  
  91   2                      TCcount=0;              
  92   2                lcd_wcom(0x80+0x40);
  93   2                for(n=0;n<8;n++)   //将table1[]中的数据依次写入1602显示 
  94   2          {     
  95   3            lcd_wdat(table1[n]); 
  96   3            delay(1); 
  97   3          }
  98   2        }
  99   1         ET0=1;
 100   1      }
 101          void main()            //主函数 
 102          {       
 103   1          sys_init();
 104   1          TC_init();
 105   1          lcd_init();                 //液晶初始化 
 106   1          lcd_wcom(0x80);   //显示地址设为80H(即00H,)上排第一位       
 107   1          for(m=0;m<16;m++)     //将table[]中的数据依次写入1602显示 
 108   1          { 
 109   2                  lcd_wdat(table[m]);           
 110   2                  delay(1); 
 111   2          } 
 112   1          lcd_wcom(0x80+0x44); //重新设定显示地址为0xc4,即下排第5位 
 113   1          for(n=0;n<8;n++)   //将table1[]中的数据依次写入1602显示 
 114   1          {     
 115   2                  lcd_wdat(table1[n]); 
 116   2                 delay(1); 
 117   2          } 
C51 COMPILER V8.08   1602C                                                                 04/01/2009 15:14:43 PAGE 3   

 118   1          while(1);        //动态停机 
 119   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    333    ----
   CONSTANT SIZE    =     26    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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