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

📄 bussys.lst

📁 语音报站系统,功能说明:键盘显示
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.08   BUSSYS                                                                03/01/2008 06:10:47 PAGE 1   


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

line level    source

   1                           /*+++++++++++++++++++++++++++++++++++++
   2          LCD显示,采用FM12864FLCD显示模块(带中文字库)
   3          功能说明:键盘显示,键盘采用普通彩电遥控器(SAA3010A),
   4                            语音芯片采用ISD1420P,能够录放20秒,
   5                            单片机采用AT89C51,
   6                            通过键盘控制实现,语音报站同时LCD显示站名,
   7                            晶振24MHz。
   8          接线说明:P1口接LCD的数据口,
   9                            P0口接ISD1420P的地址口,
  10                            P3.2----PLAY
  11                            P3.3----REC
  12                            P3.4----RS
  13                            P3.5----WR
  14                            P3.6----E
  15                            P3.7接SM0038信号输出脚
  16          版本时间:2007-05-27  23:12
  17          +++++++++++++++++++++++++++++++++++++++*/
  18          #include<reg51.h>
  19          
  20          void Clear();
  21          void Delay(unsigned int t);
  22          void Write_com(unsigned char d);
  23          void Write_data(unsigned char d);
  24          unsigned char Read_data();
  25          void Disp_char(unsigned char pos,unsigned char dat);
  26          void Disp_word0(unsigned char posx,unsigned char *p,unsigned char n);
  27          void Lcd_system(void);
  28          bit hw_yima();
  29          void delay0(unsigned int t);
  30          void Disp_control(unsigned char zm);
  31          void Disp_number(unsigned char pos,unsigned int dat);
  32          void Report(unsigned char sl);
  33          void Rec_bus(unsigned char rec);
  34          void Disp_pucture(unsigned char *p);
  35          void bus_contorl();
  36          
  37          unsigned char n=0;                              //红外码位数
  38          unsigned char p_last=0;                 //上一次显示指针偏移量
  39          unsigned char zm_last=0;
  40          unsigned char k=0;
  41          unsigned char *q2;
  42          unsigned int secret=0;                  //录音密码
  43          unsigned int   ymcode = 255;    //红外线编码
  44          bit  flag0=1;                           //译码标志位
  45          bit  s;
  46          bit hw=0;                                               //解码成功失败标志位
  47          bit mode=0;                                             //模式选择,0:报站模式,1录音模式(录音需要输入密码)。
  48          bit xs=0;                                               //显示输入密码标志位
  49          bit ly=0;                                               //录音允许位
  50          sbit   P1_0 = P3^7;                     //红外线信号输入断口
  51          sbit PLAY=P3^3;                                 //放音          
  52          sbit REC =P3^2;                                 //录音          
  53          sbit LCD_RS=P3^4;                               //数据、命令选择信号
  54          sbit LCD_WR=P3^5;                               //读写信号
  55          sbit LCD_E =P3^6;                               //使能信号
