




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲教师单片机控制技术(C语言版)任务2-1单片机控制蜂鸣器发声任务导入01能发声的蜂鸣器02单片机控制蜂鸣器硬件设计03单片机控制蜂鸣器程序设计04一、任务导入PARTONE01用单片机控制蜂鸣器,实现声音报警系统的设计。任务要求硬件设计驱动电路二、能发声的蜂鸣器PARTTWO02在计算机中,简单的提示音,是什么器件发出来的呢?——它就是我们经常用到的一个能发出声音的器件,叫做蜂鸣器。蜂鸣器蜂鸣电路符号按照驱动方式来划分蜂鸣器有源蜂鸣器无源蜂鸣器电源×振荡源有源蜂鸣器:一通电就会响,直流信号驱动无源蜂鸣器:方波驱动,频率一般在2kHz到5kHz之间有源蜂鸣器无源蜂鸣器9mm8mm有源蜂鸣器无源蜂鸣器+-有源蜂鸣器V不能超过标注的额定值+-无源蜂鸣器频率一般在2kHz~5kHz,频率越高,音调也就越高无源蜂鸣器,内部不带振荡源,用高低电平交错的方波来驱动它发声。三、单片机控制蜂鸣器硬件设计PARTTHREE03资源分配单片机接口电路P1.0蜂鸣器驱动硬件电路图P1.0器件清单序号名称型号/参数数量151单片机STC90516RD+12晶振12MHz13电容30pF24电解电容10uF15按键弹性按键16蜂鸣器无源17三极管9012/PNP18电阻10KΩ19电阻100Ω110电阻3.3KΩ1四、单片机控制蜂鸣器程序设计PARTFOUR04给P1.0引脚高电平延时给P1.0引脚低电平延时重复以上过程声音报警系统编程思路给P1.0引脚高电平延时给P1.0引脚低电平延时重复以上过程声音报警系统开始P1.01延时延时P1.00预编译声音报警系统C语言程序//程序名:beep.c//功能:声音报警系统#include<REGX51.H>//包含头文件REGX51.HsbitBEEP=P1^0;//定义P1.1引脚位名称为BEEP开始P1.01延时延时P1.00预编译声音报警系统C语言程序//程序名:beep.c//功能:声音报警系统#include<REGX51.H>//包含头文件REGX51.HsbitBEEP=P1^0;//定义P1.0引脚位名称为BEEPvoidmain()//主函数{while(1)//无限循环
{ BEEP=1;//给P1.1引脚高电平
delay(200);
//延时
BEEP=0;//给P1.1引脚低电平 delay(200);//延时
}}预编译声音报警系统C语言程序//程序名:beep.c//功能:声音报警系统#include<REGX51.H>//包含头文件REGX51.HsbitBEEP=P1^0;//定义P1.0引脚位名称为BEEP//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i//返回值:无voiddelay(unsignedinti){while(i--);//i次空操作}延时子函数定义开始P1.01延时延时P1.00声音报警系统C语言程序//程序名:beep.c//功能:声音报警系统#include<REGX51.H>//包含头文件REGX51.HsbitBEEP=P1^0;//定义P2.1引脚位名称为BEEP//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i//返回值:无voiddelay(unsignedinti){while(i--);//i次空操作}voidmain() //主函数{while(1)//无限循环
{BEEP=1;//给P1.1引脚高电平
delay(200);//延时
BEEP=0;//给P1.1引脚低电平 delay(200);
//延时
}}预编译延时函数定义主函数开始P1.01延时延时P1.00我们通过编程控制P1.1引脚的电平生成方波,实现了声音报警系统的功能,大家试着把延时delay(200);都修改为delay(1000);,观察蜂鸣器的发声有什么变化吧?
主讲教师单片机控制技术(C语言版)任务2-2模拟汽车左右转向灯控制任务导入01可拨动的开关02模拟汽车左右转向灯制电路设计03模拟汽车左右转向灯制程序设计04举一反三05一、任务导入PARTONE01通过单片机的并行I/O口来控制LED的亮灭。单极三位开关有三个拨动位置,正好分别拨到这三个位置就可以模拟处于正常运行,右转和左转状态。单片机读入单极三位开关的状态来控制转向灯的状态。汽车状态单极三位开关位置转向灯显示状态右转向灯状态左转向灯状态正常行驶位置2灭灭右转位置1亮灭闪烁灭左转位置3灭亮灭闪烁二、可拨动的开关PARTTWO02电脑开关手机开关电梯开关灯的开关开关开启关闭开关电路符号通断ONOFFA123BCD单极三位开关三、模拟汽车左右转向灯制电路设计PARTTHREE03资源分配单片机转向灯接口电路开关接口电路P1.0P1.2前后左转向灯P1.1P1.3前后右转向灯P3.1位置1P3.0位置3输入:开关断开,I/O引脚为1开关闭合,I/O引脚为0输出:I/O引脚为0,点亮灯I/O引脚为1,熄灭灯汽车状态单极三位开关位置输入右转控制P3.1左转控制P3.0正常行驶位置211右转位置101左转位置310四、模拟汽车左右转向灯制程序设计PARTFOUR04汽车状态单极三位开关位置输入输出右转控制P3.1左转控制P3.0右转向灯状态P1.1P1.3左转向灯状态P1.0P1.2正常行驶位置2
1111P3.0和P3.1都为1
汽车正常行驶汽车状态单极三位开关位置输入输出右转控制P3.1左转控制P3.0右转向灯状态P1.1P1.3左转向灯状态P1.0P1.2正常行驶位置2
11
11右转位置1010,1交替
1P3.1为0,P3.0为1汽车右转P3.1为0,P3.0为1汽车左转汽车状态单极三位开关位置输入输出右转控制P3.1左转控制P3.0右转向灯状态P1.1P1.3左转向灯状态P1.0P1.2正常行驶位置2
1111右转位置1010,1交替1左转位置3
1010,1交替汽车状态单极三位开关位置输入输出右转控制P3.1左转控制P3.0右转向灯状态P1.1P1.3左转向灯状态P1.0P1.2正常行驶位置2
1111右转位置1010,1交替1左转位置3
1010,1交替汽车状态单极三位开关位置输入输出右转控制P3.1左转控制P3.0右转向灯状态P1.1P1.3左转向灯状态P1.0P1.2正常行驶位置2
1111右转位置1010,1交替1左转位置3
1010,1交替P3寄存器P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0111111110xff开始P1.0P3.0P1.2P3.0P1.1P3.1P1.3P3.1延时P1.01P1.21P1.11P1.31延时P30xff预编译汽车左右转向灯控制系统C语言程序//程序名:led_turn.c//功能:汽车左右转向灯程序#include<REGX51.H>//包含头文件REGX51.HsbitLEDL1=P1^0;
//定义P1.0引脚位名称为LEDL1,左前转向灯sbitLEDL2=P1^2;//定义P1.2引脚位名称为LEDL2,左后转向灯sbitLEDR1=P1^1;//定义P1.1引脚位名称为LEDR1,右前转向灯sbitLEDR2=P1^3;//定义P1.3引脚位名称为LEDR2,右后转向灯sbitS1=P3^0;
//定义P3.0引脚位名称为S1,S1为0,左转向灯闪烁sbitS2=P3^1;
//定义P3.1引脚位名称为S2,S2为0,右转向灯闪烁开始P1.0P3.0P1.2P3.0P1.1P3.1P1.3P3.1延时P1.01P1.21P1.11P1.31延时P30xff预编译汽车左右转向灯控制系统C语言程序//程序名:led_turn.c//功能:汽车左右转向灯程序sbitLEDL1=P1^0;
//定义P1.0引脚位名称为LEDL1,左前转向灯sbitLEDL2=P1^2;//定义P1.2引脚位名称为LEDL2,左后转向灯sbitLEDR1=P1^1;//定义P1.1引脚位名称为LEDR1,右前转向灯sbitLEDR2=P1^3;//定义P1.3引脚位名称为LEDR2,右后转向灯sbitS1=P3^0;
//定义P3.0引脚位名称为S1,S1为0,左转向灯闪烁sbitS2=P3^1;
//定义P3.1引脚位名称为S2,S2为0,右转向灯闪烁//函数名:delay//函数功能:实现软件延时//形式参数:无符号整型变量i//返回值:无voiddelay(unsignedint
i){while(i--);//i次空操作}开始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延时P0.01P0.11P0.21P0.31延时P10xff延时函数定义汽车左右转向灯控制系统C语言程序voidmain() //主函数{}
开始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延时P0.01P0.11P0.21P0.31延时P10xff汽车左右转向灯控制系统C语言程序voidmain()
//主函数{P1=0xff;LEDL1=S1;//读取S1引脚的控制状态并赋值给左转向灯LEDL1LEDL2=S1;
//读取S1引脚的控制状态并赋值给左转向灯LEDL2LEDR1=S2;
//读取S2引脚的控制状态并赋值给右转向灯LEDR1LEDR2=S2;//读取S2引脚的控制状态并赋值给右转向灯LEDR2delay(20000);//软件延时
LEDL1=1;//将LEDL1引脚置1,熄灭LEDL1LEDL2=1;//将LEDL2引脚置1,熄灭LEDL2LEDR1=1;//将LEDR1引脚置1,熄灭LEDR1LEDR2=1;//将LEDR2引脚置1,熄灭LEDR2delay(20000);
//软件延时
} 开始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延时P0.01P0.11P0.21P0.31延时P10xff汽车左右转向灯控制系统C语言程序voidmain()
//主函数{while(1)//无限循环
{P1=0xff;LEDL1=S1;//读取S1引脚的控制状态并赋值给左转向灯LEDL1LEDL2=S1;
//读取S1引脚的控制状态并赋值给左转向灯LEDL2LEDR1=S2;
//读取S2引脚的控制状态并赋值给右转向灯LEDR1LEDR2=S2;//读取S2引脚的控制状态并赋值给右转向灯LEDR2delay(20000);//软件延时
LEDL1=1;//将LEDL1引脚置1,熄灭LEDL1LEDL2=1;//将LEDL2引脚置1,熄灭LEDL2LEDR1=1;//将LEDR1引脚置1,熄灭LEDR1LEDR2=1;//将LEDR2引脚置1,熄灭LEDR2delay(20000);
//软件延时
}
} 开始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延时P0.01P0.11P0.21P0.31延时P10xff五、举一反三PARTFIFTH05I/O接口并行I/O接口单片机并行I/O口功能单片机并行I/O口应用方法功能扩展增加一个开关,开关闭合时,左右转向灯同时闪烁。(双闪)主讲教师单片机控制技术(C语言版)任务2-3仿真调试发光二极管闪烁控制系统打开任务1中新建的工程。在KeilC51主界面中,点击“Project”→“OpenProject”,找到工程所在目录,打开工程。配置软件仿真器。将鼠标移到工程管理窗口的“Target1”上,点击右键,再点击“OptionsforTarget1’Target1’”,出现工程配置窗口
Xtal(晶振频率):缺省值是所选目标CPU的最高可用频率值,该值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成实际硬件所用晶振频率;如果没有必要了解程序执行的时间,也可以不设该项。配置软件仿真器——“Target”属性窗口Memorymodel(存储器模式):用于设置RAM使用模式,有三个选择项:Small(小型):所有变量都定义在单片机的内部RAM中。Compact(紧凑):可以使用一页(256B)外部扩展RAM。Large(大型):可以使用全部64KB外部扩展RAM。配置软件仿真器——“Target”属性窗口CodeRomSize(代码存储器模式):用于设置ROM空间的使用,同样也有三个选择项:Small(小型):只使用低2KB程序空间。Compact(紧凑):单个函数的代码量不能超过2KB,整个程序可以使用64KB程序空间。Large(大型):可用全部64KB空间。
这些选择必须根据所用硬件来决定。配置软件仿真器——“Target”属性窗口Operating(操作系统):KeilC51提供了两种操作系统:Rtxtiny和Rtxfull,通常不使用任何操作系统,即使用该项的缺省值None。配置软件仿真器——“Target”属性窗口Off-chipcodememory(片外代码存储器):用于确定系统扩展ROM的地址范围,由硬件确定,一般为缺省值。。配置软件仿真器——“Target”属性窗口Off-chipXdatamemory(片外Xdata存储器):用于确定系统扩展RAM的地址范围,由硬件确定,一般为缺省值。。配置软件仿真器——“Target
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邯郸高三联考数学试卷
- 海安中学数学试卷
- 桂林初中二模数学试卷
- 宏帆八中小升初数学试卷
- 洪山元调数学试卷
- 湖北武汉初一下数学试卷
- 广州中考模拟卷数学试卷
- 河南2024体育单招数学试卷
- 合肥市初二数学试卷
- 广东五年级试卷数学试卷
- GB/T 7260.2-2009不间断电源设备(UPS)第2部分:电磁兼容性(EMC)要求
- GB/T 712-2011船舶及海洋工程用结构钢
- 2023年申报中学高级教师资格教育教学能力考试
- 健康体检报告解读
- 老年人的生理变化特点课件
- -镇村卫生室绩效考核方案
- 并网系统调试记录表
- 特种设备管理“332211”工作法
- GB∕T 19335-2022 一次性使用血路产品 通用技术条件
- 标准鲁班尺尺寸对比表
- 生物降解塑料项目投资计划及资金方案(模板范文)
评论
0/150
提交评论