单片机程序设计实践教程_第12章_光电传感器和蜂鸣器控制

合集下载

单片机课程设计任务及要求

单片机课程设计任务及要求

单片机课程设计任务及要求第一篇:单片机课程设计任务及要求13Z机制《单片机课程设计》任务书及要求一、本课程设计的目的和意义通过课程设计使学生深入理解单片机的基本结构和工作原理。

掌握单片机系统常用接口的设计及扩展方法。

掌握汇编语言程序设计和程序调试的技巧。

学会单片机应用系统的设计与开发,培养学生分析问题和解决问题的能力。

为学生将来在机械设计制造及其自动化及其他领域应用单片机技术打下良好基础。

二、设计任务及要求1.硬件设计:根据所选题目要求,完成基于单片机的完整硬件接口电路设计。

2.程序设计:根据需要画出程序流程图,设计出全部汇编程序并给出程序设计说明和程序注释。

3.设计文件:设计报告字数约4000~5000字(不包括程序清单),内容及格式要求如下:(1)报告内容的一般安排λ目录(1页)λ前言(1页):说明所选题目的、当今应用说明、对课题的理解,及要解决的问题和课题的意义。

λ总体方案设计(3~4页):通过列举和分析若干可行技术方案、原理,从中选定可行最优设计方案,给出组成原理(框图)及技术路线。

λ硬件设计(4~8页):元器件选择与必要的介绍;单片机硬件系统及外围接口电路的设计,原理说明。

系统总电路图可占完整一页。

λ软件设计(6~10页):设计各功能子程序、中断服务程序,及主程序,程序中应有必要的注释。

对于复杂程序结构可先绘制程序流程图。

λ设计小结(1页):对设计中所存在的问题和不足进行分析和总结,提出建议、解决的方法和对这次设计实践的认识、收获和提高。

参考文献(1页)(2)设计报告书写要求以班级为单位购买徐师大标准的课程设计报告本,人手一册。

课程设计报告本应双面书写,每页的文字部分不得少于16行、每行不少于22字。

若整页为汇编语言程序,则该页不得少于20行。

设计说明书中插图总数不宜超过10个,插图可包括元器件图、单片机系统硬件电路图、程序流程图等,插图大小及所占篇幅根据线条密度定,线条不能太稀疏。

插图上下之外部不得留有超过一行文字高度的空白行。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

一、实验目的1. 熟悉51单片机的基本结构和工作原理。

2. 掌握51单片机的I/O口编程方法。

3. 学习蜂鸣器的驱动原理和应用。

4. 通过实验,提高动手实践能力和问题解决能力。

二、实验原理蜂鸣器是一种将电信号转换为声音信号的器件,常用于产生按键音、报警音等提示信号。

根据驱动方式,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。

1. 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。

2. 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才能发声,调整提供振荡脉冲的频率,可发出不同频率的声音。

在本次实验中,我们使用的是无源蜂鸣器。

51单片机通过控制P1.5端口的电平,产生周期性的方波信号,驱动蜂鸣器发声。

三、实验器材1. 51单片机实验板2. 蜂鸣器3. 连接线4. 电路焊接工具5. 编程软件(如Keil)四、实验步骤1. 电路连接:- 将蜂鸣器的正极连接到51单片机的P1.5端口。

- 将蜂鸣器的负极接地。

2. 程序编写:- 使用Keil软件编写程序,实现以下功能:1. 初始化P1.5端口为输出模式。

2. 通过循环,不断改变P1.5端口的电平,产生方波信号。

3. 调整方波信号的频率,控制蜂鸣器的音调。

3. 程序下载:- 将程序下载到51单片机中。

4. 实验观察:- 启动程序后,观察蜂鸣器是否发声,以及音调是否与程序设置一致。

五、实验结果与分析1. 实验结果:- 成功驱动蜂鸣器发声,音调与程序设置一致。

2. 结果分析:- 通过实验,我们掌握了51单片机的I/O口编程方法,以及蜂鸣器的驱动原理。

- 在程序编写过程中,我们学习了方波信号的生成方法,以及如何调整方波信号的频率。

六、实验总结本次实验成功地实现了51单片机控制蜂鸣器发声的功能,达到了预期的实验目的。

通过本次实验,我们提高了以下能力:1. 对51单片机的基本结构和工作原理有了更深入的了解。

2. 掌握了51单片机的I/O口编程方法。

3. 学习了蜂鸣器的驱动原理和应用。

单片机课程设计报告(利用蜂鸣器播放音乐)

单片机课程设计报告(利用蜂鸣器播放音乐)

课程设计:嵌入式系统应用题目名称:利用蜂鸣器实现音乐播放功能姓名:学号:班级:完成时间:1设计的任务设计内容:动手焊接一个51单片机设计目标:利用单片机上的蜂鸣器实现音乐播放功能2 设计的过程2.1 基本结构1.STC89C52RC在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期,工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机),工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz,用户应用程序空间为8K字节。

(STC89C52RC引脚图)STC89C52RC单片机的工作模式:(1)典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序(2)空闲模式:典型功耗2mA(3)正常工作模式:典型功耗4Ma~7mA(4)唤醒,适用于水表、气表等电池供电系统及便携设备2.蜂鸣器及其工作原理:蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

本实验采用的是电磁式蜂鸣器。

蜂鸣器按其是否带有信号源又分为有源和无源两种类型。

有源蜂鸣器只需要在其供电端加上额定直流电压,其内部的震荡器就可以产生固定频率的信号,驱动蜂鸣器发出声音。

无源蜂鸣器可以理解成与喇叭一样,需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。

本实验采用的是有源蜂鸣器。

(蜂鸣器与单片机连接电路图)2.2 软件设计过程1.蜂鸣器发声原理本实验由于采用有源蜂鸣器,只需将引脚端口P3^4清零,蜂鸣器即可发声;P3^4置位,蜂鸣器停止发声。

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器

单片机实验报告蜂鸣器单片机实验报告:蜂鸣器引言:单片机是现代电子技术中的重要组成部分,其广泛应用于各个领域。

蜂鸣器作为一种常见的声音输出设备,在单片机实验中也被广泛使用。

本文将介绍蜂鸣器的原理、实验过程以及实验结果,并对实验中遇到的问题进行分析和解决。

