📄 main.lst
字号:
C51 COMPILER V7.02b MAIN 07/17/2007 21:54:37 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 code unsigned char seg7code[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //显示段码
7
8
9 /*************lcd函数定义*******************************/
10 void LCD_en_command(unsigned char command);//write command function
11 void LCD_en_dat(unsigned char temp);//write data function
12 void LCD_init(void);//lcd initize function
13 void delay_nms(unsigned int n);//delay function
14 void delay1(uint ticks);//delay function
15
16
17 /*************初始化定时器及计数器的函数*******************************/
18 void initsys();
19
20 /*************ad控制管脚定义*******************************/
21 sbit cs=P3^3;
22 sbit wr=P3^5;
23 sbit rd=P3^4;
24 /*************读AD0804子程序*******************************/
25 unsigned char adc0804( void ) //读AD0804子程序
26 { unsigned char addata,i;
27 1 rd=1;wr=1;//int1=1; //读ADC0804前准备
28 1 P1=0xff; //P1全部置一准备
29 1 cs=0;wr=0;wr=1; //启动ADC0804开始测电压
30 1 rd=0; //开始读转换后数据
31 1 i=i; i=i; //无意义语句,用于延时等待ADC0804读数完毕
32 1 addata=P1;//读出的数据赋与addate
33 1 rd=1;cs=1;//读数完毕
34 1 return(addata);//返回最后读出的数据
35 1 }
36 /*************ADC0804读出的数据处理*******************************/
37 unsigned int datpro(void)//ADC0804读出的数据处理
38 { unsigned char x;
39 1 unsigned int dianyah,dianyal; //用于存储读出数据的高字节和低字节
40 1 unsigned int dianya=0; //存储最后处理完的结果 注意数据类型
41 1 for(x=0;x<10;x++) //将10次测得的结果存储在dianya中
42 1 {dianya=adc0804()+dianya; }
43 1 dianya=dianya/10; //求平均值
44 1 dianyah=dianya&0xf0; //屏蔽低四位
45 1 dianyah=dianyah>>4; //右移四位 取出高四位
46 1 dianyal=dianya&0x0f; //屏蔽高四位 取出低四位
47 1 dianya=dianyal*20+dianyah*320; //最后的结果是一个四位数,便于显示
48 1 return(dianya);//返回最后处理结果
49 1 }
50 /*************显示输出函数******************************/
51 void AD_LCD()
52 { unsigned long date;
53 1 //unsigned long date1;
54 1 date=datpro(); //调用数据处理最后结果
55 1
C51 COMPILER V7.02b MAIN 07/17/2007 21:54:37 PAGE 2
56 1
57 1 /************千位********************************/
58 1 LCD_en_command(0xc5);
59 1 LCD_en_dat(seg7code[date/1000]);
60 1 delay_nms(20);
61 1 /*********输出得是.***********************************/
62 1 LCD_en_command(0xc6);//输出得是.
63 1 LCD_en_dat(46);
64 1 delay_nms(20);
65 1 /**********百位***************************************/
66 1 LCD_en_command(0xc7);
67 1 LCD_en_dat(seg7code[date%1000/100]);
68 1 delay_nms(20);
69 1 /*********十位**************************************/
70 1 LCD_en_command(0xc8);
71 1 LCD_en_dat(seg7code[date%100/10]);
72 1 delay_nms(20);
73 1 /*********个位**************************************/
74 1 LCD_en_command(0xc9);
75 1 LCD_en_dat(seg7code[date%10]);
76 1 delay_nms(20);
77 1 /*********输出得是V*************************************/
78 1 LCD_en_command(0xca);//输出得是V
79 1 LCD_en_dat(86);
80 1 delay_nms(20);
81 1 }
82
83 main()
84 {
85 1 LCD_init();
86 1 while(1)
87 1 {
88 2 AD_LCD();
89 2 }
90 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 378 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -