实验报告
实验名称 |
小型定时开关控制系统设计 |
指导教师 |
倪晓军 |
||
实验类型 |
课内实验 |
实验学时 |
2 |
实验时间 |
2017-12-15 |
一、 实验目的和要求
1. 掌握行列式键盘、LED、数码管、蜂鸣器、继电器等人机接口和机电设备的工作原理,以及使用单片机C语言对其进行控制的方法;
2. 掌握基于状态转移及定时调度的系统分析方法,并使用此方法对系统软件结构进行分析和设计,实现所要求的功能;
3. 掌握使用集成开发环境Keil进行单片机程序的设计、开发及调试的方法和过程。
二、 实验要求
1. 通过单片机的IO端口控制人机接口及机电设备,完成一个定时开关的设计;
2. 定时开关的工作方式可设置为定时开或定时关;
3. 系统通过行列式键盘接受用户的按键输入,设置工作方式和定时时长;
4. 系统通过控制LED、数码管及蜂鸣器对用户的操作提供反馈和提示;
5. 当用户控制计时启动时,系统对用户设定的时长进行倒计时;
6. 如用户设置系统工作在定时开方式,则倒计时结束(计数到0)时控制继电器吸合;
7. 如用户设置系统工作在定时关方式,则倒计时开始时继电器吸合,倒计时结束(计数到0)时继电器断开。
三、 实验环境(实验设备)
PC机、Keil C51集成开发环境、LBD简化版单片机教学实验系统。
四、 实验原理及内容
1. 系统的分析和设计:
(1) 系统的分析:
系统核心为定时功能,在规定的时长后完成要求所需的功能动作,因此可采用系统内部的1号定时/计数器中断来实现。系统共存在两种状态:设置状态和倒计时状态, 可以通过是否开始计时来区分,因此主函数在初始化完成后主要完成两种状态的区分。在计时中断函数中,主要完成显示,输入和计时位的刷新工作。系统的简化时序流程 图如下:
图一 系统简化时序流程图
(2) 系统的设计:
系统所需的功能性模块包括:4*4矩阵键盘用于设置倒计时时长,切换工作方式和开始倒计时;8位数码管用于显示剩余时间;继电器,用以完成规定动作;LED和蜂鸣器,用于反馈系统各个细节的运行情况。
定时/计数器,设置工作在方式一:16位定时器。在系统时钟频率为11.0582MHz的情况下,初值设置为0xDC00,每10ms触发一次定时/计数器中断。定时器计数器中断函数中,处理两件事:基于是否开始定时判断的时间刷新和键盘、数码管的刷新。具体为:每20ms,刷新一次键值和数码管;每1s判断后刷新计时位。
八位数码管,选用八位共阴极数码管,采用动态显示,为了节省I/O口,在数码管的段选位前接一个74HC573,用51P2口的2,3,4管脚作为数码管的位选信号。
图二 数码管接线原理图
4*4矩阵键盘,采用行列刷新的方式获取按键值。由左至右,由上至下键值分别为0-15。其中键值对应功能如下表:
表一 键盘键值及功能
键值 |
功能 |
5(StartStopKey) |
开始/停止计时,在设置参数状态下,按下则开始倒计时。在计时状态下,按下则停止倒计时。 |
1(PlusKey) |
在对应的时间位上 +1 |
9(SubKey) |
在对应的时间位上 -1 |
6(RightSwitch) |
按 时 |