一、蜂鸣器的原理蜂鸣器是一种能够产生声音的装置,其原理基于压电效应。

压电材料在受到外力作用时会产生电荷,而当外力消失时,压电材料则会产生相反方向的电荷。

利用这种特性,蜂鸣器可以通过施加电压来使压电材料振动,从而产生声音。

二、实验过程1. 准备工作:首先,我们需要准备一块单片机开发板、一个蜂鸣器和相关电路连接线。

2. 连接电路:将单片机的IO口与蜂鸣器连接,注意正确连接正负极。

一般情况下,蜂鸣器的正极连接到单片机的IO口,负极连接到GND。

3. 编写程序:使用单片机开发工具,编写一个简单的程序来控制蜂鸣器。

例如,我们可以通过控制IO口的高低电平来控制蜂鸣器的开关状态。

4. 烧录程序:将编写好的程序烧录到单片机中。

5. 实验测试:将单片机开发板连接到电源,观察蜂鸣器是否发出声音。

可以通过改变程序中IO口的电平来控制蜂鸣器的开关状态,从而产生不同的声音。

三、实验结果经过实验,我们成功地控制了蜂鸣器的开关状态,并产生了不同的声音效果。

通过改变程序中IO口电平的高低,我们可以调节蜂鸣器的频率和音调。

此外,我们还可以通过控制IO口的输出时间来调节蜂鸣器发声的时长。

四、问题分析与解决在实验过程中,我们可能会遇到一些问题,例如蜂鸣器无法发声或声音不稳定等。

这些问题可能是由以下原因引起的:1. 连接错误:检查蜂鸣器的正负极是否正确连接到单片机的IO口和GND。

确保连接线没有松动或接触不良。

2. 程序错误:检查程序中的代码是否正确,特别是IO口的控制部分。

确保程序正确地控制了蜂鸣器的开关状态。

3. 电源问题:检查单片机开发板的电源是否正常。

如果电源电压不稳定,可能会导致蜂鸣器无法正常工作。

光电报警器课程设计

光电报警器课程设计

光电报警器课程设计一、课程目标知识目标:1. 让学生理解光电效应的基本原理,掌握光电报警器的组成及工作原理。

2. 使学生了解并掌握光电传感器的种类、特点及应用场景。

3. 让学生掌握基本的光电报警器电路设计方法,能分析电路的性能和优化方案。

技能目标:1. 培养学生运用所学知识,设计并搭建简单光电报警器的能力。

2. 培养学生运用实验仪器和设备进行实验操作、数据采集和分析的能力。

3. 提高学生的团队合作能力,学会在团队中分工合作、共同解决问题。

情感态度价值观目标:1. 培养学生对物理学科的兴趣,激发他们探索科学原理的积极性。

2. 培养学生的创新精神和实践能力,使他们敢于尝试、勇于挑战。

3. 增强学生的安全意识,让他们认识到科学实验中遵守规则的重要性。

课程性质:本课程为物理学科选修课程,结合实际应用,注重理论与实践相结合。

学生特点:学生为九年级学生,具备一定的物理知识和实验操作能力,对新鲜事物充满好奇心。

教学要求:注重启发式教学,引导学生主动探索、积极思考,提高他们的实践操作能力。

在教学过程中,关注学生的个体差异,因材施教,使每位学生都能在原有基础上得到提高。

同时,注重培养学生的安全意识和团队协作精神。

通过本课程的学习,使学生达到上述课程目标,为后续相关课程的学习打下坚实基础。

二、教学内容本章节教学内容主要包括以下三个方面:1. 光电效应基本原理:参考课本第十五章“光与物质相互作用”的相关内容,介绍光电效应的定义、种类及光电转换的基本过程。

2. 光电传感器及其应用:结合课本第十六章“传感器”的内容,讲解光电传感器的种类、原理、性能参数及应用场景,重点介绍光电报警器中使用的光敏电阻、光敏晶体管等传感器。

3. 光电报警器设计与制作:依据课本第十七章“电子电路设计与实践”的内容,制定以下教学大纲:a. 介绍光电报警器的工作原理和基本组成;b. 分析并设计光电报警器电路,包括传感器、信号处理、报警输出等部分;c. 讲解电路元件的选型及电路调试方法;d. 安排实践操作,指导学生搭建光电报警器电路,并进行性能测试。

单片机蜂鸣器编程技巧

单片机蜂鸣器编程技巧

单片机蜂鸣器编程技巧1.音乐节奏控制:在编写程序时,可以使用定时器来控制蜂鸣器的音符持续时间。

通过调整定时器的参数值,可以实现不同音长的音符,从而控制节奏感。

2.音符频率控制:不同音符具有不同的频率,可以根据乐谱中各个音符的频率,将其对应的频率值存储在一个数组中。

通过控制蜂鸣器输出的频率,可以实现不同音高的音符。

3.延时函数:在单片机编程中,经常需要使用延时函数来控制时间间隔。

在输出音乐时,可以通过延时函数控制每个音符的持续时间。

通过调整延时函数的参数值,可以实现不同音符间的时间间隔,从而实现更好听的音乐效果。

4.音乐合奏:在编写程序时,可以将不同乐器的音符同时输出到不同的蜂鸣器上,从而实现多个乐器的合奏效果。

通过合理地组合不同乐器的频率和节奏,可以编写出更丰富的音乐作品。

5.音乐循环播放:通过编写循环结构,可以实现音乐循环播放的效果。

通过精确地确定循环次数,可以实现指定音乐节拍的循环播放效果。

6.音乐速度调节:通过调整延时函数的参数值,可以控制音乐的播放速度。

加快延时时间可以使音乐播放加速,减慢延时时间可以使音乐放慢。

7.音乐音量控制:通过控制蜂鸣器输出的PWM信号的占空比,可以实现音乐的音量控制。

调整PWM信号占空比的大小,可以改变音量的大小。

8.音乐渐变效果:在编写程序时,可以使用渐变效果来实现音乐的过渡效果。

通过逐渐增加或减小频率和音量,可以实现音乐渐变的效果,使音乐更加流畅自然。

9.使用音乐库:在单片机编程中,有一些常用的音乐库可以使用。

通过引用这些音乐库,可以简化音乐的编写过程,提高编程效率。

