南京邮电大学单片机 实验二:小型定时开关控制系统设计

该实验旨在掌握单片机控制人机接口和机电设备,通过Keil开发环境设计定时开关系统。系统采用16位定时器,支持定时开/关,通过矩阵键盘设置时间和模式,数码管显示剩余时间,蜂鸣器和LED提供反馈。实验中遇到并解决了计时误差、按键乱码等问题。
摘要由CSDN通过智能技术生成


实验报告

实验名称

小型定时开关控制系统设计

指导教师

倪晓军

实验类型

课内实验

实验学时

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)

按 时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值