LED灯控制器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称综合实验-LED灯控制器成绩
一、任务要求
利用C8051F310单片机设计一个LED灯控制器
主要功能和技术指标要求:
1. LED灯外接于P0.0端。
2. 采用PWM方式调节LED灯的亮度,亮度分为16个等级,亮度顺序为
0-1-2…E-F-E-D…1-0-1-2…F-E…2-1-0,每个亮度等级延时2秒钟。
0对应熄灭,F最亮。
3. 在LED显示器上显示当前亮度等级。
4. 在LED灯亮度最大最小时蜂鸣器分别鸣响1次(0.5秒钟)。
5. 利用单片机内部定时器定时,要求采用中断方式。
提高要求:
1)使用按键(KINT)开关LED灯,要求采用中断方式。
2)改变LED的亮度调节范围为0-31,并在在LED显示器上显示当前亮度值。
3)可用键盘设置亮度值。
4)其它个性化设计。
二、设计思路
基础部分:使用定时器产生不同占空比的信号,具体操作如下:每0.5ms中断一次,每次中断A加1或减1,当A≥R0时输出高电平,当A<R0时输出低电平,这样就能产生不同占空
比的信号。同时每2s中断一次,每次中断R0加1或减1。再给A,与R0设定周期,这样就
能实现LED从暗到亮再从亮到暗。数码管根据亮度等级通过查表方式实现亮度显示。每次
R0=0H,或R0=0FH时蜂鸣器打开并用定时器定时0.5s。
提高部分:按键KINT将作为外部0中断的信号来源,采用低电平触发。当低电平持续一段
时间后进入键盘输入模式,持续时间不足则会进入另外两种模式,模式1暂停并关闭LED,模式2恢复LED。调节占空比的方式采用F310内部的PWM功能,一个亮度等级对应一个PWM 值。数码管的显示此时变为两位,通过快速切换显示实现两个数码管同时显示。在键盘输入
模式中,先查询是否有按键按下,有按键按下开始进行键盘扫描,通过行扫描和列扫描得到
行值与列值,再得到键值,再将键值进行转化即可实现键盘亮度调节。同时对于按键的使用
应进行消抖。LED阵列是单片机通过控制74HCT164来间接控制,74HCT164是一个移位寄存器,可以通过一个数据输入端以及一个时钟信号输入端实现跑马灯的效果。