10.节奏变化:在编写程序时,可以尝试在音乐的不同位置加入一些节奏变化,使音乐更加有层次感。

例如,在特定位置加入加速、变慢、停顿等效果。

总结:以上是一些常用的单片机蜂鸣器编程技巧。

通过合理运用这些技巧,可以编写出更多样化、更复杂的音乐效果。

当然,这只是冰山一角,还有很多其他的编程技巧可以尝试,通过对单片机蜂鸣器的深入研究和实践,我们可以更好地掌握这些技巧,创作出独特的音乐作品。

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告

单片机《蜂鸣器》实验报告单片机《蜂鸣器》实验报告一、实验目的本次实验旨在通过单片机的控制,实现对蜂鸣器的驱动和发声控制,进一步了解蜂鸣器的工作原理及应用。

二、实验原理蜂鸣器是一种电子发声器件,常用于发出警告、提示或声音信号。

其工作原理是利用电磁感应原理,在蜂鸣器线圈中通入电流时,会产生磁场,该磁场与蜂鸣器内部的一块磁铁产生相互作用力,使蜂鸣器内部的膜片发生振动,从而发出声音。

在本实验中,我们将通过单片机控制蜂鸣器的驱动信号,使其发出不同的声音,从而实现单片机对蜂鸣器的控制。

三、实验步骤1、准备实验器材:单片机开发板、蜂鸣器模块、杜邦线等。

2、将蜂鸣器模块连接至单片机开发板的某个数字引脚上。

3、通过单片机编程软件编写控制程序,实现对蜂鸣器的控制。

4、将编写好的程序下载到单片机开发板中,并进行调试。

5、通过单片机控制蜂鸣器发出不同的声音,观察其工作情况。

四、实验结果与分析1、实验结果通过本次实验,我们成功实现了单片机对蜂鸣器的控制,可以通过编写不同的程序,使蜂鸣器发出不同的声音。

以下是实验中蜂鸣器发出的声音及其对应的程序代码:(1) 发出“滴”的一声(2) 发出“嘟嘟”的警告声2、结果分析通过实验结果可以看出,通过单片机对蜂鸣器进行控制,可以实现发出不同声音的效果。

在第一个实验中,我们通过设置引脚的高低电平及延时时间,使蜂鸣器发出一声“滴”的声音。

在第二个实验中,我们通过一个无限循环,使蜂鸣器发出“嘟嘟”的警告声。

五、结论与展望通过本次实验,我们深入了解了蜂鸣器的工作原理及应用,并成功实现了单片机对蜂鸣器的控制。

实验结果表明,我们可以根据实际需要编写不同的程序,实现对蜂鸣器的灵活控制。

展望未来,我们可以进一步研究蜂鸣器的其他应用场景,例如在智能家居、机器人等领域中的应用。

我们也可以通过其他方式对蜂鸣器进行控制,例如通过传感器采集信号或者通过无线网络进行远程控制等。

51单片机项目教程项目 5 蜂鸣器实验

51单片机项目教程项目 5  蜂鸣器实验

图5- 9蜂鸣器实物结果
当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和 RXD脚分别用于发送和接收数据。
5.2技术准备
方式1发送时,数据位由TXD端输出,发送一帧信息为10位:1位起始 位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写 SBUF的指令,就启动发送。发送开始时,内部发送控制信号变为有 效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期, 便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部 发送完毕后,中断标志位TI置1。 方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到 起始位的负跳变,则开始接收。当一帧数据接收完毕后,同时满足以 下两个条件,接收才有效。 (1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被 响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8), 则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标 志RI置“1”。
5.2技术准备
5.2.2 了解实验板蜂鸣器电路
图5- 3蜂鸣器电路
5.2技术准备
5.2.3 蜂鸣器驱动电路
蜂鸣器驱动电路如图5-4所示。
图5- 4蜂鸣器驱动电路
5.2技术准备
5.2.4串行口的结构
单片机串口结构如图5-5所示。有两个物理上独立的接收、发送缓冲器 SBUF(属于特殊功能寄存器),可同时发送、接收数据。控制寄存器共 有两个:特殊功能寄存器SCON和PCON。发送和接收引脚分别是TXD (P3.0)和RXD(P3.1)。
SM0 0 0 1 1 SM1 0 1 0 1 工作 方式 0 1 2 3 功能简介 移位寄存器 8位UART 9位UART 9位UART 比特率 OSC/12 可变 OSC/32或 OSC/64 可变

51单片机实验2014

51单片机实验2014

《单片机原理与应用实验》指导书厦门理工学院光电与通信工程学院目录目录 (I)第一章概述 (1)第二章实验系统组成和结构 (4)§2.1 系统主机的硬件组成 ................................................................ 错误!未定义书签。

2.1.1 逻辑电平开关电路...................................... 错误!未定义书签。

2.1.2 LED电平显示电路....................................... 错误!未定义书签。

2.1.3单脉冲电路........................................... 错误!未定义书签。

2.1.4 音频放大电路........................................... 错误!未定义书签。

2.1.5 继电器输出电路........................................ 错误!未定义书签。

2.1.6 逻辑门电路............................................. 错误!未定义书签。

2.1.7 逻辑测量(逻辑笔)电路................................. 错误!未定义书签。

2.1.8 4MHz脉冲信号源和多级分频电路......................... 错误!未定义书签。

2.1.9 可调模拟量输入电路..................................... 错误!未定义书签。

2.1.10 六位LED数码显示器................................... 错误!未定义书签。

2.1.11 4×6 键盘电路......................................... 错误!未定义书签。

单片机综合实验课程设计

单片机综合实验课程设计

单片机综合实验课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握其内部结构及相关功能模块的使用方法。

2. 学生能掌握单片机编程的基本语法和技巧,能独立完成简单的程序设计。

3. 学生能了解单片机在现实生活中的应用,并学会分析实际案例。

技能目标:1. 学生能运用所学知识,完成单片机的基本操作和程序编写。

2. 学生能通过实验,学会使用相关开发工具和调试技巧,具备一定的故障排查能力。

3. 学生能运用单片机技术解决实际问题,提高创新实践能力。

情感态度价值观目标:1. 学生通过单片机综合实验课程,培养对电子信息科学的兴趣和热情。

