APP下载

基于能力驱动的单片机课程教学改革与实践

2022-09-08许梁罗开武

电子元器件与信息技术 2022年6期
关键词:蜂鸣器电路设计温湿度

许梁,罗开武

1.江西理工大学能源与机械工程学院,江西 南昌,3300132;2.铜仁学院大数据学院,贵州 铜仁,554300

0 引言

单片机课程前期的基础课程主要有《模拟电路》、《数字电路》,传统单片机课程课本知识教学侧重单片机底层知识,如汇编指令,单片机架构等知识的传授,对于地方高校的学生,基础稍微薄弱,从教学实践情况来看,单片机课堂以课本讲知识等教学方式,教学效果不是很理想。因此我们在教学过程融合《电子CAD线路》与《单片机技术及接口》两门课,实现提出问题,找出解决问题方法,到电路的设计与验证,焊接与组装、到嵌入式软件设计与数据上传终端等一系列技术的课堂传授。课程设计了以解决实际问题和应用为主的课程教学场景,在一定程度上缓解了单片机传统课程中指令教学枯燥、难记难懂的困镜。学生学习完课程实例后能直接模仿将课堂中的单片机相关技术应用到实际的生产生活中,以兴趣引领,基于能力驱动的人才培养教学活动,使学生动手实践能力得到明显加强,课程改革以实例教学方式进行,一个教学实例约10课时左右,其中硬件电路设计占4课时,单片机嵌入式软件教学占6课时。现以单片机温湿度采集系统设计教学实例,详细阐述单片机教学改革的实施开展情况。

1 教学情景设计

温湿度参数在智慧农业、工控领域有重要的应用,以温湿度数据采集为例,要求设备有:自选单片机与传感器。实现功能有:①采集传感器的温湿度,显示在液晶显示屏上,没有任何按键操作,若干时间后,液晶屏熄灭以省电;②单片机可以存储采集数据以来的最值,如温度的最大值和最小值,湿度的最大值和最小值;③通过按键可以设置温湿度报警的阀值;④采集的数据可以上报计算机,以供后续更广泛的控制,如向加湿器、空调等设备发送控制指令。

2 电路的教学设计

电路设计分析:课程教学所用的教学电路板在课堂上开发完成,电路的基本组成由单片机、传感器、按键、蜂鸣器、液晶屏组成;在单片机选型方面,传统的单片机有宏晶STC、爱特梅尔ATMEL、德州仪器TI等,为了后续嵌入式软件设计的方便性,在此选择爱特梅尔ATMEL ATMEGA328P-PU,同时考虑到学生焊接的方便性,封装选择DIP;而温湿度传感器也有众多选择,如DHT11和BMP280,同样,为了方便学生焊接,选择DHT11;数据上报到计算机,则选用USB转串口芯片CH340C。同时,为方便对嵌入式程序进行调试与下载,设计中加入了自动下载的电路,同时设计了单片机Bootloader引导烧录接口[1]。

2.1 单片机基本电路设计与讲解

单片机基本电路如图1所示。其中U1为ATMEL ATMEGA328P-PU,X1为16Mhz的晶振,C1、C6为与之匹配的负载电容,J1为Bootloader烧录接口,C3、C4、C5为单片机的滤波电容,为方便测试程序运行,设计了状态运行灯LED1。

图1 单片机基本电路

2.2 供电电路及数据上报电路设计与讲解

设计的USB接口供电电路如图2(a)所示,USB数据通讯电路如图2(b)所示。供电直接采用USB供电,同时支持USB数据通讯,能将采集到的数据发送给计算机。其中,LED2为电源供电指示灯;LED3、LED4为数据通讯状态灯,当有数据传送时,该灯会闪烁;C10、R5的设计是为了更新芯片程序时设计的自动下载功能;C7为CH340芯片的滤波电容;X2为CH340的晶振;C11、C12为X2的负载电容,大小为22pF,大小的设计要点需要根据晶振的相关参数确定[2]。

图2 USB 接口供电与USB 数据通讯电路设计

2.3 直流电路供电、温湿度传感器电路设计与讲解

除了USB供电,亦可以采用9~35V的直流供电。设计的直流供电电路如图3(a)所示,温湿度传感器电路如图3(b)所示。其中U4为LDO线性稳压芯片,支持的最高电压为35V;Q3为供电切换MOS管,当USB供电时,自动切断DC供电;D2是为了防止电流倒灌,设计要选电压降低的二极管;U5则是为了保护USB口而设计的可恢复熔丝。温湿度传感器DHT11的电路中R12为数据线上拉电阻,C13为该传感器的滤波电容。

图3 直流供电设计与温湿度传感器电路设计

2.4 LCD显示屏电路设计与与讲解

液晶显示屏电路和蜂鸣器电路设计如图4所示。其中,R1为液晶显示屏的对比度调节电位计;Q1为背光控制偏置三极管,这是为了节能设计;Q2为蜂鸣器开关控制偏置三极管;D1为Q2的保护二极管[4]。

图4 液晶显示屏电路设计与蜂鸣器电路设计

2.5 按键电路设计

按键电路采用A D C 按键设计。其中当SELECT键按下时,ADC电压为5V,10位的ADC采样值为最大值1023;当DOWN按键按下时,电压为3.968V,键电路设计如图5(a)所示,其仿真图如图5(b)所示。ADC采样值为811,当UP键按下时,电压值为1.976V;ADC采样值为404,计算方法可以通过仿真软件或做实验得出。上述电压是基于5V的理论值仿真出来的电压值,实际电压会有所变化,但不会影响ADC值,电压与ADC值的计算公式为。

图5 键电路设计与仿真图

2.6 PCB布线与讲解

