资源描述:
《led灯控制器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验名称综合实验-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显
2、示器上显示当前亮度值。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中断的信号来源,采用低电平触发。当低电平持续一段时间后进入键盘输入模式,持续时间不足则会进
3、入另外两种模式,模式1暂停并关闭LED,模式2恢复LED。调节占空比的方式采用F310内部的PWM功能,一个亮度等级对应一个PWM值。数码管的显示此时变为两位,通过快速切换显示实现两个数码管同时显示。在键盘输入模式中,先查询是否有按键按下,有按键按下开始进行键盘扫描,通过行扫描和列扫描得到行值与列值,再得到键值,再将键值进行转化即可实现键盘亮度调节。同时对于按键的使用应进行消抖。LED阵列是单片机通过控制74HCT164来间接控制,74HCT164是一个移位寄存器,可以通过一个数据输入端以及一个时钟信号输入端实现跑马灯的效果。三、资源分配基础部分:第0组工作寄存器R0,R3,R4:R0存亮
4、度等级;R3、R4用于循环位寻址区1H:用于保护判断位提高部分:第0组工作寄存器R0,R1,R2,R3:R0存亮度等级;R1记录递增或递减状态;R2记录数码管位选;R3记录PWM;R4,R5,R6,R7用于循环赋值位寻址区0H:用于选择模式字节地址30H:记录输入是第几个数;45H:记录输入第一个数;46H:记录输入第二个数;39H:用于扫描键盘三、流程图基础部分提高部分五、源代码(含文件头说明、语句行注释)/******************************************************************************实验名:LED灯控制器(基
5、础部分)*******************************************************************************/$include(C8051F310.inc)ORG001BHLJMPTIME1ORG00BHLJMPTIME0ORG002BHLJMPTIME2ORG0000HLJMPMAINORG1000HMAIN:LCALLInit_Device;初始化配置LEDBITP0.0BEEPBITP3.1CLRP0.6;选末位数码管CLRP0.7CLRBEEP;关闭蜂鸣器MOVP1,#0FCH;初始数码管显示MOVDPTR,#TAB;存数码
6、表表头MOVR0,#00H;亮度等级初始MOVR3,#08H;LED亮度持续循环八次0.25*8MOVR4,#02H;蜂鸣器定时循环两次0.25s*2MOVA,#00START:CJNER0,#00H,A1LCALLVOICE;最暗蜂鸣器打开A1:CJNER0,#0FH,A2LCALLVOICE;最亮蜂鸣器打开A2:SETBTR1SETBTR0LOOP:JBPSW.5,NEXTCJNEA,00H,CCCC:JCOPEN;判断是熄灭还是点亮LEDSETBLEDSJMPLOOPOPEN:CLRLEDSJMPLOOPNEXT:CLRPSW.5DJNZR3,LOOP;T0定时器定时循环8次0.25
7、*8=2sCLRTR1;调整亮度等级模块CLRTR0CLRAMOVR3,#08HCJNER0,#0FH,L1;达到亮度等级上限开始递增模式SETB(20H).0L1:CJNER0,#00H,L2;达到亮度等级下限开始递增模式CLR(20H).0L2:JNB(20H).0,L3DECR0SJMPXIANL3:INCR0XIAN:PUSHACC;调整数码管显示模块MOVA,R0MOVCA,@A+DPTRMOVP1,APOPA