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

📄 main.lst

📁 51实例大全
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  07/19/2010 11:10:51 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\main.lst) OBJECT(.\obj\main.ob
                    -j)

stmt level    source

   1          /*------------------------------------------------
   2                          包含头文件
   3          ------------------------------------------------*/
   4          #include"keyboard.h"
   5          #include"delay.h"
   6          #include"18b20.h"
   7          #include "ds1302.h"
   8          #include "i2c.h"
   9          #include"uart.h"
  10          #include "pcf8591.h"
  11          #include "LED8x8.h"
  12          #include "timer.h"
  13          #include "1602.h"
  14          #include<stdio.h>
  15          extern unsigned char TempData[8]; //存储显示值的全局变量
  16          /*------------------------------------------------
  17                             定义端口
  18          ------------------------------------------------*/
  19          sbit LATCH1=P2^7;//定义锁存使能端口 段锁存
  20          sbit LATCH2=P2^3;//                 位锁存
  21          /*------------------------------------------------
  22                             S级延时
  23          ------------------------------------------------*/
  24          void DelayS(unsigned char u)
  25          {
  26   1       while(u--)
  27   1            {
  28   2                DelayMs(250);
  29   2                DelayMs(250);
  30   2                DelayMs(250);
  31   2                DelayMs(250);
  32   2                }
  33   1      }
  34          /*------------------------------------------------
  35                             主函数
  36          ------------------------------------------------*/
  37          main()
  38          {
  39   1       unsigned char doflye=0x55;//用于24c02测试
  40   1      // unsigned char i;
  41   1       unsigned char keynum;     //按键返回值
  42   1       int temp;                 //温度值
  43   1      
  44   1      
  45   1      
  46   1       Ds1302_Init();   //初始化时钟芯片
  47   1       InitUART ();     //初始化串口
  48   1       LCD_Init();      //初始化LCD1602
  49   1       DelayMs(30);     //稳定
  50   1       LCD_Write_String(0,0,"www.doflye.net");//液晶显示测试
  51   1       LCD_Write_String(0,1,"LCD1602 test ok!");
  52   1       EN_CLR;
  53   1       Init_Timer0();
  54   1      
C51 COMPILER V7.06   MAIN                                                                  07/19/2010 11:10:51 PAGE 2   

  55   1                 P0=0xff;   //全部点亮
  56   1             LATCH1=1;  //段锁存
  57   1             LATCH1=0;
  58   1      
  59   1             P0=0;      //8位全部选中 
  60   1             LATCH2=1;  //位锁存
  61   1             LATCH2=0;
  62   1       DelayS(1);
  63   1      
  64   1       while(1)
  65   1           {
  66   2                ISendStr(0xae,400,&doflye,1);//写入24c02
  67   2                        DelayMs(60);                 //延时为了让24c02自身写入值
  68   2                        doflye=0;                    //清零该值,为了验证存储有效性
  69   2                        IRcvStr(0xae,400,&doflye,1); //读出doflye的值,并进行如下比较
  70   2                        if(doflye==0x55)             //读出与写入值相等,表示操作正确,器件正常
  71   2                          printf("1、24c02 测试正常\n");
  72   2                        else
  73   2                          printf("1、24c02 错误XXXX,请检测杜邦线连接\n");
  74   2                DelayS(1);
  75   2                        if(2==ADCheck())             //2个电位器调节至中间位置,如果有2路检测到这个数值,表示ADC芯片工作正常,
             -也可以自行添加4路
  76   2                          printf("2、ADC 测试正常\n");
  77   2                        else
  78   2                          printf("2、ADC 错误XXXX,请检测杜邦线连接\n");
  79   2                DelayS(1);
  80   2                        Ds1302_Write_Time();//写入时间
  81   2                        Ds1302_Read_Time(); //读出时间
  82   2                        if(time_buf1[1]==10)//判读写入与读出其中之一个数值是否相等,相等表示运行正确
  83   2                  printf("3、DS1302 测试正常\n");
  84   2                        else
  85   2                          printf("3、DS1302 测试错误XXXX,请检测杜邦线连接\n");
  86   2                DelayS(1);
  87   2                        printf("4、检查8位数码管是否全亮\n");
  88   2                        DelayS(1);
  89   2                        printf("5、J9全部接GND,检查8位LED是否全亮\n");
  90   2                        printf("6、J6全部接GND,检查单个共阳数码管是否全亮\n");
  91   2                        DelayS(1);
  92   2      
  93   2                        printf("7、请插入18B20,请等待!\n");
  94   2                DelayS(1);
  95   2                        temp=ReadTemperature();//读取温度
  96   2                DelayS(1);
  97   2                temp=ReadTemperature();//第二次读取温度,以便取得正确值
  98   2                        printf("   现在温度 %7.3f 度\n",(float)temp*0.0625);
  99   2                DelayS(1);
 100   2                    Ds1302_Read_Time(); //读出时间
 101   2                        printf("   日期 %02d-%02d-%02d 星期%d\n",(int)time_buf1[1],(int)time_buf1[2],(int)time_buf1[3],(int)ti
             -me_buf1[7]);//年月周
 102   2                printf("   时间 %02d:%02d:%02d\n",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//时分

⌨️ 快捷键说明

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