📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\学习\课件\单片机课件\keilc51\C51\BIN\C51.EXE Text1.c OMF2 BROWSE DEBUG
line level source
1 /*********************************************************/
2 /** 数字时钟 **/
3 /** 作者:曹锐于关老师基础上 **/
4 /** 时间:2007/10/18级 **/
5 /** National University of Defence Technology **/
6 /** 指示3548635994 **/
7 /*********************************************************/
8
9 #include <absacc.h>
10 #include <reg52.h>
11 #include <intrins.h>
12
13 #define uchar unsigned char
14 #define uint8 unsigned char
15 #define uint16 unsigned int
16
17 sbit LED1=P1^1; //数码管
18 sbit LED2=P1^2;
19 sbit LED3=P1^3;
20 sbit LED4=P1^4;
21
22 sbit key1=P1^5;//键盘
23 sbit key2=P1^6;
24 sbit key3=P1^7;
25
26 uint8 step=1;//步进,随频率变化
27 uint16 temp=0;//相位
28 uchar aaa=0;//波的种类
29 uint16 fre;//波的频率
30
31 #define sendwave P2//波形送出口
32 #define display P0//显示内容输出端口
33 #define sltld P1//选通LED所用变量
34
35 uchar code sin[]={127,126,124,123,121,119,118,116,115,113,111,110,108,
36 107,105,104,102,100,99,97,96, 94, 93,91, 90, 88, 87, 85,
37 83, 82, 80, 79, 78, 76, 75, 73, 72, 70, 69, 67, 66, 65, 63,
38 62, 60, 59, 58, 56, 55, 54, 52, 51, 50, 49, 47, 46, 45, 44,
39 42, 41, 40, 39, 38, 37, 36, 34, 33, 32, 31, 30, 29, 28, 27,
40 26, 25, 24, 23, 22, 21, 21, 20, 19, 18, 17, 16, 16, 15, 14,
41 13, 13, 12, 11, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5,
42 5, 4, 4, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1,
43 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
44 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5,
45 5, 6, 6, 7, 7, 8, 9, 9, 10, 10, 11, 12, 12, 13, 14,
46 15, 15, 16, 17, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
47 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43,
48 44, 45, 47, 48, 49, 50, 52, 53, 54, 56, 57, 58, 60, 61, 62,
49 64, 65, 67, 68, 70, 71, 72, 74, 75, 77, 78, 80, 81, 83, 84,
50 86, 87, 89, 90, 92, 93, 95, 97, 98, 100,101,103,104,106,108 ,
51 109 ,111,112,114,115,117,119,121,122,123,125,127,128,130,132 ,
52 133,135,136,138,140,141,143,144,146,147,149,151,152,154,155,
53 157,158,160,162,163,165,166,168,169,171,172,174,175,177,178,
54 180,181,183,184,185,187,188,190,191,193,194,195,197,198,199,
55 201,202,203,205,206,207,208,210,211,212,213,214,216,217,218,
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 2
56 219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,
57 234,235,236,237,237,238,239,240,240,241,242,243,243,244,245,
58 245,246,246,247,248,248,249,249,250,250,250,251,251,252,252,
59 252,253,253,253,253,254,254,254,254,254,255,255,255,255,255,
60 255,255,255,255,255,255,255,255,255,254,254,254,254,254,253,
61 253,253,253,252,252,251,251,251,250,250,249,249,248,248,247,
62 247,246,246,245,244,244,243,242,242,241,240,239,239,238,237,
63 236,235,234,234,233,232,231,230,229,228,227,226,225,224,223,
64 222,221,219,218,217,216,215,214,213,211,210,209,208,206,205,
65 204,203,201,200,199,197,196,195,193,192,190,189,188,186,185,
66 183,182,180,179,177,176,175,173,172,170,168,167,165,164,162,
67 161,159,158,156,155,153,151,150,148,147,145,144,142,140,139,
68 137,136,134,132,131,129,128};
69
70 uchar code tri[]={250,249,248,247,246,245,244,243,242,241,240,239,
71 238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,
72 222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,
73 207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,
74 192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,
75 177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,
76 162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,
77 147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,
78 132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,
79 117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,
80 102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,
81 87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,
82 72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,
83 57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,
84 42,41,40,39,38,37,36,35,34,33,32,31,30,29,28 ,
85 27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,
86 12,11,10,9,8,7,6,5,4,3,2,1,0, 1, 2,
87 3,4,5,6,7,8,9,10,11,12,13,14,15,16,
88 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
89 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,
90 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,
91 62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,
92 77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,
93 92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,
94 107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,
95 122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,
96 137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
97 152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,
98 167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,
99 182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,
100 197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,
101 212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,
102 227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,
103 242,243,244,245,246,247,248,249 };
104
105 /*扫描键盘使用的变量 */
106
107
108 uint16 counter=1;
109 uint16 counter1=1; //读键盘计数器,每16ms刷新读一次
110 bit getkey = 0; //获得有效键值标志位 等于1时代表得到一个有效键值
111 bit keyon = 0; //防止按键冲突标志位
112 uchar keynum =0; //获得的有效按键值寄存器
113 uchar key;
114
115
116
117 /*数码管显示使用的变量和常量*/
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 3
118 uchar lednum = 3; //数码管显示位控制寄存器
119 uchar led[4] = {0,0,0,0}; //数码管显示内容寄存器
120 uchar code segtab[18] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
121 0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x00}; //七段码段码表
122 // "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "
-P" ,"black"
123
124
125
126
127
128 void leddisp(void); //数码管显示函数
129 void readkey(void); //读键盘函数
130 void init_condition(void);//初始化函数
131
132
133
134
135
136 void intT0() interrupt 1 //T0 定时中断处理函数
137 {
138 1 TH0 = 0xff; //定时器中断时间间隔 0.1ms
139 1 TL0 = 0x38;
140 1 counter1=counter1+1;
141 1 counter=counter+1;
142 1 temp=temp+step;
143 1 if(temp>=500)
144 1 temp=temp-500;
145 1 switch(aaa)
146 1 {
147 2 case 0:
148 2 sendwave=sin[temp];
149 2 break;
150 2 case 1:
151 2 sendwave=tri[temp];
152 2 break;
153 2 case 2:
154 2 if(temp>=250)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -