📄 miin.lst
字号:
C51 COMPILER V8.06 MIIN 11/20/2011 16:33:57 PAGE 1
C51 COMPILER V8.06, COMPILATION OF MODULE MIIN
OBJECT MODULE PLACED IN miin.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE miin.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //实验平台:HL-1 V6.1+Keil U3
2 //开发公司:慧净电子WWW.HLMCU.COM
3 //淘宝店铺:http://shop37031453.taobao.com
4 //实验目的:流模拟消防车发声
5 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
6
7 sbit SPK=P2^3; //定义喇叭端口
8 unsigned char frq;
9
10 void DelayUs2x(unsigned char t);//函数声明
11 void DelayMs(unsigned char t);
12 /*------------------------------------------------
13 定时器初始化子程序
14 ------------------------------------------------*/
15 void Init_Timer0(void)
16 {
17 1 TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
18 1 //TH0=0x00; //给定初值
19 1 //TL0=0x00;
20 1 EA=1; //总中断打开
21 1 ET0=1; //定时器中断打开
22 1 TR0=1; //定时器开关打开
23 1 }
24 /*------------------------------------------------
25 主函数
26 ------------------------------------------------*/
27 main()
28 {
29 1 unsigned char i;
30 1 Init_Timer0(); //初始化定时器
31 1 while(1)
32 1 {
33 2 for(i=0;i<200;i++)
34 2 {
35 3 DelayMs(10); //延时10ms,累加频率值
36 3 frq=i;
37 3 }
38 2 for(i=200;i>0;i--)
39 2 {
40 3 DelayMs(10); //延时10ms,累减频率值
41 3 frq=i;
42 3 }
43 2
44 2 }
45 1 }
46 /*------------------------------------------------
47 uS延时函数,含有输入参数 unsigned char t,无返回值
48 unsigned char 是定义无符号字符变量,其值的范围是
49 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
50 长度如下 T=tx2+5 uS
51 ------------------------------------------------*/
52 void DelayUs2x(unsigned char t)
53 {
54 1 while(--t);
55 1 }
C51 COMPILER V8.06 MIIN 11/20/2011 16:33:57 PAGE 2
56 /*------------------------------------------------
57 mS延时函数,含有输入参数 unsigned char t,无返回值
58 unsigned char 是定义无符号字符变量,其值的范围是
59 0~255 这里使用晶振12M,精确延时请使用汇编
60 ------------------------------------------------*/
61 void DelayMs(unsigned char t)
62 {
63 1
64 1 while(t--)
65 1 {
66 2 //大致延时1mS
67 2 DelayUs2x(245);
68 2 DelayUs2x(245);
69 2 }
70 1 }/*------------------------------------------------
71 定时器中断子程序
72 ------------------------------------------------*/
73 void Timer0_isr(void) interrupt 1
74 {
75 1 TH0=0xfe; //重新赋值
76 1 TL0=frq; //低8位值在主程序中不断累加
77 1
78 1 SPK=!SPK; //端口电平取反
79 1
80 1 }
81
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 88 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
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 + -