51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码
/***************************************************************************
程序名称:program4-1.c
程序功能:单片机控制的音乐盒
****************************************************************************/
#include "reg51.h" //包含头文件reg51.h
#define uchar unsigned char
#include
#define uint unsigned int
sbit BEEP=P3^7; //蜂鸣器控制接口
uchar note; //音符下标
uchar code music[]={0xFC,0x44,0xFC,0xAC, 0xFD,0x09, 0xFD,0x34, 0xFD,0x82, 0xFD,0xC8};
//T值
uchar code tiger[ ]= //两只老虎音符数组
{
0x14,0x24,0x34,0x14,0x14,0x24,0x34,0x14,0x34,0x44,0x58,0x34,0x44,
0x58,0x53,0x61,0x53,0x41,0x34,0x14,0x53,0x61,0x53,0x41,0x34,0x14,
0x14,0x54,0x18,0x14,0x54,0x18,0x00,0x00
};
/***************************************************************************
函数名称:delay_125ms
函数功能:实现125ms延时函数
形式参数:无
返回值:无
****************************************************************************/
void delay_125ms()
{
uchar counter=0; //计数器初始化
TR0=1; //启动T0
for(;counter!=5;) //判断计数器值是否等于5
{
if(TF0==1) //T0溢出判断
{
TF0 = 0; //定时器0溢出位清零
TH0=0xa6; //恢复计数器初值(可采用stc-isp软件计算)
TL0=0x00;
counter++; //循环次数标志位加1
}
}
counter = 0; //计数5次,计数器清零
}
/***************************************************************************
函数名称:palay_music
函数功能:单片机控制蜂鸣器播放音乐
****************************************************************************/
void paly_music() //音乐播放函数
{
uchar i,j,k;
j=0;
while( tiger[j]!=0x00) //一直播放到休止符0x00为止
{
k= tiger[j]&0x0F; //从音符数组中得到节拍
note=tiger[j]>>4; //从音符数组中得到音符
TH1=music[2*note]; //定时器1赋初值
TL1=music[2*note+1];
TR1=1; // 启动T1
if((music[2*note]==0x00)&&(music[2*note+1]==0x00))//判断是否停止
{
TR1=0; //当播放到停止符时关闭T1
BEEP=1; //关闭蜂鸣器
}
for(i=k;i>0;--i) //延时,产生相应的节拍
{
delay_125ms();
}
TR1=0;
j++; //取数组中的下一个数据
}
}
/***************************************************************************
函数名称:init
函数功能:定时器T0、T1初始化
****************************************************************************/
void init ()
{
TMOD=0x11; //T0工作定时工作方式
TH0=0xa6; //赋T0计数器初值(25ms)
TL0=0x00;
ET1=1; //允许T1中断
EA=1; //中断允许
}
/***************************************************************************
函数名称:main
函数功能:单片机控制蜂鸣器播放音乐
****************************************************************************/
void main( ) //主函数
{
init();
while(1)
{
paly_music( ); // 播放音乐
}
}
/***************************************************************************
函数名称:timer1
函数功能:T1产生音符脉冲
****************************************************************************/
void timer1( ) interrupt 3
{
TH1=music[2*note]; //恢复计数器初始值
TL1=music[2*note+1];
BEEP=~BEEP;
}
51单片机两只老虎c语言程序,51单片机两只老虎仿真加代码相关推荐
- 单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序
51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用 ...
- 单片机外部中断实验C语言程序,STC89C52单片机外部中断0实验
原标题:STC89C52单片机外部中断0实验 / 实现功能: 设置,然后通过点亮与P1口第一个引脚相连的D1来 显示系统进入了外部中断0 实验板型号:BS-XYD-C52 实验名称: 外部中断0测试 ...
- pic单片机ccp脉冲捕捉c语言程序,pic单片机CCP脉冲(PWM)输出
#include //该程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%,根据PWM_WIDE计算频率.proteus仿真通过 //CCP1(CCP2相同设置)模块的PWM工作方式 ...
- 单片机测周法c语言程序,基于单片机的数字频率计设计(附原理图及源程序).doc...
四川理工学院毕业设计 四川理工学院毕业设计 PAGE \* MERGEFORMAT4 PAGE \* MERGEFORMAT5 四川理工学院毕业设计 基于单片机的数字频率计设计 (创新的自动选当功能) ...
- 单片机控制灯光亮度c语言程序,STC89C52RC单片机按键控制PWM输出LED灯亮度C语言程序...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //以下是源程序,只需修改定义IO口就可以使用, #include < reg52.h > #include < intrins.h & ...
- 单片机实现跑马灯c语言程序,用单片机编写几种跑马灯程序
任务: 1.在电路板上实现跑马灯,一次1匹 2.在电路板上实现跑马灯,一次2匹 3.在电路板上实现4个二极管的同时闪烁 源程序1: /********************************* ...
- 89c51c语言程序,89C51单片机计算器C语言程序.doc
89C51单片机计算器C语言程序 89C51单片机[计算器]C语言程序 89C51单片机[计算器]C语言程序2010-12-15 16:54/*89C51单片机[计算器]C语言程序*/ /*P2位选P ...
- 超声波c语言程序,51单片机超声波模块的C语言程序.doc
51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...
- c语言打铃器单片机程序,51单片机自动打铃C语言程序
51单片机自动打铃C语言程序: #include "reg51.h" #include "intrins.h" #define uchar unsigned c ...
最新文章
- 强化学习在机器人装配工艺中的应用
- 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。...
- error_reporting()
- hibernate中的PO持久化对象及PO三种状态
- linux-IO之copy的实现
- 001Python路--入门
- wpf绑定treeview 带查找_如何查找,修复和避免C#.NET中内存泄漏的8个最佳实践
- 学习日报 7-10(验证码)
- python opencv天空提取_python利用opencv实现印章的提取
- ADO.NET 3.5 同SQL 2008的新的存储过程保存方式
- 1006	A+B问题
- 简单说 CSS滤镜 filter属性
- SketchUp 7 linux,SketchUp各版本有哪些兼容性更改?
- 解决steam无法启动gta5报错msvcp140.dll丢失
- 手机拍摄的身份证怎么制作为复印件?
- Jupyter Notebook:内核似乎挂掉
- UE 在场景或UMG中播放视频
- NGFW中数据包转发流程
- 码元、码元速率、波特率、比特率理解
- 免费不限速跨平台文件传输神器—文件疯巢