📄 main1.lst
字号:
C51 COMPILER V7.06 MAIN1 01/31/2008 14:34:24 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN1
OBJECT MODULE PLACED IN main1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /************************************************************************************
2 * Copyright (c) 2008,重庆优易特电子
3 * All rights reserved.
4
5 * 摘 要: 方波信号发生器:10-200HZ,步长10HZ,P23口输出
6
7 * 文件名称: main.c
8 * CPU芯片: STC89C51RC
9 * 学习板型: Easy51-B
10 *
11 * 当前版本: 2.0
12 * 作 者: cache
13 * 完成日期: 2008年1月23日
14 *
15 *************************************************************************************/
16
17 #include "reg52.h"
18
19 unsigned char code Duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
20 0x6f,0X76,0X3e,0x55,0x37,0x77,0x5e,0x72};
21 unsigned char Data_Buffer[4]={0,0,0,0};
22
23 unsigned char PinLV_Out=10;//范围:10-99
24
25 unsigned char th0,tl0;
26
27 sbit P10=P1^0;
28 sbit P11=P1^1;
29 sbit P12=P1^2;
30 sbit P13=P1^3;
31
32 sbit P23=P2^3;
33
34 sbit DOWN=P2^2; //修改频率按键
35 sbit UP=P2^1; //修改频率按键
36
37 void Comute_pinlv()
38 {
39 1 float t;
40 1 unsigned int x;
41 1 t=1000/PinLV_Out/2;//计算高\低宽度时间ms为单位
42 1 t=t*921.6; //11.0592MHZ晶振,1ms时间常数宽度为921.6
43 1 t=65535-t;
44 1 x=t;
45 1 th0=x/256;
46 1 tl0=x%256;
47 1
48 1 Data_Buffer[0]=0; //频率值更新显示
49 1 Data_Buffer[1]=PinLV_Out/100;
50 1 Data_Buffer[2]=PinLV_Out/10%10;
51 1 Data_Buffer[3]=PinLV_Out%10;
52 1 }
53
54 void main()
55 {
C51 COMPILER V7.06 MAIN1 01/31/2008 14:34:24 PAGE 2
56 1 unsigned char Bit=0;
57 1 bit x=1,y=1;
58 1
59 1 Comute_pinlv();
60 1
61 1 TMOD=0x11;
62 1 TH0=th0;
63 1 TL0=tl0;
64 1 TR0=1;
65 1 ET0=1;
66 1 EA=1;
67 1
68 1 while(1)
69 1 {
70 2 if(UP==1)x=1;
71 2 else if(x==1)
72 2 {//UP键按下
73 3 x=0;
74 3 PinLV_Out+=10;
75 3 if(PinLV_Out>200)PinLV_Out=200;
76 3 Comute_pinlv();
77 3 }
78 2
79 2 if(DOWN==1)y=1;
80 2 else if(y==1)
81 2 {//DN键按下
82 3 y=0;
83 3 if(PinLV_Out>10)
84 3 PinLV_Out-=10;
85 3 Comute_pinlv();
86 3 }
87 2
88 2
89 2 Bit++;//数码管扫描
90 2 if(Bit>=4)Bit=0;
91 2 P1|=0x0f;
92 2 P0=Duan[Data_Buffer[Bit]];
93 2 switch(Bit)
94 2 {
95 3 case 0: P10=0;break;
96 3 case 1: P11=0;break;
97 3 case 2: P12=0;break;
98 3 case 3: P13=0;break;
99 3 }
100 2 }
101 1 }
102
103 void timer0() interrupt 1
104 {//定时器0用于产生方波信号,定时器时间常数是由方波频率决定
105 1 TH0=th0;
106 1 TL0=tl0;
107 1
108 1 P23=!P23;//方波输出
109 1 }
110
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 268 ----
CONSTANT SIZE = 17 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.06 MAIN1 01/31/2008 14:34:24 PAGE 3
DATA SIZE = 7 5
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -