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

📄 ex8-9.lst

📁 《增强型8051单片机实用开发技术》例程代码
💻 LST
字号:
C51 COMPILER V8.18   EX8_9                                                                 11/30/2009 12:58:45 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE EX8_9
OBJECT MODULE PLACED IN ex8-9.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex8-9.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"stc12c5a.h"
   2          sbit BLED=P2^2;                                        //背光控制
   3          void spi_init(void);                           //SPI初始化子程序
   4          void delay(unsigned int us10);                 //延时子程序
   5          void sendspi(unsigned char spidata,unsigned char read,unsigned char dat);  //显示数据发送子程序
   6          void lcd_init_usual(void);                     //液晶初始化子程序
   7          void set_position(unsigned char position);     //确定光标位置子程序
   8          void data_write(unsigned char data1);          //显示单个字符子程序
   9          void chinese_series(unsigned char *series);    //显示汉字字符串子程序
  10          void main (void)  
  11          {       
  12   1              spi_init();
  13   1              lcd_init_usual();
  14   1              BLED=0;
  15   1              set_position(0x82);
  16   1              chinese_series("单片机");
  17   1              data_write('0');
  18   1              data_write('1');
  19   1              while(1);
  20   1      }
  21          void spi_init(void)  //SPI初始化子程序
  22          {
  23   1              AUXR1=0x20;                //将SPI转移到P4口    SPI初始化
  24   1              SPCTL=0xd3;                    //SPI使能,主机模式,/SS无关,先发高(很关键很重要)
  25   1              SPSTAT=0xC0;               //清传输完成标志和写冲突标志
  26   1      }
  27          void delay(unsigned int us10)  //延时子程序
  28          {
  29   1              while(us10--);
  30   1      }
  31          void sendspi(unsigned char spidata,unsigned char read,unsigned char dat)    //显示数据发送子程序
  32          {   
  33   1              unsigned char cmd,dat1,dat2,spi1_status=0;      
  34   1              cmd=(0xf8|read|(dat<<1));
  35   1              SPDAT=cmd;
  36   1              while(spi1_status==0)         //等起始命令传输完毕
  37   1              {
  38   2                      spi1_status=SPSTAT;
  39   2                      spi1_status=spi1_status&0x80;
  40   2              }
  41   1              SPSTAT=0xC0;                  //写1清SPIF标志位
  42   1              spi1_status=0;
  43   1              dat1=spidata&0xf0;
  44   1              SPDAT=dat1;
  45   1              while(spi1_status==0)             //等高4位数据传输完毕
  46   1              {
  47   2                      spi1_status=SPSTAT;
  48   2                      spi1_status=spi1_status&0x80;
  49   2              }
  50   1              SPSTAT=0xC0;                  //写1清SPIF标志位
  51   1              spi1_status=0;
  52   1              dat2=(spidata<<4)&0xf0;
  53   1              SPDAT=dat2;
  54   1              while(spi1_status==0)             //等低4位传输完毕
  55   1              {
C51 COMPILER V8.18   EX8_9                                                                 11/30/2009 12:58:45 PAGE 2   

  56   2                      spi1_status=SPSTAT;
  57   2                      spi1_status=spi1_status&0x80;
  58   2              }
  59   1              SPSTAT=0xC0;                      //写1清SPIF标志位     
  60   1      }
  61          void lcd_init_usual(void)    //液晶初始化子程序
  62          {
  63   1              sendspi(0x30,0,0);       //基本指令集
  64   1              sendspi(0x01,0,0);       //清显示,地址复位
  65   1              delay(2000);
  66   1              sendspi(0x0e,0,0);       //整体显示,开游标,关位置
  67   1              sendspi(0x06,0,0);       //游标方向及移位
  68   1      }
  69          void set_position(unsigned char position)     //确定光标位置子程序
  70          {
  71   1              sendspi(position,0,0);
  72   1      }
  73          void data_write(unsigned char data1)          //显示单个字符子程序
  74          {
  75   1              sendspi(data1,0,1);
  76   1      } 
  77          void chinese_series(unsigned char *series)    //显示汉字字符串子程序
  78          {
  79   1              for(series;*series!=0;series++)
  80   1                      data_write(*series);
  81   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    200    ----
   CONSTANT SIZE    =      7    ----
   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 + -