单片机实验3

2018-11-21 23:44

实验名称 实验三 综合实验-LED灯控制器 指导教师 曹丹华

专业班级 光电1302班 姓名 李胜军 学号 U201314053

联系电话 15927189891

一、任务要求

主要功能和技术指标要求: 1. LED灯外接于P0.0端。

2. LED灯分别按5Hz,1Hz和0.5Hz三种不同频率闪动,各持续20s。 3. 在LED显示器上显示当前模式。

4. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 5. 利用单片机内部定时器定时,要求采用中断方式。 提高要求:

1)使用按键(KINT)切换LED灯闪烁频率。 2)在LED显示器上显示当前模式和频率值。 3)其它个性化设计。

二、功能特点与使用说明

1. 功能说明: (1)四个工作模式:

模式0(基础要求及提高要求):LED灯按5Hz闪动,显示屏显示“0-5.0”。 模式1(基础要求及提高要求):LED别按1Hz闪动,显示屏显示“0-1.0”。 模式2(基础要求及提高要求):LED灯按0.5Hz闪动,显示屏显示“0-0.5”。 模式3(个性化设计):LED灯关闭,显示屏显示设备工作了多少时间,数码管高两位显示分钟,低两位显示秒,二者用小数点分隔开。如2分11秒显示为“02.11”。

(2)提供了三种切换工作模式的方式:

第一种(基础要求):按时间自动切换。

第二种(提高要求):利用中断按键KINT1切换工作模式。

第三种(个性化设计):利用键盘按键手动选择模式。

(3)(基础要求)自动模式下LED刚开始闪烁及停止闪烁时蜂鸣器分别会响一声。 2. 使用说明:

(1)自动切换工作模式:复位后蜂鸣器响一声。然后工作模式0、工作模式1、工作模式2

和工作模式3按顺序自动切换,其中工作模式0、工作模式1和工作模式2各持续20秒。模式2结束后切换到模式3,蜂鸣器响一声,数码管显示设备工作时间,关闭LED,模式不再自动切换。

(2)中断按键切换工作模式:单片机工作中,按下中断按键KINT1可以手动将模式切换为下

一个工作模式,若在工作模式3(显示设备工作时间的模式)中按KINT1键,工作模式会被切换到模式0,如此循环

(3)手动选择某一特定模式:这一功能利用了键盘上的K0、K1、K2和K3四个按键。K0对

应工作模式0,K1对应工作模式1,K2对应工作模式2,K3对应工作模式3。按下K0进入工作模式0,按下K1进入工作模式1,按下K2进入工作模式2,按下K3进入工作模式3。

(4)特别说明:自动切换工作模式是默认的切换方式,上电后或按下复位键后都是该切换方

式。利用中断按键或键盘K0~K4切换工作模式后,工作模式将不会再自动切换。按复位键才能再次自动切换。但中断按键切换与按键选择这两种切换方式在单片机正常工作的任意时候都有效。 3.设计特色:

(1)添加了计时这一个性化模式。这样就可以方便的查看设备工作时间。由于计时对精准度

要求高,而单片机晶振难免有误差,因此计时模式用到的时钟每次中断重新载入的初值经过精心校准,校准前一小时计时误差近30秒,校准后肉眼已经无法分辨计时误差。

(2)添加了手动选择模式这一个性化功能。无论是自动切换工作模式还是用中断按键切换工

作模式,都是按顺序逐次切换的。比如如果当前是工作模式0,自动切换模式需要等待至少40秒才能进入工作模式3,中断按键则需要按三次才能进入工作模式3,十分不方便。而利用键盘上的按键进行手动选择工作模式时,任何时候只要按一次键就可切换到自己想要的工作模式中去,十分的快捷。

(3)按键响应迅速,毫无滞后感。中断按键在下降沿到来时产生中断,系统立刻会对该按键

做出响应。对键盘上按键而言,当系统检测到按键按下时,定时器开中断,立刻响应该按键,且经过软件优化后,如果按着键盘按键不松,并不影响后续工作,相当于键盘上的按键也是下降沿有效,这就保证了系统的稳定性。

2

三、方案设计

1. 设计思路:

该系统有四种工作模式,用累加器A的值代表工作模式。A取值为00h~03h,分别代表模式0~模式3,构造一个散转指令表,这样直接操作A的值就可以改变工作模式。本系统可分为如下四个模块:

(1) 模式选择模块:为了保证对A的值的持续判断及控制LED的闪烁,可用定时器T0产生

中断,模式选择的散装指令表及控制闪烁频率的代码写在该定时器的中断服务程序中,这样能确保A值改变是能及时响应。改变LED闪烁频率可以通过改变T0计时初值来实现,每进一次中断对P0.0取反。执行中断程序时,根据A的值选择执行不同的四个程序块,对应四种不同模式,每个模式中对T0计时初始值赋值不同,以改变LED闪烁频率。为了实现不同模式数码管显示相应的字符,每个模式对应的程序块要对五个参量赋值,改变数码管显示字符。基于本设计,T0时钟分频选择为8×48。该模块入口参数A,用以确定工作模式。出口参数BIT0,BIT1,BIT2,BIT3和DOT传递给数码管显示模块,控制显示的字符。

