单片机实验报告-小型定时开关控制系统设计.docx

上传人:marr****208 文档编号:132161139 上传时间:2020-05-13 格式:DOCX 页数:27 大小:9.59MB
返回 下载 相关 举报
单片机实验报告-小型定时开关控制系统设计.docx_第1页
第1页 / 共27页
单片机实验报告-小型定时开关控制系统设计.docx_第2页
第2页 / 共27页
单片机实验报告-小型定时开关控制系统设计.docx_第3页
第3页 / 共27页
单片机实验报告-小型定时开关控制系统设计.docx_第4页
第4页 / 共27页
单片机实验报告-小型定时开关控制系统设计.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机实验报告-小型定时开关控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机实验报告-小型定时开关控制系统设计.docx(27页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告( 2017 / 2018 学年 第 学期)课程名称单片机原理及应用实验名称小型定时开关控制系统设计实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业实 验 报 告实验名称小型定时开关控制系统设计指导教师实验类型课内实验实验学时2实验时间一、 实验目的和要求1. 掌握行列式键盘、LED、数码管、蜂鸣器、继电器等人机接口和机电设备的工作原理,以及使用单片机C语言对其进行控制的方法;2. 掌握基于状态转移及定时调度的系统分析方法,并使用此方法对系统软件结构进行分析和设计,实现所要求的功能;3. 掌握使用集成开发环境Keil进行单片机程序的设计、开发及调试的方法和过程。二、

2、 实验要求1. 通过单片机的IO端口控制人机接口及机电设备,完成一个定时开关的设计;2. 定时开关的工作方式可设置为定时开或定时关;3. 系统通过行列式键盘接受用户的按键输入,设置工作方式和定时时长;4. 系统通过控制LED、数码管及蜂鸣器对用户的操作提供反馈和提示;5. 当用户控制计时启动时,系统对用户设定的时长进行倒计时;6. 如用户设置系统工作在定时开方式,则倒计时结束(计数到0)时控制继电器吸合;7. 如用户设置系统工作在定时关方式,则倒计时开始时继电器吸合,倒计时结束(计数到0)时继电器断开。三、 实验环境(实验设备)PC机、Keil C51集成开发环境、STC增强型51单片机,继电

3、器。图3.1 硬件实物图四、 实验原理及内容4.1 程序主体流程分析l 程序分析程序可以分为两个大循环,一个是main函数的循环,一个是定时器1的定时中断任务(T0ISR函数)。Main函数的任务主要有3个:1、完成系统初始化。2、处理定时中断传来的按键任务。3、处理定时结束的事件(开关继电器、蜂鸣器)。定时中断任务主要有5个(1ms的定时时长):1、根据任务减小当前剩余时间。2、刷新键盘。3、刷新数码管。4、响蜂鸣器. 5、刷新led灯main函数和定时中断的流程如下:图4.1.1 主函数和定时中断函数流程图 l 代码设计Main函数代码:void main()/1、初始化 2、处理按键 3

4、、处理定时结束事件 Init();while(1)if(keysolved=0) /有按键要处理solveKey();keysolved=1; /已处理if(TimeOut=1) /定时事件结束if(Timetype=0) /定时开Open();else if(Timetype=1) /定时关Close();TimeOut=0;Laststate=0;定时中断服务程序代码如下,其中XXTH通过宏定义为0xFC,XXTL通过宏定义为0X18:void T0ISR() interrupt 1 /1ms一次/1、根据任务减当前剩余时间 2、刷新键盘 3、刷新显示器 4、蜂鸣器TH0=XXTH;TL0

5、=XXTL;cnt+;if(beepOn=1) /如果蜂鸣器开,响蜂鸣器beep=beep;if(cnt=1000)cnt=0;if(state=2 | state=3)second-;if(second0)minite-;second+=60;if(minite0)hour-;minite+=60;if(hour=60)second-=60;minite+;if(minite=60)minite-=60;hour+;if(hour=99)hour=99;beepcnt=BEEPLEN; /操作错误,蜂鸣器提示else /操作错误,响蜂鸣器提示beepcnt=BEEPLEN;else if(keycode=0x12) /减1sif(state=1) /只有设置状态才可以-1ssecond-;if(second0)second+=60;minite-;if(minite0)minite+=60;hour-;if(hour=60)minite-=60;hour+;if(hour=99)hour=99;beepcnt=BEEPLEN; /操作错误,蜂鸣器提示elsebeepcnt=BEEPLEN;else if(keyco

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号