?? main.lst
字號:
C51 COMPILER V7.07 MAIN 07/04/2006 05:16:30 PAGE 1
C51 COMPILER V7.07, 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 #define uchar unsigned char //定義一下方便使用
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h> //包括一個52標準內核的頭文件
5
6 sbit P10 = P1^0; //要控制的LED燈
7 sbit K1= P3^2; //按鍵K1
8
9 uchar scale;//用于保存占空比的輸出0的時間份額,總共10份
10
11 char code dx516[3] _at_ 0x003b;//這是為了仿真設置的
12 //模擬PWM輸出控制燈的10個亮度級別
13 void main(void) // 主程序
14 {
15 1 uint n;
16 1
17 1 RCAP2H =0xF3; //賦T2的預置值,溢出1次是1/1200秒鐘
18 1 RCAP2L =0x98;
19 1 TR2=1; //啟動定時器
20 1 ET2=1; //打開定時器2中斷
21 1 EA=1; //打開總中斷
22 1 while(1) //程序循環
23 1 { ;//主程序在這里就不斷自循環,實際應用中,這里是做主要工作
24 2 for(n=0;n<50000;n++); //每過一會兒就自動加一個檔次的亮度
25 2 scale++;
26 2 if(scale==10)scale=0;
27 2 }
28 1 }
29 //1/1200秒定時器2中斷
30 timer2() interrupt 5
31 {
32 1 static uchar tt; //tt用來保存當前時間在一秒中的比例位置
33 1 TF2=0;
34 1
35 1 tt++;
36 1 if(tt==10) //每1/120秒
37 1 {
38 2 tt=0;
39 2 if(scale!=0) //這里加這一句是為了消除滅燈狀態產生的鬼影
40 2 P10=0;
41 2 }
42 1
43 1 if(scale==tt)
44 1 P10=1;
45 1
46 1 }
47 //修改占空比的辦法,把時間分為10份
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 83 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
C51 COMPILER V7.07 MAIN 07/04/2006 05:16:30 PAGE 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 + -