📄 main.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 + -