2. 学生在团队协作中,学会沟通、分享和合作,提高解决问题的能力。

3. 学生能认识到单片机技术对社会发展的作用,树立正确的价值观和责任感。

课程性质:本课程为实践性课程,侧重于培养学生的动手能力和创新能力。

学生特点:学生已具备一定的单片机基础知识,对实际操作感兴趣,但编程能力和问题解决能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践和团队协作,提高学生的综合能力。

通过课程目标分解,使学生在知识、技能和情感态度价值观方面取得具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容本课程教学内容主要包括以下几部分:1. 单片机基础理论:回顾单片机的基本原理、内部结构、工作原理等,重点讲解中断系统、定时器/计数器、串行通信等模块的功能和应用。

2. 单片机编程语言:以C语言为基础,介绍单片机编程的基本语法、数据类型、运算符、控制语句等,并通过实例进行讲解。

3. 单片机实验操作:结合教材章节,进行以下实验:- 基本输入输出实验:学习单片机I/O口控制,实现LED灯、蜂鸣器等设备的控制。

- 中断控制实验:掌握中断系统的使用,实现外部中断控制。

- 定时器/计数器实验:学习定时器/计数器的配置,完成定时控制等功能。

- 串行通信实验:了解串行通信原理,实现单片机之间的数据传输。

传感器与单片机课程设计

传感器与单片机课程设计

传感器与单片机课程设计一、课程目标知识目标:1. 理解传感器的基本原理及其在单片机系统中的应用;2. 掌握常见传感器的工作原理、特性及接口技术;3. 学会使用单片机编程实现对传感器的数据采集与处理。

技能目标:1. 能够正确选择并使用传感器进行数据采集;2. 能够运用单片机编程实现对传感器的控制与数据处理;3. 能够设计简单的传感器与单片机相结合的控制系统,解决实际问题。

情感态度价值观目标:1. 培养学生对传感器与单片机技术的兴趣,激发探究精神;2. 增强学生的团队合作意识,培养协同解决问题的能力;3. 提高学生的创新意识,鼓励学生将所学知识应用于实际生活中。

本课程针对高中年级学生,结合传感器与单片机相关知识,注重实践性与应用性。

在教学过程中,充分考虑学生的认知水平、学习兴趣和实际需求,以项目为导向,引导学生通过动手实践,掌握传感器与单片机的应用技能。

课程目标旨在使学生具备独立设计简单控制系统的基础能力,同时培养其创新精神和团队协作能力,为未来进一步学习相关专业知识和技能打下坚实基础。

二、教学内容1. 传感器原理与应用- 介绍传感器的基本概念、分类和作用;- 详细讲解温度传感器、光敏传感器、声音传感器等常见传感器的工作原理和特性;- 分析传感器在单片机系统中的应用实例。

2. 单片机基础知识- 概述单片机的结构与功能;- 介绍单片机编程基础,包括指令系统、程序设计等;- 阐述单片机与传感器接口技术。

3. 传感器与单片机实践操作- 设计并实施温度监测、光线控制、声音检测等实验项目;- 指导学生运用单片机编程实现对传感器的数据采集与处理;- 分析实验结果,探讨解决实际问题的方法。

4. 创新设计与团队合作- 鼓励学生发挥创意,设计具有实际应用价值的传感器与单片机控制系统;- 培养学生团队协作能力,分组完成设计项目;- 组织成果展示,分享设计心得。

教学内容参考教材相关章节,结合课程目标进行系统组织。

在教学过程中,注重理论与实践相结合,以项目为导向,逐步引导学生掌握传感器与单片机的基本知识和应用技能。

超声波传感器单片机课程设计

超声波传感器单片机课程设计

课程设计报告题 目 超声波测距系统设计课 程 名 称 单片机原理及应用院 部 名 称 机电工程学院专 业 电气工程及其自动化班 级 12电气工程及其自动化(单)学 生 姓 名学 号课程设计地点 工科楼 C304课程设计学时 20指 导 教 师金陵科技学院教务处制目录一、概述 (3)1.1课程设计应达到的目的 (4)1.2 超声波测距系统设计 (4)二、总体设计方案及说明 (4)2.1系统总体设计思路 (4)2.2系统总体设计框图 (5)三、系统硬件电路设计 (5)3.1 单片机的最小系统 (6)3.1.1AT89C51单片机的功能与特点 (6)3.2系统原理分析 (6)3.2.1超声波测距原理 (6)3.3 超声波传感器检测电路 (6)3.3.1超声波检测电路图 (7)3.3.2 超声波发生及感应过程 (7)3.4 超声波测距接收 (7)3.4.1 HC-SR04模块 (7)3.4.2 T40、R40超声波传感装置介绍 (7)3.5 SCM1602显示模块 (9)四、系统软件部分设计 (11)4.1 软件流程图 (11)4.1.1主程序流程图 (11)4.1.2超声波发生子程序 (11)4.2 系统源程序 (12)五、系统仿真过程与结果 (13)5.1 Proteus仿真软件 (14)5.2仿真编译过程 (14)5.3仿真效果图 (15)六、实物展示 (16)6.1实物元件与过程 (16)6.2实物运行与调试 (15)6.3实物总结 (15)七、总结 (18)八、参考文献 (19)附录,原理图 (20)摘要本设计采用了AT89C51作为中心处理器,HC-SR04模块进行超声波方面的发生与感应。

然后介绍了总体的系统设计框图、思路及元件选型。

接下来,分硬件和软件两部分进行了设计的分析。

硬件方面首先构建了一单片机最小系统,然后集成各芯片完成设计。

软件方面通过外部中断,定时器中断等完成开发的子程序的调用。

单片机按键控制蜂鸣器发声程序