C51 COMPILER V8.08   BUSSYS                                                                03/01/2008 06:10:47 PAGE 2   

  56          unsigned int tm=0;
  57          unsigned char code gImage_word0[1024];
  58          unsigned char code gImage_word2[1024];
  59          unsigned char code table0[]={"虎泉  桌刀泉广阜屯街道口洪山  丁字桥傅家坡大东门阅马场下一站:"};
  60          unsigned char code table1[]={"深圳市勤正达电子有限公司成立于2002年,是专业研发及生产液晶显示器"
  61                                                                  "和液晶模块的高新技术企业。LCD 显示器覆盖了多种系列多年来公司秉承"
  62                                                                  "全力面向客户,技术专攻的经营理念,一直致力于为广大电子成品制造商"
  63                                                                  "提供质量精良,性能稳定,品种齐全的LCD 显示屏及LCM 显示模块系列产"
  64                                                                  "品。望成为您的首选合作伙伴。                                    "};
  65          unsigned char code table2[]={"请输入密码:""录音模式""密码错误!"};
  66          
  67          void main()
  68          {
  69   1              unsigned char num=0;
  70   1              unsigned int i=0;
  71   1              unsigned char *q;
  72   1          TMOD=0x11;
  73   1              TH1 = 0xF0;
  74   1              TL1 = 0x60;
  75   1          EA  = 1;
  76   1              ET1 = 1;
  77   1              REC = 1;
  78   1              PLAY= 1;
  79   1              Delay(100);
  80   1              Lcd_system();                   //系统初始化
  81   1              q=gImage_word2;
  82   1              Disp_pucture(q);
  83   1              delay0(30000);
  84   1              q=gImage_word0;
  85   1              Disp_pucture(q);
  86   1              delay0(40000);
  87   1              Clear();
  88   1          while(1)
  89   1              {
  90   2                      q=table1;
  91   2                      for(num=0;num<5;num++)
  92   2                      {
  93   3                              if(0==mode)
  94   3                              {
  95   4                                      Disp_word0(0,q,32);
  96   4                                      q=q+64;                 
  97   4                              }
  98   3                              for(i=0;i<60000;i++)
  99   3                              {
 100   4                                      bus_contorl();
 101   4                              }
 102   3                      }
 103   2              }
 104   1      }
 105          
 106          /***************************************
 107          * 名称: Clear()
 108          * 说明: 
 109          * 功能: 清除全屏显示
 110          * 参数: 无
 111          * 返回值: 无
 112          ****************************************/
 113          void Clear()
 114          {
 115   1              Write_com(0x01);
 116   1              Write_com(0x34);
 117   1              Write_com(0x30);
C51 COMPILER V8.08   BUSSYS                                                                03/01/2008 06:10:47 PAGE 3   

 118   1      }
 119          
 120          /***************************************
 121          * 名称: Lcd_system()
 122          * 说明: 
 123          * 功能:  系统初始化
 124          * 参数: 无
 125          * 返回值: 无
 126          ****************************************/
 127          void Lcd_system(void)
 128          {
 129   1              Delay(600);
 130   1              LCD_E = 0;
 131   1              Write_com(0x34);                
 132   1              Delay(10000);
 133   1              Write_com(0x30);                
 134   1              Delay(10000);
 135   1              Write_com(0x01);                
 136   1              Delay(10000);
 137   1              Write_com(0x06);                
 138   1              Delay(10000);
 139   1              Write_com(0x0c);                
 140   1              Delay(10000);   
 141   1      }
 142          
 143          /***************************************
 144          * 名称: Delay(unsigned int t)
 145          * 说明: 
 146          * 功能: 延时
 147          * 参数: t:延时长度
 148          * 返回值: 无
 149          ****************************************/
 150          void Delay(unsigned int t)
 151          {
 152   1              unsigned int i;
 153   1              for(i=0;i<t;i++)
 154   1              {;;;;;;;;;;}
 155   1      }
 156          
 157          /***************************************
 158          * 名称: Write_com(unsigned char d)
 159          * 说明: 
 160          * 功能: 写命令字
 161          * 参数: d:命令代码
 162          * 返回值: 无
 163          ****************************************/
 164          void Write_com(unsigned char d)
 165          {
 166   1              LCD_RS = 0;
 167   1              LCD_E = 0;
 168   1              LCD_WR = 0;
 169   1              P1 = d;
 170   1              LCD_E = 1;      
 171   1              Delay(40);
 172   1              LCD_E = 0;      
 173   1              LCD_WR = 1;
 174   1              Delay(100);
 175   1      }
 176          
 177          /***************************************
 178          * 名称: Write_data(unsigned char d)
 179          * 说明: 
C51 COMPILER V8.08   BUSSYS                                                                03/01/2008 06:10:47 PAGE 4   

 180          * 功能: 写数据
 181          * 参数: d:需要写入的数据
 182          * 返回值: 无
 183          ****************************************/
 184          void Write_data(unsigned char d)
 185          {
 186   1              LCD_E = 0;
 187   1              LCD_RS = 1;
 188   1              LCD_WR = 0;
 189   1              P1 = d;
 190   1              LCD_E = 1;      
 191   1              Delay(40);
 192   1              LCD_E = 0;      
 193   1              LCD_WR = 1;
 194   1              Delay(100);
 195   1      }
 196          
 197          /***************************************
 198          * 名称: unsigned char Read_data(void)
 199          * 说明: 
 200          * 功能: 读数据
 201          * 参数: 无
 202          * 返回值: d:读出数据
 203          ****************************************/
 204          unsigned char Read_data(void)
 205          {
 206   1              unsigned char d = 0;
 207   1              LCD_E = 0;
 208   1              LCD_RS = 1;
 209   1              LCD_WR = 1;
 210   1              LCD_E = 1;      
 211   1              Delay(50);
 212   1              d = P1;
 213   1              LCD_E = 0;      
 214   1              LCD_WR = 0;

⌨️ 快捷键说明

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