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

📄 time.lst

📁 再来一个IIC的时钟实现的例程吧。都是自己写的
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   TIME                                                                  03/21/2007 22:26:54 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TIME
OBJECT MODULE PLACED IN time.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE time.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<at89x52.h>
   2          #define uchar unsigned char
   3          #define SCL P1_0
   4          #define SDA P1_1
   5          
   6          #define E1 P1_3
   7          #define E2 P1_2
   8          #define RS P3_5
   9          #define RW P3_6
  10          #define E P3_7
  11          #define LED_BUS P2
  12          
  13          idata uchar rom_sed[]={0x00,0x56,0x23,0x03,0x21,0x03,0x07,0x00};//秒;分;小时;星期;日;月;年;输出波
  14          idata uchar rom_rec[9];
  15          bit flag,flag1;
  16          
  17          /******字库*******/
  18          code uchar zhifu[][16]={
  19          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},//0
  20          {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},//1
  21          {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},//2
  22          {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},//3
  23          {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},//4
  24          {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},//5
  25          {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},//6
  26          {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},//7
  27          {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},//8
  28          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00}};//9
  29          code uchar xian[]=
  30          {0x06,0xC6,0xFE,0xFE,0xC6,0xC6,0x00,0xFE,0x06,0xF6,0xF6,0x06,0xFE,0xFE,0x00,0x00,
  31          0x18,0x18,0x1F,0x0F,0x0C,0x6C,0x30,0x1B,0x0C,0x07,0x3F,0x7C,0x63,0x73,0x70,0x00};/*"现",0*/
  32          code uchar zai[]=
  33          {0x00,0x0C,0x8C,0xCC,0xEC,0x3C,0x9F,0x8F,0x8C,0xEC,0xEC,0x8C,0x8C,0x8C,0x0C,0x00,
  34          0x02,0x03,0x01,0x7F,0x7F,0x30,0x31,0x31,0x31,0x3F,0x3F,0x31,0x31,0x31,0x30,0x00};/*"在",1*/
  35          code uchar shi1[]=
  36          {0xFE,0xFE,0xC6,0xC6,0xFE,0xFE,0x00,0x98,0x98,0x18,0x18,0xFF,0xFF,0x18,0x18,0x00,
  37          0x1F,0x1F,0x0C,0x0C,0x1F,0x1F,0x00,0x00,0x03,0x03,0x60,0x7F,0x3F,0x00,0x00,0x00};/*"时",2*/
  38          code uchar jian[]=
  39          {0x00,0xF8,0xFB,0x07,0xF6,0xF0,0x36,0x36,0x36,0xF6,0xF6,0x06,0xFE,0xFE,0x00,0x00,
  40          0x00,0x7F,0x7F,0x00,0x0F,0x0F,0x0D,0x0D,0x0D,0x0F,0x2F,0x60,0x7F,0x3F,0x00,0x00};/*"间",3*/
  41          code uchar maohao[]=
  42          {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  43          0x00,0x00,0x33,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*":",4*/
  44          code uchar xin[]=
  45          {0x00,0x00,0x00,0x20,0xF0,0xD0,0xD0,0xD0,0xD0,0xD0,0xD0,0xF0,0x00,0x00,0x00,0x00,
  46          0x00,0x10,0x14,0x1A,0x17,0x16,0x16,0x1F,0x1F,0x16,0x16,0x16,0x10,0x30,0x30,0x10};/*"星",0*/
  47          code uchar qi[]=
  48          {0x00,0x00,0x20,0x20,0xF0,0xA0,0xA0,0xF0,0x20,0x00,0xE0,0xA0,0xA0,0xE0,0x00,0x00,
  49          0x04,0x04,0x24,0x14,0x0B,0x03,0x05,0x1B,0x12,0x1C,0x07,0x02,0x02,0x3F,0x00,0x00};/*"期",1*/
  50          code uchar shi2[]=
  51          {0x00,0xF8,0x08,0x08,0x08,0xF8,0x10,0x90,0x10,0x10,0x10,0x10,0xFC,0x10,0x10,0x00,
  52          0x00,0x7F,0x82,0x82,0x82,0x7F,0x00,0x00,0x41,0x86,0x88,0x80,0xFF,0x00,0x00,0x00};/*"时",0*/
  53          code uchar fen[]=
  54          {0x00,0x80,0x80,0xC0,0xB0,0x8C,0x80,0x80,0x80,0x82,0x8C,0x90,0xA0,0x40,0x80,0x00,
  55          0x00,0x80,0x80,0x40,0x20,0x18,0x07,0x00,0x80,0x80,0x80,0x80,0x7F,0x00,0x00,0x01};/*"分",1*/
C51 COMPILER V7.50   TIME                                                                  03/21/2007 22:26:54 PAGE 2   

  56          code uchar miao[]=
  57          {0x00,0x44,0x44,0xFC,0x44,0x44,0x40,0xF0,0x00,0x00,0xFE,0x00,0x00,0x70,0x80,0x00,
  58          0x10,0x0C,0x03,0xFF,0x03,0x04,0x83,0x80,0x80,0x80,0x5F,0x20,0x10,0x0E,0x01,0x00};/*"秒",2*/
  59          code uchar nian[]=
  60          {0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,
  61          0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00};/*"年",0*/
  62          code uchar yue[]=
  63          {0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,
  64          0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00};/*"月",1*/
  65          code uchar ri[]=
  66          {0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
  67          0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00};/*"日",2*/
  68          /*********************************************************************************************************
             -***********/
  69          void delay(void){
  70   1              uchar i;
  71   1              for(i=0;i<6;i++) ;
  72   1              }
  73          void delay2(){
  74   1              uchar k;
  75   1              for(k=30000;k>0;k--);
  76   1              }
  77          /*********************************************************************************************************
             -***/
  78          /************如果忙则等待****************/
  79          void wait_E1( void )
  80          {
  81   1              E1=0;E2=1;
  82   1              LED_BUS=0xff;
  83   1              RW=1;                           
  84   1              RS=0;               //d0~D7为状态输出           
  85   1              E=1;
  86   1              while(LED_BUS&0x80);
  87   1              E=0;
  88   1      }
  89          
  90          void wait_E2( void )
  91          {
  92   1              E1=1;E2=0;
  93   1              LED_BUS=0xff;
  94   1              RW=1;                           
  95   1              RS=0;                           
  96   1              E=1;
  97   1              while(LED_BUS&0x80);
  98   1              E=0;
  99   1      }
 100          
 101          /************写指令代码数据 *********/
 102          void write_code_E1( uchar cod )
 103          {
 104   1      
 105   1              wait_E1();               
 106   1              LED_BUS=cod;                     
 107   1              RW=0;                           
 108   1              RS=0;                             
 109   1              E1=0;E2=1;
 110   1              E=1;                            
 111   1              E=0;
 112   1      }
 113          
 114          void write_code_E2( uchar cod )
 115          {               
C51 COMPILER V7.50   TIME                                                                  03/21/2007 22:26:54 PAGE 3   

 116   1              wait_E2();               
 117   1              LED_BUS=cod;                     
 118   1              RW=0;                           
 119   1              RS=0;                             
 120   1              E1=1;E2=0;
 121   1              E=1;                            
 122   1              E=0;
 123   1      }
 124          /*************向DDRAM中写数据 *********/
 125          void write_data_E1( uchar dat )
 126          {
 127   1              wait_E1();
 128   1          LED_BUS=dat;
 129   1              RW=0;
 130   1              RS=1;                           
 131   1              E1=0;E2=1;
 132   1              E=1;
 133   1              E=0;                         
 134   1      }
 135          
 136          void write_data_E2( uchar dat )
 137          {
 138   1              wait_E2();
 139   1          LED_BUS=dat;
 140   1              RW=0;
 141   1              RS=1;                           
 142   1              E1=1;E2=0;
 143   1              E=1;
 144   1              E=0;                         
 145   1      }
 146          /*******************清屏*******************/
 147          void clear_lcd()
 148          {
 149   1              uchar page,i;
 150   1              for(page=0xb8;page<0xc0;page++)    //x=0(10111000)  y=(10111111);
 151   1              {
 152   2                      write_code_E1(page);      //设置页地址x=page
 153   2                      write_code_E1(0x40);      //设置列地址y=0 
 154   2                      for(i=0;i<64;i++)    
 155   2                      {
 156   3                      write_data_E1(0x00);       //写0  每写一次y自动加1
 157   3                      }
 158   2              }
 159   1              for(page=0xb8;page<0xc0;page++)    //x=0(10111000)  y=(10111111);
 160   1              {
 161   2                      write_code_E2(page);      //设置页地址x=page
 162   2                      write_code_E2(0x40);      //设置列地址y=0 
 163   2                      for(i=0;i<64;i++)    
 164   2                      {
 165   3                      write_data_E2(0x00);       //写0  每写一次y自动加1
 166   3                      }
 167   2              }
 168   1      }
 169          
 170          
 171          /****************初始化液晶****************/
 172          void init_lcd()
 173          {
 174   1              wait_E1();
 175   1              write_code_E1(0x3e);           // 关显示1
 176   1              wait_E2();
 177   1              write_code_E2(0x3e);           //   关显示2
C51 COMPILER V7.50   TIME                                                                  03/21/2007 22:26:54 PAGE 4   

 178   1              wait_E1();
 179   1              write_code_E1(0x3f);           // 开显示1
 180   1              wait_E2();
 181   1              write_code_E2(0x3f);           //   开显示2
 182   1              wait_E1();
 183   1              write_code_E1(0xc0);            //(11 000000)  设置显示起始行z=0
 184   1              wait_E2();
 185   1              write_code_E2(0xc0);            //(11 000000)  设置显示起始行z=0
 186   1              clear_lcd();
 187   1      }
 188          
 189          void write_char_N_16( uchar *p_char,uchar page,uchar column,uchar N )
 190          {
 191   1              uchar i;
 192   1              if( column<= 0x38)  
 193   1              {
 194   2              write_code_E1(page|0xb8);        //设置页地址
 195   2              write_code_E1(column|0x40);      //设置列地址
 196   2              for(i=0;i<N;i++)
 197   2                      write_data_E1(p_char[i]);
 198   2              write_code_E1(page+1|0xb8);     //设置页地址

⌨️ 快捷键说明

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