基于状态机的多功能时钟的设计
周文敏 121035011 电子与通信工程
一、实验目的:
1.学习常见LCD 驱动程序设计,按键处理等人机对话。 2.学习状态机在监控程序中的应用。
二、实验器材(平台)
1、南京师范大学物科院机电控制实验板及其附件(包括一块STC89C52RC单片机和一块1602LCD液晶显示器等);
2、装有Keil uVision4单片机开发软平台和STC烧录软件STC_ISP_V483的计算机一台。
三、实验内容
1、根据有限状态机的原理和1602液晶显示器以及4X4矩阵键盘的使用方法,在Keil uVision4单片机开发软平台上用C语言编写和调试程序,使该程序能分别实现时钟和闹钟的时、分的调整以及跑表等功能。
2、连接好硬件,利用STC烧录软件STC_ISP_V483下载生成的HEX文件到实验板,在硬件上实现和调试预设的时钟功能。
四、实验电路
五、实验原理
1、 状态机
状态机流程图如下所示:
图1-1 流程图
本时钟一共用到两个按键,R和F。 各个状态的意义:
状态0:时钟正常运行; 状态1:设置时钟的时; 状态2:设置时钟的分; 状态3:设置时钟的秒; 状态4:进入闹钟设置状态; 状态5:设置闹钟的时; 状态6:设置闹钟的分; 状态7:设置闹钟的秒;
各个状态之间的转换关系如图1-1所示。
2、 矩阵键盘的构成
本设计所用的矩阵键盘如图2-1所示:
图2-1 4*4矩阵键盘
使用P3口作为数据输入输出口,采用行列反转法来扫描键盘。采用行列反转法来读取按键,先对行线全部输出为0,然后读入列线值,如果有按键按下,则读入列线值,并输出该列线值,读取行线值,将列线和行线值组合起来返回给主程序判断按下的是什么键。
3、1602液晶显示模块
液晶显示器LCD有着显示直观、耗电小、体积小及重量轻等优点,在仪器仪表、家用电器和各类电子装置中得到广泛的应用。
1602可以显示16*2个字符,其基本指令如下:
六、实验结果
根据图1-1的状态转换关系进行变成,并在硬件上进行实现,具体实现情况由下面的一系列图片来显示:
图4-1
上电启动,时钟正常开始计时。
图4-2
对时间进行设置,图4-2显示的是正在对时针进行设置。
图4-3
对闹钟进行设置,图4-3设置的时间为1:06:00。
图4-4
当时间运行到1:06:00之后,代表闹铃的P1.1口的LED灯亮起,如图4-5所示。
图4-5
基于状态机的多功能时钟的设计 - 图文



