LED灯控制器.docx

上传人:j****9 文档编号:2275229 上传时间:2019-05-05 格式:DOCX 页数:34 大小:645.30KB
下载 相关 举报
LED灯控制器.docx_第1页
第1页 / 共34页
LED灯控制器.docx_第2页
第2页 / 共34页
LED灯控制器.docx_第3页
第3页 / 共34页
LED灯控制器.docx_第4页
第4页 / 共34页
LED灯控制器.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、实验名称 综合实验-LED 灯控制器 成 绩 1、任务要求利用 C8051F310 单片机设计一个 LED 灯控制器主要功能和技术指标要求:1. LED 灯外接于 P0.0 端。 2. 采用 PWM 方式调节 LED 灯的亮度,亮度分为 16 个等级,亮度顺序为0-1-2E-F-E-D1-0-1-2F-E2-1-0,每个亮度等级延时 2 秒钟。 0 对应熄灭,F 最亮。3. 在 LED 显示器上显示当前亮度等级。 4. 在 LED 灯亮度最大最小时蜂鸣器分别鸣响 1 次(0.5 秒钟) 。 5. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 1)使用按键(KINT)开关 LED 灯

2、,要求采用中断方式。 2)改变 LED 的亮度调节范围为 0-31,并在在 LED 显示器上显示当前亮度值。3)可用键盘设置亮度值。 4)其它个性化设计。二、设计思路基础部分:使用定时器产生不同占空比的信号,具体操作如下:每 0.5ms 中断一次,每次中断 A 加 1 或减 1,当 AR0 时输出高电平,当 AR0 时输出低电平,这样就能产生不同占空比的信号。同时每 2s 中断一次,每次中断 R0 加 1 或减 1。再给 A,与 R0 设定周期,这样就能实现 LED 从暗到亮再从亮到暗。数码管根据亮度等级通过查表方式实现亮度显示。每次 R0=0H,或 R0=0FH 时蜂鸣器打开并用定时器定时

3、0.5s。提高部分:按键 KINT 将作为外部 0 中断的信号来源,采用低电平触发。当低电平持续一段时间后进入键盘输入模式,持续时间不足则会进入另外两种模式,模式 1 暂停并关闭LED,模式 2 恢复 LED。调节占空比的方式采用 F310 内部的 PWM 功能,一个亮度等级对应一个 PWM 值。数码管的显示此时变为两位,通过快速切换显示实现两个数码管同时显示。在键盘输入模式中,先查询是否有按键按下,有按键按下开始进行键盘扫描,通过行扫描和列扫描得到行值与列值,再得到键值,再将键值进行转化即可实现键盘亮度调节。同时对于按键的使用应进行消抖。LED 阵列是单片机通过控制 74HCT164 来间接

4、控制,74HCT164是一个移位寄存器,可以通过一个数据输入端以及一个时钟信号输入端实现跑马灯的效果。3、资源分配基础部分:第 0 组工作寄存器 R0,R3,R4:R0 存亮度等级;R3、R4 用于循环位寻址区 1H:用于保护判断位提高部分:第 0 组工作寄存器R0,R1,R2,R3:R0 存亮度等级;R1 记录递增或递减状态;R2 记录数码管位选;R3 记录PWM;R4,R5,R6,R7 用于循环赋值位寻址区0H:用于选择模式字节地址30H:记录输入是第几个数;45H:记录输入第一个数;46H:记录输入第二个数;39H:用于扫描键盘4、流程图 基础部分提高部分五、源代码 (含文件头说明、语句

5、行注释)/*实验名 :LED 灯控制器(基础部分) */$include (C8051F310.inc)ORG 001BH LJMP TIME1ORG 00BHLJMP TIME0ORG 002BHLJMP TIME2ORG 0000HLJMP MAINORG 1000HMAIN: LCALL Init_Device ;初始化配置LED BIT P0.0BEEP BIT P3.1CLR P0.6 ;选末位数码管CLR P0.7CLR BEEP ;关闭蜂鸣器MOV P1,#0FCH ;初始数码管显示MOV DPTR,#TAB ;存数码表表头MOV R0,#00H ;亮度等级初始MOV R3,#0

6、8H ;LED 亮度持续循环八次 0.25*8MOV R4,#02H ;蜂鸣器定时循环两次 0.25s*2MOV A,#00START: CJNE R0,#00H,A1LCALL VOICE ;最暗蜂鸣器打开A1: CJNE R0,#0FH,A2LCALL VOICE ;最亮蜂鸣器打开A2: SETB TR1SETB TR0LOOP: JB PSW.5,NEXTCJNE A,00H,CCCC: JC OPEN ;判断是熄灭还是点亮 LEDSETB LEDSJMP LOOPOPEN: CLR LEDSJMP LOOPNEXT: CLR PSW.5DJNZ R3,LOOP ;T0 定时器定时循环

7、8 次 0.25*8=2sCLR TR1 ;调整亮度等级模块CLR TR0CLR AMOV R3,#08HCJNE R0,#0FH,L1 ;达到亮度等级上限开始递增模式SETB (20H).0L1: CJNE R0,#00H,L2 ;达到亮度等级下限开始递增模式CLR (20H).0L2: JNB (20H).0,L3DEC R0SJMP XIANL3: INC R0XIAN: PUSH ACC ;调整数码管显示模块MOV A,R0MOVC A,A+DPTRMOV P1,APOP ACCSJMP START;*;蜂鸣器;*VOICE: SETB BEEP ;开蜂鸣SETB TR2 ;开定时器

8、2RETTAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0HDB 0FEH,0E6H,0EEH,3EH,1AH,7AH,9EH,8EH;*;定时器模块;*TIME0: MOV TH0,#06HMOV TL0,#0C6HSETB PSW.5 ;用于 0.25s 中断标志RETITIME1: MOV (20H).1,C ;保护判断位 JC UPINC A MOV TH1,#0FCHMOV TL1,#018HCJNE A,#0FH,LMOV A,#0HL: MOV C,(20H).1RETITIME2: CLR TF2HDJNZ R4,LOOP1 ;循环 2 次 0.25*2=0.5sMOV R4,#02HCLR BEEP ;关蜂鸣CLR TR2LOOP1: RETI; Peripheral specific initialization functions,; Called from the Init_Device labelPCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretPort_IO_Init:mov XBR1, #040hmov P1MDOUT, #0FFhret

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。