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