📄 chengxu.lst
字号:
C51 COMPILER V9.00 CHENGXU 05/13/2013 13:11:39 PAGE 1
C51 COMPILER V9.00, 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 实现功能: AD值控制继电器延时断开时间
5 使用芯片:STC12C5204AD
6 晶振:11.0592MHZ
7 编译环境:Keil
8 硬件环境:四位数显两路输入三按键
9 作者:yang
10 QQ:790244909
11 网站:www.ourhc.cn
12 物联网测试网站:http://hualongelectron.eicp.net/
13 日期:2013-04-02
14 淘宝店:
15 华龙电子直销:http://hlelectrony.taobao.com
16 电子开发直销:http://shop63233873.taobao.com
17 汇诚科技网路购物:http://shop36330473.taobao.com
18 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
19 ********************************************************************/
20 /********************************************************************
21 采样AD的电压值作为继电器的延时断开时间
22 0到255秒可调
23 注意:设定好后,需要断电重新上电
24 ********************************************************************/
25
26 #include<STC12C5A60S2.H> //库文件
27 #include <intrins.h>
28 #include"SMG.H"
29 #define uchar unsigned char//宏定义无符号字符型
30 #define uint unsigned int //宏定义无符号整型
31 #define FOSC 11059200L
32 #define BAUD 9600
33
34 #define ADC_POWER 0x80 //ADC 电源控制位
35 #define ADC_FLAG 0x10 //ADC 转换结束标志位
36 #define ADC_START 0x08 //ADC 开始转换控制位
37 #define ADC_SPEEDLL 0x00 //420个时钟周期转换一次
38 #define ADC_SPEEDL 0x20 //280 个时钟周期转换一次
39 #define ADC_SPEEDH 0x40 //140个时钟周期转换一次
40 #define ADC_SPEEDHH 0x60 //70个时钟周期转换一次
41 extern void t_to_dis(void);
42 extern void display(void); //显示函数
43 sbit key1=P3^2;
44 sbit key2=P3^3;
45 sbit key3=P3^4;
46 /********************************************************************
47 延时函数
48 *********************************************************************/
49 void delay(uint x)//延时程序 0.1秒
50 {
51 1 uchar m,n,s;
52 1 for(m=x;m>0;m--)
53 1 for(n=20;n>0;n--)
54 1 for(s=248;s>0;s--);
55 1 }
C51 COMPILER V9.00 CHENGXU 05/13/2013 13:11:39 PAGE 2
56
57 /********************************************************************
58 AD转换初始化程序
59 *********************************************************************/
60
61 void InitADC()
62 {
63 1 P1ASF|=0x10; //设置P1口为开漏模式,使用AD功能
64 1 ADC_RES=0; //AD数据寄存器清空
65 1 ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START;//打开AD电源,转换周期XX
66 1 delay(10); //延时
67 1 }
68
69 /********************************************************************
70 AD转换控制程序
71 *********************************************************************/
72 uchar GetADCResult(uchar px) //转换输出的数据 (PX为通道口)
73 {
74 1 ADC_CONTR = ADC_POWER | ADC_SPEEDLL |px| ADC_START;//开始转换
75 1 _nop_(); //延时一个机器周期
76 1 _nop_(); //延时一个机器周期
77 1 _nop_(); //延时一个机器周期
78 1 _nop_(); //延时一个机器周期
79 1 while (!(ADC_CONTR & ADC_FLAG));//等待转换结束
80 1 ADC_CONTR &= ~ADC_FLAG; //关闭AD转换
81 1 return ADC_RES; //返回数据
82 1 }
83 /********************************************************************
84 主函数
85 *********************************************************************/
86 void main()
87 {
88 1 P2M1=0;
89 1 P2M0=0xff;
90 1 P1M1=0;
91 1 P1M0=0x0f;
92 1 P3M1&=0x7f;
93 1 P3M0|=0x80;
94 1 P3=0xff;
95 1
96 1 cshh();
97 1 InitADC(); //AD转换初始化
98 1 while(1)
99 1 { GetADCResult(4);
100 2 t_to_dis();
101 2 display();
102 2 }
103 1 }
104
105 /********************************************************************
106 结束
107 *********************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 368 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V9.00 CHENGXU 05/13/2013 13:11:39 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -