📄 chengxu.lst
字号:
C51 COMPILER V9.00 CHENGXU 12/28/2012 00:46:25 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: D:\keil2\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 汇诚科技
3
4 实现功能:此版配套测试程序
5 使用芯片:STC12C2052AD
6 晶振:11.0592MHZ
7 波特率:9600
8 编译环境:Keil
9 作者:yang
10 QQ:790244909
11 网站:www.ourhc.cn
12 淘宝店:汇诚科技 华龙电子直销:http://hlelectrony.taobao.com
13 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
14 /********************************************************************
15
16 ********************************************************************/
17
18
19 #include<STC12C5A60S2.H> //库文件
20 #include <intrins.h>
21 #define uchar unsigned char//宏定义无符号字符型
22 #define uint unsigned int //宏定义无符号整型
23
24 #define DUAN P2 //P0口控制段
25 #define WEI P1 //P2口控制位
26
27
28 /********************************************************************
29 初始定义
30 *********************************************************************/
31 code uchar seg7code[11]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0XBF}; //显示段码 数码管字跟
32 sbit wei1=P1^0;
33 sbit wei2=P1^1;
34 sbit wei3=P1^2;
35 sbit wei4=P1^3; //位的控制端
36 uchar numb[4]; //定义字符串
37 sbit jdq=P3^7;
38 sbit key1=P3^2;
39 sbit key2=P3^3;
40 sbit key3=P3^4;
41
42 sbit IN0=P1^6;
43 sbit IN1=P1^7;
44 uchar timesnum;
45 uchar keynum=1;
46 bit flag=0;
47 /********************************************************************
48 延时函数
49 *********************************************************************/
50 void delay(uchar x)//延时程序 0.1秒
51 {
52 1 uchar m,n,s;
53 1 for(m=x;m>0;m--)
54 1 for(n=20;n>0;n--)
55 1 for(s=248;s>0;s--);
C51 COMPILER V9.00 CHENGXU 12/28/2012 00:46:25 PAGE 2
56 1 }
57 /********************************************************************
58 求值函数
59 *********************************************************************/
60 void t_to_dis()
61 {
62 1 numb[0]=0; //显示千位
63 1 numb[1]=keynum/100; //显示百位
64 1 numb[2]=keynum%100/10; //显示十位
65 1 numb[3]=keynum%10; //显示个位
66 1 }
67
68 /********************************************************************
69 显示函数
70 *********************************************************************/
71 void display() //显示函数
72 {
73 1 WEI&=0XF0;
74 1 DUAN=seg7code[numb[0]];
75 1 wei1=1;
76 1 delay(2);
77 1
78 1 WEI&=0XF0;
79 1 DUAN=seg7code[numb[1]];
80 1 wei2=1;
81 1 delay(2);
82 1
83 1 WEI&=0XF0;
84 1 DUAN=seg7code[numb[2]];
85 1 wei3=1;
86 1 delay(2);
87 1
88 1 WEI&=0XF0;
89 1 DUAN=seg7code[numb[3]];
90 1 wei4=1;
91 1 delay(2);
92 1 WEI&=0XF0;
93 1 }
94
95
96 void init_all(void)
97 {
98 1 P2M1=0;
99 1 P2M0=0xff;
100 1 P1M1=0;
101 1 P1M0=0x0f;
102 1 P3M1&=0x7f;
103 1 P3M0|=0x80;
104 1
105 1
106 1 }
107 void key_scan(void)
108 {
109 1 if(key1==0) //增加次数
110 1 {
111 2 delay(5);
112 2 if(key1==0)
113 2 {
114 3 while(!key1);
115 3 keynum++; //keynum=0为模式0,继电器吸合300ms ,keynum=1继电器吸合12s
116 3 if(keynum>=100)
117 3 keynum=100;
C51 COMPILER V9.00 CHENGXU 12/28/2012 00:46:25 PAGE 3
118 3 }
119 2 }
120 1
121 1 if(key2==0) //按键扫描,key2按下模式变化一次
122 1 {
123 2 delay(5);
124 2 if(key2==0)
125 2 {
126 3 while(!key2);
127 3 keynum--; //减小次数
128 3 if(keynum==0||keynum>=120)
129 3 keynum=0;
130 3
131 3 }
132 2 }
133 1
134 1
135 1
136 1 }
137 /********************************************************************
138 主函数
139 *********************************************************************/
140 void main()
141 {
142 1 init_all(); //初始化IO
143 1 IN0=IN1=1;
144 1 jdq=0;
145 1 while(1)
146 1 {
147 2 t_to_dis(); //数值变换
148 2 display(); //显示函数
149 2 key_scan();
150 2 if(IN1==0&&flag==0) //按键扫描,key2按下模式变化一次
151 2 {
152 3 delay(5);
153 3 if(IN1==0)
154 3 {
155 4 while(!IN1);
156 4 jdq=!jdq;
157 4 flag=1;
158 4 }
159 3 }
160 2 if(flag==1&&IN0==0)
161 2 {
162 3 delay(5);
163 3 if(IN0==0)
164 3 {
165 4 while(!IN0);
166 4 timesnum++;
167 4 if(timesnum>=keynum)
168 4 {
169 5 timesnum=0;
170 5 jdq=!jdq;
171 5 }
172 4 }
173 3 }
174 2 }
175 1 }
176
177 /********************************************************************
178 结束
179 *********************************************************************/
C51 COMPILER V9.00 CHENGXU 12/28/2012 00:46:25 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 265 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -