收藏 分销(赏)

基于STM的教学楼电子打铃器专业课程设计.doc

上传人:二*** 文档编号:4484255 上传时间:2024-09-24 格式:DOC 页数:21 大小:447.54KB 下载积分:5 金币
下载 相关 举报
基于STM的教学楼电子打铃器专业课程设计.doc_第1页
第1页 / 共21页
本文档共21页,全文阅读请下载到手机保存,查看更方便
资源描述
工业微控制器 课程设计 题 目: 教学楼电子打铃器设计 院系名称: 电气工程学院 专业班级: 学生姓名: 学 号: 指导老师: 成绩: 指导老师署名: 日期: 目 录 引言 1 1系统概述 1 1.1设计任务 1 1.2设计要求 1 2 方案设计和论证 1 2.1单片机芯片选择方案 2 2.2 作息时间控制钟系统概述 2 2.3设计要求: 2 2.4单片机总体设计思绪 2 2.5各功效模块程序实现原理分析 3 3 STM32性能介绍及硬件设计 3 3.1 STM32单片机性能介绍 3 3.2电子打铃系统硬件设计 4 4 系统程序 7 4.1主程序设计以下 7 4.2 主程序内容 8 4.3 定时器中止函数和按键程序图 10 5 调试仿真 11 心得体会 14 参考文件: 15 引言 当今时代是一个新技术层出不穷时代,在电子领域尤其是自动化智能控制领域,传统分立元件或数字逻辑电路组成控制系统,正以前所未有速度被单片机智能控制系统所替换。单片机含有体积小、功效强、成本低、应用面广等优点,能够说,智能控制和自动控制关键就是单片机。现在,一个学习和应用单片机高潮正在工厂、学校及企机关大规模地兴起。学习单片机最有效方法就是理论和实践并重,本文用STM32单片机设计一个电子打铃系统。 此次设计中LED数码管电子时钟电路采取二十四小时制记时方法,此次设计采取STM32单片机,使用5V电源供电,而且在按键作用下能够进行调时,调分,复位功效。计时数据更新在计算机C语言驱动下每秒自动进行一次,但不需程序干预其输出状态。 1系统概述 1.1设计任务 用STM32设计一个教学楼电子打铃器。 1.2设计要求 (1)设置最少3种打铃模式,比如正常模式、周末模式、考试模式等; (2)能够经过按键设置打铃时间和每种模式打铃次数等参数; (3)设置参数能够掉电存放; (4)含有LED显示接口。 2 方案设计和论证 2.1单片机芯片选择方案 stm32是一个低功耗,高性能32位单片机,片内含4k Bytes ISP(In-system programmable)可反复擦写1000次Flash只读程序存放器。关键性能有:和MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、 三级加密程序存放器、32个可编程I/O口线、三个16位定时器/计数器、八个中止源、全双工UART串行通道、掉电后中止可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。 2.2 作息时间控制钟系统概述: 本设计是一个含有打铃功效作息时间控制钟。它利用STM32单片机自带时基计时,进行年历计算,并用蜂鸣器驱动模块将它打出来;在进行时间计算,分每加一时,全部和要求作息时间比较,假如相等则进行对应控制或动作。由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。现代机关企业,尤其是学校要求对时间加以控制,要按时打铃及播放广播,以确保学习和工作正常运行。本设计实现了这些功效,给学校及其它机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制智能化。 2.3设计要求: ① 利用单片机组成一个电子打铃器。 ② 根据学校上下课铃声次序设定定时间 ③ 用一个蜂鸣器模拟电铃,正常模式和周末模式响铃1.8s考试模式时响铃3.6s。 ④ 经过LED能够正常显示 2.4单片机总体设计思绪 (1)设计能正常工作一个单片机最小硬件系统,外围电路包含设置键盘 (2)进行软件设计,利用单片机系统时钟先设计一个高精度内部时钟系统,最小正确时间为期1秒; (3)在秒计数器基础上设计一个二十四小时时钟,并设计若干定时功效; (4)设计打铃实施机构,完成自动打铃功效。 2.5各功效模块程序实现原理分析 该模块由蜂鸣器驱动模块,LED模块和按钮控制模块组成。且全部经过STM32来实现。 1 蜂鸣器驱动模块 采取压电式蜂鸣器,压电式蜂鸣器关键由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路组成,当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ音频信号,阻抗匹配器推进压电蜂鸣片发声。 2 按钮控制模块 四个按钮一端分别接地,另一端接单片机一个端口四个引脚,当某一个按钮按下时候,其对应引脚就由高电平变成低电平,然后经过单片机扫描读取引脚电平来判定按钮是否按下。 3 LED模块 题目标要求只需用一个LED灯便能够显示传输是否在运行,故只接两个LED灯,LED0为显示传输是否运行指示灯,SYS为系统是否有电源进行供电指示灯。 3 STM32性能介绍及硬件设计 3.1 STM32单片机性能介绍 STM32它拥有资源包含:48KB SRAM、256KB FLASH、2 个基础定时器、4 个通用定时器、2个高级定时器、2个DMA 控制器(共 12 个通道)、3 个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口及51 个通用IO口,该芯片性价比极高。 各个引脚说明以下 PA0 作用1,按键 KEY_UP 2,能够做待机唤醒脚(WKUP) 3,能够接 DS18B20 传感器接口(P2 设置) PA1作用1,NRF24L01 接口 IRQ 信号 2,接 HS0038 红外接收头(P2 设置) PA2 作用 作为W25Q64 片选信号 PA3 作用 作为SD 卡接口片选脚 PA4 作用 作为NRF24L01 接口 CE 信号 PA5 作用 作为W25Q64、SD 卡和 NRF24L01 接口 SCK 信号 PA6 作用 作为 W25Q64、SD 卡和 NRF24L01 接口 MISO 信号 PA7 作用 作为 W25Q64、SD 卡和 NRF24L01 接口 MOSI 信号 PA8 作用 作为 接 DS0 LED 灯(红色) PA9 作用 作为串口 1 TX 脚,默认连接 CH340 RX(P4 设置) PA10 作用 作为串口 1 RX 脚,默认连接 CH340 TX(P4 设置) PA11 作用 作为接 USB D-引脚 PA12 作用 作为接 USB D+引脚 PA13作用 作为JTAG/SWD 仿真接口,没接任何外设 PA14 作用 作为JTAG/SWD 仿真接口,没接任何外设 PA15 作用 作为1,JTAG 仿真口(JTDI) 2,PS/2 接口 CLK 信号 3,接按键 KEY1 3.2电子打铃系统硬件设计 该程序所需要主电路图,蜂鸣器电路图,电源电路图和LED电路图和LCD外部接线图依次以下图所表示 图1.1主电路图以下图 图1.2 蜂鸣器电路图以下图 图1.3电源电路图以下图 图1.4 LED电路图以下图 图1.5 LCD外部接线图以下图 4 系统程序 4.1主程序设计以下 主程序步骤设计图以下图: 开始 初始化 按键检测 有键按下? 考试模式? Y N N Y 周末模式 正常模式 打铃时间比较 打铃时间比较 打铃1.8s,实施 打铃1.8s,实施 打铃3.6s,实施 显示 图1.5主程序步骤设计图 图1.5所表示主程序开始初始化后,如没有按键按下时,则为正常模式,,继续向下实施对打铃时间比较,时间正确话则打铃1.8s;若有按键按下;再次判定是否为考试模式,是则向下进行时间比较,时间正确则打铃3.6s;若判定非考试模式则为周末模式,周末模式打铃1.8s。继而循环,并再次实施主程序。 4.2 主程序内容 #include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "lcd.h" #include "timer.h" #include "key.h" extern u8 zhou,hour,min,sec; u8 t,i,shijian=0,a=50; u32 zcdlsj[5]={ // 30600,36000,37800,43200,52200,57600,59400,64800//´ËΪÕý³£µÄ½Ìѧ¥´òÁåʱ¼ä 1,5,10,20,25//ÒÔ´Ë5¸öʱ¼ä½øÐзÂÕæ }; u32 zmdlsj[3]={ // 30600,43200,64800//´ËΪÖÜĩģʽÏ´òÁåʱ¼ä }; u32 zcksdlsj[4]={ // 32400,39600,54000,61200//´ËΪ¿¼ÊÔģʽÏ´òÁåʱ¼ä }; int main(void) { delay_init(); LED_Init(); KEY_Init(); LED1=0; TIM3_Int_Init(10000,7199); while(1) { t=KEY_Scan(0); if(t==KEY_ts_PRES) {a=100; } if(t==KEYzc_PRES) { if(zhou<=5) {shijian=(hour*60*60+min*60+sec); for(i=0;i<=4;i++) {if(shijian==zcdlsj[i]) { PDout(2)=1; delay_ms(a*10); delay_ms(a*10); delay_ms(a*10); PDout(2)=0; }}} else { shijian=(hour*60*60+min*60+sec); for(i=0;i<=2;i++) {if(shijian==zczmdlsj[i]) { PDout(2)=1; delay_ms(a*10); delay_ms(a*10); delay_ms(a*10); PDout(2)=0; } } }} else if(t==KEYks_PRES) { shijian=(hour*60*60+min*60+sec); for(i=0;i<=3;i++) {if(shijian==ksdlsj[i]) { PDout(2)=1; delay_ms(a*10); delay_ms(a*10); delay_ms(a*10); PDout(2)=0; } }} } 4.3 定时器中止函数和按键程序 定时器中止函数程序以下 void TIM3_IRQHandler(void) //TIM3ÖÐ¶Ï { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); sec++; if(sec>= 60) { sec=0; min++; if(min>= 60) { min=0; hour++; if(hour>= 24) { hour=0; zhou++; if(zhou>=7) { zhou=1; } } } } } } 按键程序以下: #define KEYzc GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5)// 读取按键正常模式 #define KEYks GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15)// 读取按键考试模式 #define KEY_ts GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)// 读取按键调整时间 #define KEYzc_PRES 1 // 正常模式按下 #define KEYks_PRES 2 // 考试模式按下 #define KEY_ts_PRES 3 // 调整时间按下 void KEY_Init(void);// 初始化 u8 KEY_Scan(u8 mode); // 按键扫描函数 #endif //KEYzc_PRES 正常模式按下 //KEYzm_PRES 周末模式按下 //KEYts_PRES 调整时间模式按下 u8 KEY_Scan(u8 mode) { static u8 key_up=1;// 按键按松开标志 if(mode)key_up=1; // 支持连按´ if(key_up&&(KEYzc==0||KEYks==0||KEY_ts==1)) { delay_ms(10);// 去抖动 key_up=0; if(KEYzc==0)return KEYzc_PRES; else if(KEYks==0)return KEYks_PRES; else if(KEY_ts==1)return KEY_ts_PRES; }else if(KEY_ts==0|KEYzc==1|KEYks==1)key_up=1; return 0;// 无按键按下 } 5 调试仿真 为确保程序正常运行,经过软件进行仿真,因为正常情况下时间过长所以选择1s 5s 10s 20s 25s五个时间段进行模拟仿真,方便查验结果是否正确。仿真结果以下图所表示: 图1.6 5s时打铃程序程序仿真图如上图 图1.7 10s时打铃程序仿真图如上 图1.8 20s时打铃程序仿真图如上图 图1.9 25s时打铃程序仿真图如上图 打铃时长以下图 图1.10 正常模式下打铃时长仿真图如上图 经过仿真结果发觉该程序能够根据程序预定分别在1s 5s 10s 20s 25s进行打铃,且打铃时间为设置1.8s,证实该程序没有问题。 心得体会 本系统被广泛用于学校等相同教育机构,设计比较简单。经过一学期学习,使我对STM32有了初步认识,了解了部分软件编程技巧。 经过这次课程设计,使我学会了课堂上学不到知识,颇有一番感受,对于单片机有了更深了解,也温习了电路基础设计思绪和原理,掌握了单片机设计步骤,知道这门课程在工作中关键性。因为知识点不够精通,所以常常出现问题,在程序设计中出现了太多问题,不过经过仔细排查修改了错误。经过这次课程设计加深了学生对所学课程理论了解,扩展了教学中试验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计大致过程,进而能顺利进入毕业设计,提升毕业设计质量和学生实际应用能力,总而言之还是取得了很多经验。 参考文件: 1 《电子技术基础:模拟部分》 北京高等教育出版社 康华光1999 2 《基于STM32嵌入式设计》》机械工业出版社 卢有亮 3 《STM32库开发实战指南》机械工业出版社 刘火亮
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服