(2) 计时模块:自动切换工作模式要求20秒切换模式,可用定时器T1定时产生1秒,每进

20次中断就改变A,这样就实现了自动切换。值得注意的是进入模式3后模式不在变化,因此自动切换到模式3后,不再自动改变A的值,这可以通过一个判断语句实现。模式3是显示当前设备运行的时间,最大显示为“59.59”,即59分59秒,精确到秒。因为T1是定时一秒,故可利用T1。每进一次T1中断就加一秒。显示计时时间时数码管0位逢十进一,数码管1位时逢六进一,数码管2是逢十进一,数码管3时逢6归零,故用四层的循环嵌套代码可以实现该功能。计时显示的字符寄存起来,到计时模式是将寄存值赋给T2中断服务程序入口参数显示。入口参数A,根据A来确定下一次工作模式。出口参数SEC1,SEC,MIN1,MIN2和位参数OVER。当SEC1,SEC,MIN1,MIN2四个出口参数赋值给数码管显示模块的入口参数BIT0,BIT1,BIT2,BIT3时,则数码管显示设备已经工作了多长时间。当OVER置位时,表示自动模式终结,不在自动切换模式。

(3) 数码管显示模块:数码管显示需要循环扫描四个数码管位,采用定时器T2对数码管的

四个位进行循环扫描,扫描速度必须足够快,才能使显示看起来是连续的。为了实现不同模式显示不同字符,需要5个入口参数,分别控制四位数码管显示的字符及各位小数点的显示。分别为BIT0,BIT1,BIT2,BIT3和DOT。其中BIT0,BIT1,BIT2,BIT3分别控制数码管0位到3位显示的字符,DOT控制四位小数点的显示组合。

(4) 外部中断模块:利用外部中断0按键切换工作模式的实现很简单,在外部中断0中断程

序中直接改变A就可以了改变工作模式了。入口参数和为A。出口参数A和OVER。按下

3

中断键KINT后OVER就被置位,此后模式不在自动切换,只有中断按键KINT和键盘按键K0~K3可以切换模式。

(5) 扫描键盘模块:按键选择工作模式的实现也很简单,因为只需用到四个按键,所以用

K0~K3, 而K0~K3在同一列,这样做最大的好处是不用扫描键盘就可以判断按下了其中的那个键,实现简单。为了确保按键的准确性,延迟去抖是必要的。由于需要时时刻刻检测按键,该功能在主程序中循环即可。为了消除按键的滞后感,检测到按键确实按下后,要对TF0置位,使程序立刻进入模式控制模块,从而迅速更新模式。同时也要考虑到,当按着按键不松或当前按下的键就是上次按下的键时,不应影响程序的运行。可以把上次的按键储存起来,当再次执行到判断发现还是上次的按键时,不向下处理重新开始循环,这样就实现了目的。之后干无入口参数,出口参数为A、OVER。

2. 资源分配及参数说明

(1) 模式选择模块:

A的值 对应模式

(2) 计时模块:

参数名称 R4,R5,R6,R7 SEC1 SEC2 MIN1 MIN2

4

00h 模式0 01h 模式1 10h 模式2 11h 模式3 地址 R4,R5,R6,R7 34H 35H 36H 37H 作用 实现计时的进制 储存秒数的个位 储存秒数的十位 储存分钟数的个位 储存分钟数的十位

(3) 数码管显示模块:

参数名称 地址 作用 FLAG 38H 值代表当前时刻显示的数码管,控制扫描 BIT0 30H 控制数码管第0位显示的字符,取值00H~0AH,分别对应该位数码管显示的数字0~9和横线“-” BIT1 31H 控制数码管第1位显示的字符,取值00H~0AH,分别对应该位数码管显示的数字0~9和横线“-” BIT2 32H 控制数码管第2位显示的字符,取值00H~0AH,分别对应该位数码管显示的数字0~9和横线“-” BIT3 33H 控制数码管第3位显示的字符,取值00H~0AH,分别对应该位数码管显示的数字0~9和横线“-” DOT 21H 低四位分别对应数码管的四个位,控制位小数点的显示,某位为1则显示对应数码管位的小数点。

(4) 外部中断模块

参数名称 地址 作用 C PSW.7 只要进过外部中断服务程序,C置1,用来判定是否要喇叭响。 OVER 20H.0 为1时关闭模式的自动切换,为零时开启模式的自动切换。

(5) 扫描键盘模块

参数名称 地址 作用 KEYNUM 39H 储存按下键盘按键的键值,取值00H~03H,分别对应K0~K3。

5


单片机实验3.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2019-2025年中国血液净化行业市场运营模式分析研究报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: