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

📄 serial port_1602.lst

📁 功能:开机检验数码管好坏
💻 LST
字号:
C51 COMPILER V8.08   SERIAL_PORT_1602                                                      10/04/2008 08:31:09 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE SERIAL_PORT_1602
OBJECT MODULE PLACED IN serial port_1602.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE serial port_1602.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**********************
   2          编写时间:2008年09月28日
   3          编辑:小鱼儿
   4          功能:用串口通讯发送一个十六进制数,用1602显示,并有八个发光二极管
   5                以二进制的形式点亮,其十六进值与1602显示一致。
   6          ***********************/
   7          
   8          #include "reg52.h"   //头文件
   9          #include "intrins.h"
  10          
  11          #define uchar unsigned char
  12          #define uint unsigned int 
  13          uchar a,b,flag,num;
  14          sbit lcden=P3^4;  //LCD使能位引脚定义
  15          sbit lcdrs=P3^5;  //LCD数据命令选择引脚定义
  16          sbit dula=P2^6;//数码管段选
  17          sbit wela=P2^7;//数码管位选
  18          sbit beep=P2^3;//蜂鸣器引脚定义
  19          uchar code table[]="         "; 
  20          
  21          void delay(uint z)//延时子程序
  22          {
  23   1          uint x,y;
  24   1          for(x=z;x>0;x--)
  25   1              for(y=125;y>0;y--);
  26   1      }
  27          
  28          /*************************
  29          1602
  30          **************************/
  31          void write_com(uchar com) //写命令 
  32          {
  33   1          lcdrs=0;
  34   1          P0=com;
  35   1          delay(1);
  36   1          lcden=1;
  37   1          delay(1);
  38   1          lcden=0;
  39   1      } 
  40          
  41          void write_data(uchar date)  //写数据 
  42          {
  43   1          lcdrs=1;
  44   1          P0=date;
  45   1          delay(1);
  46   1          lcden=1;
  47   1          delay(1);
  48   1          lcden=0;
  49   1      }
  50          
  51          void init() //初始化 
  52          {
  53   1          dula=0;
  54   1          wela=0;
  55   1          lcden=0;
C51 COMPILER V8.08   SERIAL_PORT_1602                                                      10/04/2008 08:31:09 PAGE 2   

  56   1          write_com(0x38);//显示模式设置
  57   1          write_com(0x0c);//不显示光标
  58   1          write_com(0x06);
  59   1          write_com(0x01);//显示清零 
  60   1          write_com(0x80+0x10);
  61   1      }
  62          
  63          
  64          void main()
  65          {
  66   1              init();
  67   1          TMOD=0x20;//设置定时/计数器T1的工作方式为方式2
  68   1          TH1=0xfd;
  69   1          TL1=0xfd;
  70   1          TR1=1;//运行控制位 
  71   1          SM0=0;
  72   1          SM1=1;//SCON 串行口的工作方式为方式1
  73   1          REN=1;//允许串行接受
  74   1          EA=1; //开总中断
  75   1          ES=1;//开串行口中断允许位
  76   1          PCON=0x00;
  77   1          beep=1;//关蜂鸣器   
  78   1          while(1)
  79   1          {
  80   2      //        display1(SBUF);
  81   2              delay(1);
  82   2              write_com(0x80);
  83   2              for(num=0;num<3;num++)
  84   2              {
  85   3                  write_data(table[SBUF]); //第一行显示
  86   3                  delay(100);
  87   3              }
  88   2              if(flag==1)
  89   2              {
  90   3                  ES=0;//
  91   3                  flag=0;
  92   3                  SBUF=a;
  93   3                  while(!TI); 
  94   3                  TI=0;//TI为发送中断标志位,硬件置1,软件置0
  95   3                  ES=1;                       
  96   3             }
  97   2              }
  98   1      }
  99          
 100          void serial() interrupt 4
 101          {
 102   1          P1=SBUF;
 103   1          a=SBUF;
 104   1          flag=1;
 105   1          RI=0;//接受中断标志位,硬件置1,软件置0
 106   1      }
 107          
 108          
 109          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
C51 COMPILER V8.08   SERIAL_PORT_1602                                                      10/04/2008 08:31:09 PAGE 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 + -