📄 chengxu.lst
字号:
C51 COMPILER V8.05a CHENGXU 10/20/2010 10:53:04 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 使用芯片:AT89S52 或者 STC89C52
6 晶振:11.0592MHZ
7 编译环境:Keil
8 作者:zhangxinchunleo
9 网站:www.ourhc.cn
10 淘宝店:汇诚科技 http://shop36330473.taobao.com
11 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
12
13 *********************************************************************/
14 #include <reg52.h>
15 #define uchar unsigned char
16 #define uint unsigned int
17 uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
18 uchar wei[5]={0Xf7,0XEf,0XDf,0XBf,0X7f}; //位的控制端
19 uint z,x,c,v,b,n,date; //定义数据类型
20 uint dispcount=0; //中断计数
21 uint lck=0; //定时器计数
22 uint disp=0; //频率值
23 /******************************************************************
24
25 延时函数
26
27 ******************************************************************/
28 void delay(uchar t)
29 {
30 1 uchar i,j;
31 1 for(i=0;i<t;i++)
32 1 {
33 2 for(j=13;j>0;j--);
34 2 { ;
35 3 }
36 2 }
37 1 }
38
39 /**********************************************************************
40 数码管动态扫描
41 *********************************************************************/
42 void xianshi()
43 {
44 1 /*****************数据转换*****************************/
45 1
46 1
47 1 z=date/10000; //求万位
48 1 x=date%10000/1000; //求千位
49 1 c=date%1000/100; //求百位
50 1 v=date%100/10; //求十位
51 1 b=date%10; //求个位
52 1
53 1 P2=wei[0];
54 1 P0=duan[z];
55 1 delay(50);
C51 COMPILER V8.05a CHENGXU 10/20/2010 10:53:04 PAGE 2
56 1 P2=wei[1];
57 1 P0=duan[x];
58 1 delay(50);
59 1 P2=wei[2];
60 1 P0=duan[c];
61 1 delay(50);
62 1 P2=wei[3];
63 1 P0=duan[v];
64 1 delay(50);
65 1 P2=wei[4];
66 1 P0=duan[b];
67 1 delay(50);
68 1
69 1 }
70
71 /*************************************************************************
72 定时器初值1ms
73 **************************************************************************/
74 void initTimer(void)
75 {
76 1 TMOD=0x0;
77 1 TH0=0xe3;
78 1 TL0=0xc;
79 1 }
80
81 /*************************************************************************
82 定时器函数
83 **************************************************************************/
84 void timer0(void) interrupt 1
85 {
86 1 TH0=0xe3;
87 1 TL0=0xc;
88 1 lck++;
89 1 if(lck==1000)
90 1 {
91 2 disp=dispcount;
92 2 lck=0;
93 2 dispcount=0;
94 2 }
95 1
96 1 }
97
98 /*************************************************************************
99 中断函数
100 **************************************************************************/
101 void int0(void) interrupt 0
102 {
103 1
104 1 dispcount++; //每一次中断,计数加一
105 1
106 1 }
107
108 /*************************************************************************
109 主函数
110 **************************************************************************/
111 void main(void)
112 {
113 1
114 1 IT0=1; //INT0下降沿中断
115 1 EX0=1; //允许INT1中断
116 1 initTimer(); //装入初值
117 1 TR0=1;
C51 COMPILER V8.05a CHENGXU 10/20/2010 10:53:04 PAGE 3
118 1 ET0=1;
119 1 EA=1;
120 1 while(1)
121 1
122 1 {
123 2
124 2 date=disp;
125 2 xianshi();
126 2 }
127 1 }
128
129
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 289 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 35 ----
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 + -