?? 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 + -