(
课件网) 实例2 控制1个LED闪烁 《单片机基础与应用(C语言版)》 高等教育-出卷网- 一、任务要求 壹 任务要求 通过单片机控制一个LED发光二极管闪烁系统的制作 二、任务分析 贰 LED闪动的过程是亮灭交替的过程。所以,程序不仅能点亮LED,还要能熄灭LED。同时,注意LED闪动的时间控制。 三、控制程序 叁 //程序:ex2.c //功能:LED闪烁控制 #include
//包含头文件REGX51.H,定义了51单片机的所有SFR sbit LED=P1^0; //定义P1.0引脚位名称为LED //函数名:delay //函数功能:实现软件延时 //形式参数:无符号整型变量i,控制空循环的循环次数 //返回值:无 void delay(unsigned int i) { while(i--); //i次空操作 } void main() //主函数 { while(1) //无限循环 { LED=0; //点亮LED delay(20000); //软件延时 LED=1; //点亮LED delay(20000); //软件延时 } } 实例3 控制1个LED闪烁 《单片机基础与应用(C语言版)》 高等教育-出卷网- 一、任务要求 壹 任务要求 用单片机控制8个LED同时闪烁。 二、任务分析 贰 单片机有4个并行I/O口P0~P3,每个I/O口包括8条I/O口线。例1中,采用P1口的P1.0引脚实现了1个LED的控制。本例要求控制8个LED,使用P1口的8个I/O口线P1.0~P1.7分别控制1个LED,正好实现了对8个LED的控制。 三、硬件电路 叁 8位LED控制电路(采用P1口的8个I/O引脚控制8个LED) 四、控制程序 肆 //程序:ex3.c //功能:控制8个LED同时闪烁 #include //包含头文件REGX51.H,定义了51单片机的所有SFR //函数名:delay //函数功能:实现软件延时 //形式参数:无符号整型变量i,控制空循环的循环次数 //返回值:无 void delay(unsigned int i) { while(i--); //i次空操作 } void main() //主函数 { while(1) //无限循环 { P1=0x00; //采用字节操作,点亮8个LED delay(20000); //软件延时 P1=0xff; //采用字节操作,熄灭8个LED delay(20000); //软件延时 } }(课件网) 实例4 单片机控制蜂鸣器发声 《单片机基础与应用(C语言版)》 高等教育-出卷网- 一、任务导入 01 任务要求 用单片机控制蜂鸣器发出声音。 在计算机中,简单的提示音,是什么器件发出来的呢? ———它就是我们经常用到的一个能发出声音的器件,叫做蜂鸣器。 蜂鸣器 蜂鸣电路符号 无源蜂鸣器 电源× 振荡源 蜂鸣器 有源蜂鸣器 按照驱动方式来划分 有源蜂鸣器:一通电就会响,直流信号驱动 无源蜂鸣器:方波驱动,频率一般在2kHz到5kHz之间 有源蜂鸣器 无源蜂鸣器 9mm 8mm 有源蜂鸣器 无源蜂鸣器 + - 有源蜂鸣器 V 不能超过标注的额定值 + - 无源蜂鸣器 频率一般在2kHz~5kHz,频率越高,音调也就越高 无源蜂鸣器,内部不带振荡源,用高低电平交错的方波来驱动它发声。 二、任务分析 单片机的并行I/O口不仅可以控制LED,还可以用来控制许多简单器件,本例中的蜂鸣器就是其中之一。 硬件设计 驱动电路 三、硬件电路 P1.0 硬件电路图 单片机控制蜂鸣器电路(采用 P1口的P1.0引脚控制蜂鸣器,PNP型三极管9012起驱动作用。) 资源分配 单片机 接口电路 P1.0 蜂鸣器 驱动 器 件 清 单 序号 名称 型号/参数 数量 1 51单片机 STC90516RD+ 1 2 晶振 12MHz 1 3 电容 30pF 2 4 电解电容 10uF 1 5 按键 弹性按键 1 6 蜂鸣器 无源 1 7 三极管 9012/PNP 1 8 电阻 10KΩ 1 9 电阻 100Ω 1 10 电阻 3.3KΩ 1 四、单片机控制蜂鸣器程序设计 //程序:ex4.c //功能:蜂鸣器发声控制程序 #include //包含头文件REGX51.H,定义了51单片机的所有SFR sbit BEEP=P1^0; //定义P1.0引脚位名称为BEEP //函数名:delay //函数功能: ... ...