该电路设计中,电源布线线宽度不少20mil,电源布线建议采用星型走线,USB D+D-要求差分对布线,晶振应尽可能接近相应的芯片,其它布线可采用5mil线宽,过孔采用12/24mil设计,布线及电路3D仿真如图6所示。

图6 电路布线与电路3D 仿真

3 单片机嵌入式软件教学设计

任务分析:结合上述应用场景,嵌入式软件设计是处理多任务多事件的过程,在本次教学中,主要的嵌入式设计内容如下。①采集传感器数据并作出相应的响应:单片机处理温湿度传感器DHT11的数据后,更新液晶显示屏显示内容,用串口向计算机上报,同时要读取EEPROM相关值,并与之比较,若高于最大值或低于最小值,则要更新EEPROM存储并启动蜂鸣器发出报警响声,当下一次读取传感器数据时,若在设置的范围内时,则需要关闭蜂鸣器。②响应用户按键事件:按键分别短按与长按,现约定,当短按下SELECT,UP,DOWN任意键时,屏幕亮起;当长按SELECT键时,进入阀值设置,开启液晶显示屏光标闪烁以定位要设置的报警值(温度最大值、温度最小值;湿度最大值、湿度最小值),UP键增加,DOWN键减少。③蜂鸣器响应事件:当蜂鸣器被触发时,采取响高电平(响)100毫秒,低电平(不响)3000毫秒,依次进行的报警动作。

基于上述电路的设置,各模块与单片机的接口连线在软件框架中对应的序号如下。

传感器 液晶屏 蜂鸣器 LED 按键DATA(PC0)PWR(PD6), EN(PB3),RS(PB4), RW(GND),DB0-4(GND), DB4(PD5),DB5(PD4), DB6(PD3),DB7(PD2)PD7 PB5 PC0 DATA(A1)PWR(D6), EN(D11),RS(D12), DB4(D5),DB5(DB4), D6(D3),DB7(D2);D7 D13 A0

3.1 单片机非阻塞技术讲解

基于ATMEGA328P单片机和相应软件框架实现对DHT11的温湿度数据采集、数据上报计算机以及数据在液晶显示屏上,蜂鸣器的开关设计,这些单个的实现,在网上已有众多的教程与实例,对于学生来说,这并不复杂。而嵌入式软件重点设计在于如何实现多任务同时运行且不耦合,这也是单片机技术应用重点,以下重点向学生讲述单片机应用中的Ticker技术,与状态机技术。

单片机里经常使用for或者while循环来实现delay延时函数,这是一种阻塞型的延时方法,适合于短时间(毫秒或微秒级别)的延时,但长时间延时不适合用这种方法,这样会造成单片机任务阻塞,而Ticker技术利用时间切片的概念,可以在预定的时间间隔内调用一个函数,因此使用它进行延时是非阻塞的,以蜂鸣器任务来讲解Ticker技术的任务,一般来说,任务建议有两个核心的部分:①任务的初始化,如void BeepInit(void)函数;②任务更新函数,如void beepUpdate(void)函数,此函数一般用在main函数中的for(;;)或while(1)中,用于刷新任务的Ticker,当ticker运行时,则运行相应的回调函数,否则等待下一次刷新,而对于外部调用,则只需关注beepOn()与beepOff()函数,整个实现过程是非阻塞的。这种技术解决了多任务耦合问题,如图7所示。

图7 用Ticker 技术实现蜂鸣器非阻塞不同频率报警

3.2 按键处理技术讲解

单片机的按键处理是嵌入式软件设计中经常要遇到的,按键分为短按与长按,根据图5的电路设计,当SELECT、DOWN、UP键按下时,ADC采样值为1023、811、404,根据实际测试,ADC值可能会上下波动1左右,单片机按键分为短按与长按。现对按键进行标定,从按键到释放,时间在500毫秒以内标定为短按;按住不放,时间超过3000毫秒,则视为长按。短按与长按同样可以使用Ticker技术检测与实现,单片机按键事件处理一般采用状态机来实现,现向学生讲述如何用状态机来实现上述功能。

单片机使用状态机处理按键事件如图8所示,根据任务需求,创建S1~S5五个状态机。SELECT键长按时进入状态机S1,进入设置温度最小值界面,液晶屏光标跳转到Tmin位置并闪烁,以告知使用者正在设置温度的最小阀值,此时若检测到UP或Down键按下,其阀值会相应加1或减1;当SELECT键再次短按下去时,状态机跳转至S2,进入设置温度最大值界面,依次类推,直至设置结束后液晶屏进入显示实时温湿度界面。状态机在非设置状态时,即非S1、S2、S3、S4,SELECT键短按时,液晶屏亮屏并实时显示采集的温湿度传感器数据;当UP或DOWN短按时,液晶屏亮屏并显示已采集数据的最值,相应时间后,自动跳转至实时数据界面。

图8 单片机使用状态机处理按键事件

4 结语

通过将电子CAD线路与单片机课程融合,以温湿度采集系统设计为例,从市场技术需求出发,从电路设计到开始焊接,从电路验证到嵌入式软件的设计,这是一个完整的从想法到产品的过程,以能力培养为目的、产出为导向的课程改革。从实践情况来看,课堂取得了非常好的教学效果,值得推广。

猜你喜欢

蜂鸣器电路设计温湿度
一种智能化电热处理炉用温湿度传感器的变送器
电动自行车产品车速提示音检测现状和整改技术研究(2)
LED路灯驱动电路设计研究——以宁德东湖沿岸夜景工程为例
蛋鸡育雏育成舍环境控制技术
掌控板制作简易钢琴
本尼丢了蜂鸣器
档案库房温湿度记录统计及调控
基于实验箱和Matlab相结合的信号与系统实验的改革
一种光感自动晾衣装置
档案库房温湿度调控思考