单片机按键控制蜂鸣器发声程序
void Time0_Init()//定时器T0方式1,定时10ms
{
TMOD = 0x01;
IE= 0x82;
TH0 = 0xDC;
TL0 = 0x00;
}
void Time0_Int() interrupt 1
{
TH0 = 0xDC;
TL0 = 0x00;
Count++;
}
void delay (uint8 k)//按键防抖延时
{
return;
}
else
{
Temp2 = SONG[Addr++];
TR0 = 1;
while(1)
{
Speak = ~Speak;
Delay_xMs(Temp1);
if(Temp2 == Count)
{CΒιβλιοθήκη unt = 0;break;
}
}
}
}
}
void keyscan (void)//按键切换声音函数
单片机按键控制蜂鸣器发声程序单片机蜂鸣器音乐程序单片机蜂鸣器程序单片机蜂鸣器报警程序蜂鸣器发声程序单片机按键程序单片机独立按键程序单片机按键扫描程序单片机按键消抖程序单片机按键中断程序
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
{
uint8 Temp1,Temp2;
uint8 Addr;
Count = 0;//中断计数器清0
Addr = i *3;
while(1)
{
Temp1 = SONG[Addr++];

基于51单片机的红外反射式光电传感器测速机的简易方案设计书

基于51单片机的红外反射式光电传感器测速机的简易方案设计书
(二)单片机部分
(1)单片机外部连线图:如下图(3)所示
图(3)单片机连线图
在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。单片机型号选89C51或89C52都行。在实验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统。
但整体来说,此测速系统还是具有可行性的。当我们需要知道某电机的转速而又缺少测速装置时,就可以用此套系统来进行测速。它的简单性,方便性和快捷性也是某些测速装置不可比拟的。至于其缺点,由于设计者水平目前有限,暂不能完美解决,只待以后对此方面有较多理解后在解决,同时也希望对此精通的师生给予指点,从而进行改进测速方法,提高整个系统的测速性能。
(c)
图(1)LM339工作原理图及管脚图
(2)整体连线图:如下图(2)所示:
图(2)比较型光电传感器整体电路图
在上图中,LED灯相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。
void display(uint qian,uint bai,uint shi,uint ge)。
void delay (uint z)。
void init()。
void main()
{
EA=1。//开总中断
EX0=1。//开外部中断0
init()。//初始化子程序
while(1)
{
display(qian,bai,shi,ge)。
if(aa==20)

单片机使用4个独立按键控制蜂鸣器代码

单片机使用4个独立按键控制蜂鸣器代码

单片机使用4个独立按键控制蜂鸣器代码下面是使用单片机控制蜂鸣器,使用4个独立按键的示例代码:```c#include <reg52.h> // 8052 单片机头文件sbit beep=P1^5; // 将蜂鸣器引脚定义为 P1.5sbit key1=P3^1; // 定义四个按键引脚为 P3.1 到 P3.4sbit key2=P3^2;sbit key3=P3^3;sbit key4=P3^4;void delay(unsigned int t) // 延时函数{unsigned int i,j;for(i=0;i<t;i++)for(j=0;j<125;j++);}void main(){beep = 0; // 蜂鸣器关闭while(1){if(key1 == 0) // 首先检测按键1是否按下{beep = ~beep; // 取反控制蜂鸣器开/关delay(500); // 延时以避免误触}else if(key2 == 0) // 随后检测按键2是否按下{beep = 0; // 关闭蜂鸣器delay(500);}else if(key3 == 0) // 然后检测按键3是否按下{beep = 1; // 打开蜂鸣器delay(500);}else if(key4 == 0) // 最后检测按键4是否按下{beep = 0; // 关闭蜂鸣器delay(500);}}}```在上述代码中,我们首先定义了蜂鸣器引脚 `beep`,以及四个按键引脚 `key1` 到 `key4`。

然后,我们通过 `delay` 函数来延时防止误碰。

在无限循环中,我们检测四个按键的状态,如果有按键被按下,我们会对蜂鸣器进行相应的操作。

按键1控制开/关蜂鸣器,按键2关闭蜂鸣器,按键3打开蜂鸣器,按键4同样关闭蜂鸣器。

《单片机技术及应用》教学课件 项目2 任务一 按键轮询控制蜂鸣器发声全文

《单片机技术及应用》教学课件 项目2 任务一 按键轮询控制蜂鸣器发声全文

分类
本任务中所采用蜂鸣器为有源蜂鸣器其驱动电路如右图所示。
1
2
3
4
5
蜂鸣器原理 按键的工作原理
按键电路原理图 程序流程图 主要代码分析
按键的工作原理
1
2
按键的分类
独立式按键 电路介绍
3
4
按键消抖 按键的击键类型
触点式开关按键,如机械式开关、导电橡胶式开关等; 无触点式开关按键,如电气式按键,磁感应按键等。
02 任务描述与要求 04 知识储备 06 任务检查与评价 08 任务拓展
根据所学相关知识, 请制订完成本次任务的实施计划。
2.1按键轮询控制蜂鸣器发声
01 职业能力目标 03 任务分析与计划 05 任务实施 07 任务小结
02 任务描述与要求 04 知识储备 06 任务检查与评价 08 任务拓展
能根据功能需求,熟练掌握按键轮询的编程思路, 实现按键控制蜂鸣器发声功能。
2.1 按键轮询控制蜂鸣器发声
01 职业能力目标 03 任务分析与计划 05 任务实施 07 任务小结
02 任务描述与要求 04 知识储备 06 任务检查与评价 08 任务拓展
• 任务描述: XX公司研发一款新产品——电子门铃,要求能
项目二 电子门铃
单元阐述:
现今随着科学技术的发展,人们的生活 正朝着智能化的方向发展,电子门铃便是其 中之一。
本项目中,使用压电模块模拟电子门铃 开关,使用蜂鸣器模拟门铃的喇叭,大家也 来试试,当我们按下压电开关时,蜂鸣器是 否发声呢?
2.1 按键轮询控制蜂鸣器发声
知识目标:
1. 掌握按键控制的方法(轮询方式) 2. 掌握蜂鸣器使用方法
项目二 电子门铃
引导案例:

《单片机程序设计》课件

《单片机程序设计》课件
《单片机程序设计》PPT课件
目录
• 单片机概述 • 单片机程序设计基础 • 单片机开发环境与工具 • 单片机程序设计的实践案例 • 单片机程序设计的常见问题与解决方案 • 单片机程序设计的未来发展与展望
01
单片机概述
单片机的定义与特点
总结词
功能强大、集成度高、体积小、可靠性高
详细描述
单片机是一种集成电路芯片,集成了CPU、存储器、定时器/计数器、输入/输 出接口等功能,具有功能强大、集成度高、体积小、可靠性高等特点,广泛应 用于智能仪表、工业控制、智能家居等领域。
03
单片机开发环境与工具
单片机开发环境的组成
硬件开发工具
用于单片机硬件设计的工具,如原理图编辑器、电路仿真器等。
软件开发工具
用于单片机软件开发的工具,如集成开发环境(IDE)、编译器、 调试器等。
辅助工具
用于单片机开发过程中的辅助工具,如烧写器、仿真器、逻辑分析 仪等。
单片机开发工具的种类与选择
详细描述
温度传感器程序设计是单片机应用中较为复 杂的案例,通过编写程序读取温度传感器数 据,实现温度的测量和控制。这个案例可以 帮助初学者了解单片机的A/D转换、传感器 接口应用等知识,提高程序设计的综合应用 能力。
液晶显示程序设计
要点一
总结词
通过液晶显示程序设计,掌握单片机的显示接口应用。
要点二
01
通用型工具
适用于多种单片机的开发工具, 如Keil、IAR等。
02
03
专用型工具
选择依据
针对特定单片机的开发工具,如 针对ARM Cortex-M核的 STM32CubeIDE等。
根据项目需求、开发人员习惯、 工具性能和价格等因素进行选择 。

光电传感器控制开关程序编写

光电传感器控制开关程序编写

光电传感器控制开关程序编写主程序#include<>#define uchar unsigned char#define uint unsigned intsbit KEYON =P2^0; // 开始键sbit KEYOFF=P2^1; // 关闭键sbit KEYSET=P2^2; // 预约键sbit KEYINC=P2^3; //加1键sbit KEYDEC=P2^4; // 减1键sbit KEYFREE=P2^5; //预留键sbit POWER=P3^6; //电源开关指示灯sbit LED=P3^3 ; //按键指示灯uchar code dispcode[]={0x3f,0x06,0x05b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //0-9的字型码uchar data disbuf[]={0,0,0,0}; //显示缓冲区uchar hour,min ; //小时、分变量bit Onflag,flag;uchar Setflag;void delay(uchar); //延时子函数void init(void); //定时器初始化子函数uchar GetKeyNum(); //求按键号void Keyprocess(uchar); //按键处理子函数void calculate(); //计时子函数void display(); //显示子函数//--------------------主函数-------------------------void main(void){init();P1=0x00;while(1)display();}//-------------定时器TO、T1初始化,外部中断0初始化子函数-----void init(){TMOD=0x11; //TO、T1作定时器、工作方式1TH0=(65536-50000)/256 ; //定时50msTL0=(65536-50000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;IT0=1; //选择外部中断0为下降沿触发方式EX0=1; //开外部中断0ET1=1; //开定时器1ET0=1; //开定时器0EA =1; //开总中断TR0=1;}//----------显示子函数-------------------------- void display(){uchar i,j=0x08;if((Setflag==0)&&!(min|hour)) //数码管显示“- - - -”{for(i=0;i<4;i++) disbuf[i]=dispcode[10];}else // 正常显示时间{disbuf[0] = dispcode[min%10]; //分个位disbuf[1] = dispcode[min/10]; //分十位disbuf[2] = dispcode[hour%10]+0x80; //小时个位disbuf[3] = dispcode[hour/10]; //小时十位}if((Setflag!=0)&flag) //如果调时,数码管闪烁显示{for(i=0;i<4;i++){if((disbuf[i]==0x3f)&&(i>2)) //不显示前面的0P0=0;elseP0=disbuf[i];if(Setflag==1) P1=j&0xfc; //调时,关断前两位位码else P1=j & 0xf3; //调分,关断后两位位码delay(5); //延时P1=0x00;j=j>>1;}}else //数码管正常显示{for(i=0;i<4;i++){if((disbuf[i]==0x3f)&&(i>2)) P0=0; //不显示前面的0else P0=disbuf[i];P1=j; //位选通delay(5); //延时P1=0X00;j=j>>1;}}}//--------------外部中断0中断函数---------------------------------void int0()interrupt 0 using 0{uchar keynum;display(); //动态显示程序作为去抖动if(INT0==0) //判断是否有按键按下{keynum=GetKeyNum(); //有效键,获取键值 while(INT0==0); //等待按键释放Keyprocess(keynum); //按键处理}}//-----------------定时器0中断子函数----------------------------void time0() interrupt 1 //处理调时、显示器闪烁{static uchar ledcnt,num; //设置静态变量TH0=(65536-50000)/256; //定时50msTL0=(65536-50000)%256;if((Onflag && ((hour | min)!=0)) |! Onflag) //指示灯每隔闪烁{ledcnt++;if(ledcnt==10) // 10 X 50mS={ledcnt=0;LED=~LED;}}if(Setflag!=0) //调时闪烁{num++;if(num==5){num=0;flag=~flag;}}}//-------------定时器1中断子函数-------------------void time1() interrupt 3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;calculate(); //计时}//-----------------求按键号------------------------------- uchar GetKeyNum(){uchar temp;if(KEYON==0) temp=1;if(KEYOFF==0) temp=2;if(KEYSET==0) temp=3;if(KEYINC==0) temp=4;if(KEYDEC==0) temp=5;if(KEYFREE==0) temp=6;return(temp);}//--------------------按键处理函数---------------------------- void Keyprocess (uchar x){switch(x){case 1: //KEYON处理函数Onflag=1; //开Onflag标志Setflag=0; //关(Setflag)调时标志if((!Setflag)&&!(hour | min)) //没有调时且未处于预约,继电器通{POWER=0;LED=0;}elseTR1=1; //定时器1运行、执行计时程序break;case 2 : //KEYOFF,关处理,标志清0Onflag=0;Setflag=0;hour=0;min=0;POWER=1;LED=1;break;case 3: //预约调时/调分键,处理调时标志if(Onflag==0){Setflag++;if(Setflag==3) Setflag=1;}break;case 4: //加1键if(Setflag==1) //调时键,最大只能调到11{hour++;if(hour==12)hour=0;}if(Setflag==2) //调分键,最大只能调到59{min++;if(min==60)min=0;}break;case 5: //减1键if(Setflag==1) //调时键,减小时处理,最小0{hour-- ;if(hour==-1)hour=12;}if(Setflag==2) //调分键,减分处理,最小0{min--;if(min==-1)min=59;}break;}}//---------------------计算时间---------------------------------void caculate(){static uint tcount; //tcount为定时次数if((hour | min)!=0){tcount++; //1次50ms到,改变定时次数if(tcount==1200) //1200*50ms=1分钟{tcount=0; //初始化定时次数if(min==0){min=60;hour--;}min--;}if((min==0)&(hour==0)) //预约时间到{POWER=0; //继电器接通LED=0;TR1=0;}}}//-----------------------定时void delay(uchar x){uchar j,k;for(j=x;j>0;j--)for(k=249;k>0;k--);}。

基于单片机的光电传感器

基于单片机的光电传感器

1.方案比较与选择图1 方案一原理图如上图所示是方案一,采用纯模电硬件电路设计,所设计的电路没有控制模块功能,只能通过光敏电阻检测当前的环境光强是否符合一个定值之下,若光强低于设定值则蜂鸣器蜂鸣和LED闪而报警。

此方案虽然输入光强定制可以调节,但是检测灵敏度不高且不可以读出当前的光强以及电阻。

因此应用不强,不符合一般的应用,所以本系统设计不采用。

图2 方案二原理图如上图是方案二,也是本系统所采用的方案。

本方案通过光敏电阻检测周围的光强变化,通过ADC0832将模拟数据转换为数字信号送到单片机处理控制显示当前的光强变化引起的电阻的变化的电阻值,从而知道当前环境的光强值。

相对方案一,此方案检测灵敏度高,准确度高且可以定量检测当前的环境光强的变化,实现起来单片机编程方便,准确度高,且可扩展性好,直观可见。

2.电路分析总体电路图:图3 Schematic原理图次电路主要包括三个模块,一个是检测模块,一个是处理模块,一个是显示模块,下面将每个模块分开说明:2.1检测模块电路原理图如下图4 检测模块图ADC0832是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。

由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。

学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。

ADC0832 具有以下特点:· 8位分辨率;· 双通道A/D转换;· 输入输出电平与TTL/CMOS相兼容;· 5V电源供电时输入电压在0~5V之间;· 工作频率为250KHZ,转换时间为32μS;· 一般功耗仅为15mW;· 8P、14P—DIP(双列直插)、PICC 多种封装;· 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为.40°C to +85°C 其中DL是光敏电阻,当光强比较大时,光敏电阻阻值比较少,对应的输入到IN+引脚的电压相对较高,通过ADC0832模数转换器电平的比较在单片机时序的控制下输出8位的二进制数据,次8位数据代表是光敏电阻当前的阻值,根据ADC0832芯片资料以及光敏电阻光强和电阻的关系可以算出当前的环境的光强,此系统没有做这部分容,但如果加入此部分容是比较简单的,加个程序算法以及显示就可以了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
图12-4是光电传感器的工作原理图,图中由振荡回路产生的调 制信号由发射管GL(光敏二极管)辐射出光脉冲 【24】 。光脉冲进
入光敏三极管DU,并在接收电路中将光脉冲解调为电脉冲信号, 再
经放大器放大和同步选通整形、解调,触发驱动器输出光电开关控 制信号。当有检测物对光束进行遮挡时,无光脉冲进入光敏三极管
第十二讲 光电传感器和蜂鸣器控制
1
12.0 项目演示效果
图XP_12_01 步骤1-打开开发板电源
2
图XP_12_02 步骤2-遮挡传感器1
3
图XP_12_03 步骤3-遮挡传感器3
4
图XP_12_04 步骤4-同时遮挡传感器1和2
5
图XP_12_05 步骤5-同时遮挡全部传感器
6
12.1 项目目标设计
生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片
在电磁线圈和磁铁的相互作用下,周期性地振动发声,具体的介绍 可参阅参考文献【25】。
18
由图12-1所示的电路原理图可知,蜂鸣器的正极接到VCC (+ 5V)电源,蜂鸣器的负极接到三极管Q2的集电极C,三极管的发射
极E接地,基级B经过限流电阻R6后由82C55的PC1引脚控制,当
case 1:PA8255|=0xc0; //光电信号无遮挡,熄灭D17和D16灯
ZLG7290_Download(0,0,0,31); //强制熄灭数码管1 ZLG7290_Download(1,0,0,31); //强制熄灭数码管2
break;
default:break; }
24
Sflag1为1,光电信号无遮挡,用PA8255|=0xc0控制单独熄灭
7
12.2 项目任务
光电传感器和蜂鸣器控制项目的电路原理图如图12-1所示, PMY单片机开发板包括4个光电传感器TCST1030(L) 【22】 ,器件 编号分别为U20~U23,传感器的引出脚为Sensor1 ~Sensor4 ,分 别与STC89C52RC单片机的P12~P15口用连接插线(见图4-8)相 连。由电路原理图可知,在任意一个光电传感器凹形槽间无遮挡物 进行遮挡时,Sensor1~Sensor4输出信号都为高电平;反之则为低 电平。 本次项目借助第9章项目的结果,通过编写相应程序,实现当 任意光电传感器被遮挡而产生触发时,都会引起蜂鸣器的鸣响,同 时点亮相应的七段数码管及LED发光二极管,显示被遮挡传感器的 编号。
和引脚图。该器件结构紧凑,发射光源和接收检测器被正对置于同
TCST1030(L)主要用于轴状编码器的位置感应器和机械运动 限制开关等,可实现对不透明物质(如卡片、纸等)的检测。
一光轴上,发射光波长是 950nm,接收检测器由光敏三极管构成。
16
图12-5 TCST1030(L) 光电传感器外型和引脚图
17
12.6.2 蜂鸣器简介
蜂鸣器是一种一体化结构的电子讯响器,广泛应用于计算机、打 印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时 器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁
式蜂鸣器两种类型。
本开发板采用的是有源式电磁蜂鸣器,这种蜂鸣器是由振荡器、 电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产
DU,光敏三极管随即断开,接收电路中无电脉冲信号流过负载。
因此,光电传感器是将输入电流在发射器上转换为光信号射出, 接收器再根据接收到的光线强弱或有无对目标物体进行探测。多数 光电开关选用的是波长接近可见光的红外线光波型。
14
图12-4 光电传感器内部工作原理图
15
图12-5是美国Vishay公司生产的TCST1030(L) 光电传感器外型
8
图12-1 光电传感器和蜂鸣器控制项目的电路原理图
9
12.3 系统板上硬件连线
光电传感器和蜂鸣器控制项目的连接插线设置如图12-2所示,此处 应使用4根连接插线将STC89C52RC单片机P12~P15(J9、J6、J8
和J10)分别与传感器输入端Sensor01~Sensor04(在芯片82C55 的PC口接线排子4、5、6、7的下方)相连。
1. 了解光电传感器的基本工作原理; 2. 了解蜂鸣器的基本工作原理; 3. 掌握对多个光电传感器输入信号进行识别的软件处理方法; 4. 掌握对蜂鸣器的控制方法; 5. 继续加深理解ZLG7290键盘与显示控制芯片相关函数的控制和 使用方法; 6. 理解给出的光电传感器和蜂鸣器C语言源程序的结构和各语句所 起作用; 7. 在达到上述六点目标之后,根据本章“项目扩展任务”中提出的 问题,以组或个人为单位,在规定时间里完成扩展项目任务。
22
对蜂鸣器的控制由以下代码体现:
if(!(Sflag1&Sflag2&Sflag3&Sflag4)) PC8255|=0x01; 量为0的情况出现,允许蜂鸣器发声 //有变
else PC8255&=0; //禁止蜂鸣器发声
由12.2小节项目任务可知,当Sflag1&Sflag2&Sflag3&Sflag4相 与后结果为高电平,说明在任意一个光电传感器凹形槽间无遮挡物 遮挡,所有Sensor输出信号都为高电平;反之,当有遮挡物在其中 一 个 光 电 传 感 器 凹 形 槽 间 进 行 遮 挡 时 , Sflag1&Sflag2&Sflag3&Sflag4相与后的结果将为0,这时控制蜂 鸣器发声,指示有传感器信号被触发。
28
29
sbit Sensor02=P1^3 ;
sbit Sensor03=P1^4 ; sbit Sensor04=P1^5 ;
//传感器2的输入端口
//传感器3的输入端口 //传感器4的输入端口
21
源程序中含有将引脚Sensor1 ~Sensor4 位信息转换为uchar变 量的过程,如下: Sflag1=(uchar)Sensor01; //将传感器1的输入端口状态储存 在指定变量中 Sflag2=(uchar)Sensor02; //将传感器2的输入端口状态储存 在指定变量中 Sflag3=(uchar)Sensor03; //将传感器3的输入端口状态储存 在指定变量中 Sflag4=(uchar)Sensor04; //将传感器4的输入端口状态储存 在指定变量中 执行上述语句后,各个光电传感器的输入状态被强制转换为 uchar数据类型,并存储在变量Sflag1~Sflag4中,以便于后面的 switch语句调用,C语言中的switch语句不能直接对端口的引脚状 态进行判断,所以这里需要处理一下。
实现既能够将PA7、PA6脚设置为高电平,也会保持PA端口的其它
控制信号状态。
26
图12-7 程序中82C52.7 项目扩展任务
理解本章、第9章七段数码管和4×4键盘控制和第10章继电器和 直流小电机正反转控制的原理,以组或个人为单位,通过编写相应 程序,实现以下控制流程: 〃传感器U20~U22分别作为继电器和直流电机的控制开关。 〃当U20被遮挡,继电器闭合,从第1位数码管开始写入'EON';反 之,继电器打开,从第1位数码管开始写入'EOFF'。 〃U21被遮挡,直流电机正转,从第5位数码管开始写入'dF'。 〃U22被遮挡,直流电机反转,从第5位数码管开始写入'db'。 〃U21和U22被同时遮挡,设定直流电机正转,从第5位数码管开始 写入'dF'。 〃U21和U22同时无遮挡,设定直流电机刹车或停转,从第5位数码 管开始写入'dOFF'。
12
光敏三极管除了具有光敏二极管能将光信号转换成电信号的功能 外,还有对电信号放大的功能。光敏三级管的外型与一般三极管相 差不大,一般光敏三极管只引出两个极——发射极(E)和集电极 (C),如图12-4所示,基极(B)不引出,管壳同样开窗口,以 便光线射入。为增大光照,基区面积做得很大,发射区较小,入射 光主要被基区吸收。工作时集电结(C)反偏,发射结(E)正偏。 在无光照时,管子流过的电流为暗电流Iceo=(1+β)Icbo(很小), 比一般三极管的穿透电流还小;当有光照时,激发大量的电子-空 穴对,使得基极产生的电流Ib增大,此刻流过管子的电流称为光电 流,集电极电流Ic=(1+β)Ib,可见,光电三极管要比光电二极管 具有更高的灵敏度。
PC1输出高电平时,三极管Q2导通,蜂鸣器电流形成回路,发出声 音;当PC1输出低电平时,三极管Q2截止,没有电流流过线圈,蜂
鸣器不发声。因此,可以通过程序控制82C55的PC1脚电平实现对
蜂鸣器的发声控制。
19
12.6.3 项目程序分析
图12-6 光电传感器和蜂鸣器控制的系统功能图
20
根据12.2小节所述项目任务,参照图12-1并将其化简为图12-6 的光电传感器和蜂鸣器控制的系统功能图。开发板中4个光电传感 器 U20 ~ U23 的 引 出 脚 为 Sensor1 ~ Sensor4 , 分 别 与 STC89C52RC单片机的P15 ~P12 用连接插线相连。程序在主函数 前就应用sbit语句设定这4个端口的引脚。 sbit Sensor01=P1^2 ; //传感器1的输入端口
DispValue函数实现数码管1、2位显示11的功能。
25
程序是如何通过设置PA7、PA6脚为低电平而不影响82C55的PA 口其它控制信号状态呢?如图12-7所示,用PA82C55端口与0x3f
按位相与即可实现。图12-7中,y为PA82C55端口将要改变的值,
与0相与,则该位被清0;x为PA82C55端口不需改变的值,与1相 与,则该位被保留。 这种方法既能够将PA7、PA6脚设置为低电平也会保持PA端口的 其它控制信号状态。同理,用PA82C55端口与0xC0按位相或可以
23
相关文档
最新文档