📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 03/09/2006 19:58:34 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*注意:程序下载到DPY-1实验板单片机后
2 一定要使SW DIP1的开关脱离ON档。或者直接将下载线从实验板上拔下!
3 因为下载线接在I/O口P1.5,P1.6,P1.7上,下载线的电平将会影响测量结果*/
4 #include <reg52.h>
5 code unsigned char seg7code[10]={0x3f,0x06,0x5b,0x4f,
6 0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示段码
7 sbit int1=P3^3; //定义管脚功能
8 sbit cs=P3^2;
9 sbit wr=P3^6;
10 sbit rd=P3^7;
11 void Delay(unsigned int tc) //显示延时程序
12 {while( tc != 0 )
13 1 {unsigned int i;
14 2 for(i=0; i<100; i++);
15 2 tc--;}
16 1 }
17 unsigned char adc0804( void ) //读AD0804子程序
18 {
19 1 unsigned char addata,i;
20 1 rd=1;wr=1;int1=1; //读ADC0804前准备
21 1 P1=0xff;
22 1 cs=0;wr=0;wr=1; //启动ADC0804开始测电压
23 1 while(int1==1); //查询等待A/D转换完毕产生的INT信号
24 1 rd=0; //开始读转换后数据
25 1 i=i; //无意义语句,用于延时等待
26 1 i=i; //用于等待ADC0804读数完毕
27 1 addata=P1;//读出的数据赋与addate
28 1 rd=1; //读数完毕
29 1 cs=1; //
30 1 return(addata);//返回最后读出的数据
31 1 }
32 unsigned int datpro(void)//ADC0804读出的数据处理
33 {
34 1 unsigned char x;
35 1 unsigned int dianyah,dianyal; //用于存储读出数据的高字节和低字节
36 1 unsigned int dianya=0; //存储最后处理完的结果 注意数据类型
37 1 for(x=0;x<10;x++) //将10次测得的结果存储在dianya中
38 1 {
39 2 dianya=adc0804()+dianya;
40 2 }
41 1 dianya=dianya/10; //求平均值
42 1 dianyah=dianya&0xf0; //屏蔽低四位
43 1 dianyah=dianyah>>4; //右移四位 取出高四位
44 1 dianyal=dianya&0x0f; //屏蔽高四位 取出低四位
45 1 dianya=dianyal*20+dianyah*320; //最后的结果是一个四位数,便于显示
46 1 return(dianya);//返回最后处理结果
47 1 }
48 void Led()
49 { unsigned int date;
50 1 date=datpro(); //调用数据处理最后结果
51 1 P2=P2&0xef;
52 1 P0=seg7code[date/1000]|0x80; //输出个位数和小数点
53 1 Delay(8);
54 1 P2=P2|0xf0;
55 1 P2=P2&0xdf;
C51 COMPILER V7.06 MAIN 03/09/2006 19:58:34 PAGE 2
56 1 P0=seg7code[date%1000/100]; //输出小数点后第一位
57 1 Delay(8);
58 1 P2=P2|0xf0;
59 1 P2=P2&0xbf;
60 1 P0=seg7code[date%100/10]; //输出小数点后第二位
61 1 Delay(8);
62 1 P2=P2|0xf0;
63 1 P2=P2&0x7f;
64 1 P0=seg7code[date%10]; //输出小数点后第三位
65 1 Delay(8);
66 1 P2=P2|0xf0;
67 1 }
68 main()
69 {
70 1
71 1 while(1)
72 1 {
73 2 Led(); //只需调用显示函数
74 2 }
75 1 }
76
77
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 288 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -