⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 音响效果程序
💻 C
字号:
/*
目标: 显示缓冲区DisBuf中的数 "Good"
2005年2月20日, 成都信息工程学院通信工程系, 郑郁正

程序功能描述: 多彩的世界,变化无穷

实现方法: 控制单片机左右两排发光二极管
注意事项:运行本程序时,拨码开关 SW1. SW2 全部拨到'OFF'位置(即左边).
		如果LED6、LED7和LED8不工作,按一下S2和S3即可
工作方式控制:按键K1、K2、K3和K4可做出不同的显示。
*/

#include <reg52.h>	//该头文档描述单片机所有特殊功能寄存器的称名,程序中可直接使用,比喻'P1'
#include "LedDriver.h"

char kbhit( void );
char getKey( void );
void BuzzerOpen( void );
void BuzzerClose( void );

// 1    2    3    4    5    6    7    1 
//100, 112, 126, 133, 150, 168, 189, 200
void main( void )			//一个工程项目必须有一个main函数,并且只能有一个main函数
{
	char keyVal=0;
	unsigned char pn[]={100, 112, 126, 133, 150, 168, 189, 200};

	while( 1 )
	{
		for( keyVal=0; keyVal<8; ++keyVal)
		{
			unsigned int lp;
			for( lp=0; lp<400; lp++ )
			{
				unsigned char nlp;
				BuzzerOpen();
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				BuzzerClose();
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
				for(nlp=pn[keyVal]; nlp>0; --nlp );
			}
		}
	}

	LedPrint(0, Char_6);
	LedPrint(1, Char_o);
	LedPrint(2, Char_o);
	LedPrint(3, Char_d);

	while( 1 )				//永远为真, 也就是重复运行下面括号中的所有语句,直到永远永远
	{
		LedWork();
		if( kbhit() )		//如果有键按下返回非0值
		{
			keyVal=getKey();	//K1---K16返回的键值分别为0---15
			LedSetInterval( (keyVal+1)*10 );
		}						
	}						//回到执行前面的while语句
}

/*
1. 参考任一个显不方式的模块,增加一种显示方式对应键K4,左右两排发光二极管交替亮灭
2. 每个按键Ki(i=1...16)对应一个发光二极管LEDi,按相应的键Ki,则对应的灯LEDi亮,
   再按,则灭,交替工作。
3. 你现在可以做一下十字路的交通灯管制系统了,做产品就这么容量 ^=^
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -