📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 05/30/2012 00:04:52 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE CHENGXU
OBJECT MODULE PLACED IN chengxu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chengxu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 汇诚科技
3
4 实现功能:按键按下保持5秒开关接通,不够5秒,不动作,按键断开,输出也断开
5 使用芯片:STC15F104E
6 晶振:12MHZ
7 波特率:9600
8 编译环境:Keil
9 作者:zhangxinchunleo
10 网站:www.ourhc.cn
11 淘宝店:汇诚科技 http://shop36330473.taobao.com
12 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
13
14 *********************************************************************/
15 /********************************************************************/
16
17 #include<reg52.h> //库文件
18 #define uchar unsigned char//宏定义无符号字符型
19 #define uint unsigned int //宏定义无符号整型
20 /********************************************************************
21 初始定义
22 *********************************************************************/
23 uint sec; //定义计数值,每过1/10 秒,sec 加一
24 uchar keycnt=0;//按下次数值
25 uint tcnt; //键值判断
26 /********************************************************************
27 I/O定义
28 *********************************************************************/
29 sbit P33=P3^3; //定义单片机P3口的第3位 (即P3.3)
30 sbit P3_5=P3^5;
31 /********************************************************************
32 延时函数
33 *********************************************************************/
34 void delay(uchar t)
35 {
36 1 uchar i,j;
37 1 for(i=0;i<t;i++)
38 1 {
39 2 for(j=13;j>0;j--);
40 2 { ;
41 3 }
42 2 }
43 1 }
44
45 /********************************************************************
46 按键扫描函数
47 *********************************************************************/
48 void KEY() //按键扫描程序
49 {
50 1 if(P3_5==0)
51 1 {
52 2 TR0=1; //开始定时
53 2 }
54 1
55 1 else
C51 COMPILER V8.05a CHENGXU 05/30/2012 00:04:52 PAGE 2
56 1 {
57 2 TR0=0;
58 2 tcnt=0;
59 2 sec=0;
60 2 P33=0;
61 2 }
62 1 }
63 /********************************************************************
64 定时中断服务函数
65 *********************************************************************/
66 void t0(void) interrupt 1 using 0 //定时中断服务函数
67 {
68 1 tcnt++; //每过250ust tcnt 加一
69 1 if(tcnt==400) //计满400 次(1/10 秒)时
70 1 {
71 2 tcnt=0; //重新再计
72 2 sec++;
73 2
74 2 if(sec==50) //定时5 秒,在从零开始计时
75 2 {
76 3 sec=0;
77 3 P33=1;
78 3 }
79 2 }
80 1 }
81
82 /********************************************************************
83 主函数
84 *********************************************************************/
85 void main()
86 {
87 1 TMOD=0x02; //定时器工作在方式2
88 1 TH0=0x06; //对TH0 TL0 赋值
89 1 TL0=0x06;
90 1 ET0=1;
91 1 EA=1;
92 1 sec=0;
93 1 TR0=0;
94 1 P33=0;
95 1 while(1)
96 1 {
97 2 KEY();
98 2 }
99 1 }
100
101
102 /********************************************************************
103 结束
104 *********************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 113 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -