ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:97.50KB ,
资源ID:11274984      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11274984.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可调灯光系统程序设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

可调灯光系统程序设计.docx

1、可调灯光系统程序设计课 程 设 计 课程名称 单片机原理与接口技术 题目名称可调灯光系统程序设计2015 年 1 月 16 日课程设计任务书 -1系统总体设计 -3软件系统设计 -3 程序流程图 -3 九级调光源程序代码 -4 无级调光源程序代码 -7 调试结果 -10设计感想与体会 -11广东工业大学课程设计任务书题目名称基于单片机与PWM技术的可调灯光系统程序设计学生学院信息工程学院专业班级信息工程(应用电子方向)12(1)班姓 名翁桂林学 号3112002505一、课程设计的内容本次课程设计的内容从下面两个方面任选一个:一是在学院的单片机实验平台上进行,开发一个基于单片机与PWM技术的灯

2、光调节系统,主要开发内容为按键定义、输入与防抖动技术、PWM调节技术以及显示技术等程序设计。二是利用51系列单片机及必要的外围芯片、输入输出等接口电路设计开发一个简易的单片机系统,在此基础上,自行设计一个单片机应用程序来实现一些实用的功能。通过这些内容的设计、开发、安装、调试等一系列工作,熟练掌握单片机系统的开发流程与工作机理,加深对所学课程知识的理解与把握,为将来相关的研究开发工作打下坚实的基础。二、课程设计的要求与数据1 全面掌握硬件结构与电路原理;2 自行设计开发、编辑、调试应用程序; 3 必须有完善的功能介绍与调试过程说明;4 提供完整的软件流程框图。5 提供完整的程序清单。三、课程设

3、计应完成的工作1 硬件理解与安装调试;2 软件设计与开发、调试;3 软硬件联合调试与实验;4 按照学校要求撰写并上交完整的课程设计报告5 完成课程设计答辩。四、课程设计进程安排序号设计各阶段内容地点起止日期1查找资料,熟悉硬件电路或实验平台的资源图书馆或实验1号馆4042015年1月5日7日2整体方案设计,输入输出通道定义(方案一)或硬件安装、调试与检查(方案二)宿舍或实验1号馆4041月8日9日3软件设计与流程图编写宿舍或实验1号馆4041月10日4程序编写宿舍实验1号馆4041月11日12日5软件调试,与硬件联合调试宿舍或实验1号馆4041月13日6撰写课程设计报告宿舍或实验1号馆4041

4、月14日7课程设计答辩实验1号馆4041月15日16日五、应收集的资料及主要参考文献1 吴宁. 80X86/Pentium 微型计算机原理及应用M. 北京:电子工业出版社,2004:1-249.2 蔡美琴. MCS-51系列单片机系统及其应用M.北京:高等教育出版社,2003:1-169.3 段晨东. 单片机原理与接口技术M. 北京: 清华大学出版社, 2013:1-3334 吴黎明等. 单片机实验指导书M. 广州:广东工业大学教材科,2014发出任务书日期: 2015 年 1 月 5 日 指导教师签名:计划完成日期: 2015 年 1 月 16日 基层教学单位责任人签章:主管院长签章:一、系

5、统总体设计: 设计背景:现当今,单片机的应用无处不在。利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制灯光,使灯具产生明暗效果。本次课设基于AMC51单片机综合开发系统,利用单片机的定时中断生成不同的PWM波形,通过调整PWM的周期、PWM的占空比从而控制输出平均电压,进而达到对电灯进行光度亮暗的控制调节的效果,实现对电灯的PWM调光控制。完成的功能及效果与目标:电灯9级PWM亮度调节设计思路:AMC51单片

6、机综合开发系统,利用单片机的定时中断生成不同的PWM波形,设置为手动控制,分三个按键,九级调光,通过输出不同的PWM占空比对电灯进行控制,从而实现对光度的调节,进行电灯的亮度调节。其中,K1键增加亮度K2键降低亮度,K3档实现电灯的开关控制。工作原理:对于控制电灯由亮到暗或由暗到亮,采用的是脉宽PWM法。它是把每一脉冲宽度均相等的脉冲列作PWM波形,通过改变脉冲占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的占空比而达到控制电流的目的。 PWM简介: 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用 微处理

7、器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从 测量、通信 到功率控制与变换的许多领域中。2、软件系统设计(1)源程序流程图(2)源程序九级调光源程序DIRLOP EQU 38H /显示字节数LDAN EQU 58H /电灯亮度档值T2H EQU 59H /T1高8位定时值存储器T2D EQU 5AH /T1低8位定时值存储器LAMP EQU P1.2 /电灯控制位ORG 0000HAJMP STARTORG 000BHLJMP TIME1 /T0中断程序(产生PWM基频)ORG 001BHLJMP TIME2 /T1中断程序(控制脉冲宽度)ORG 0030HSTART:S

8、ETB LAMP /程序初始化 MOV A,#0 MOV LDAN,A MOV TMOD,#11H /设定两定时器为16位定时器 MOV IE,#10001010B /开启两定时器的中断请求 MOV TH0,#0FCH /设定PWM基频(500Hz) MOV TL0,#18H SETB TR0 /启动计数器T0MAIN: ACALL KEY /调动键扫描子程序 ACALL TRANS /调动显示拆字子程序 ACALL DISP /调动串行显示子程序 ACALL DLYK /调动20ms延时程序 NOP NOP SJMP MAIN KEY: MOV P2,#0FFH /向P2口写“1”,准备读取

9、数据 NOP NOPKEY1: JNB P2.0,K1 /判断电灯变亮或变暗 JNB P2.1,K2 JNB P2.2,K3BACK: ACALL DONE /调用亮度值到PWM定时值转换程序 RETK1: ACALL DLYK /按键防抖动延时 JB P2.0,BACKJ1: JNB P2.0,J1 /亮度档值加1 INC LDAN MOV A,LDAN CJNE A,#9,BACK /限定最高档值为8 DEC LDAN SJMP BACK K2: ACALL DLYK /按键防抖动延时 JB P2.1,BACKJ2: JNB P2.1,J2 /亮度档值减1 MOV A,LDAN CJNE

10、A,#0,J22 SJMP BACKJ22: DEC LDAN /按键防抖动延时 SJMP BACKK3: ACALL DLYK JB P2.2,BACKJ3: JNB P2.2,J3 /开关电灯 CPL TR0 NOPNOPSETB LAMP SJMP BACKDLYK:MOV R4,#4AH /20ms定时程序DLYK1:MOV R5,#62HDLYK2:DJNZ R5,DLYK2 DJNZ R4,DLYK1 RET DONE:MOV A,LDAN /亮度值到PWM定时值转换程序 CJNE A,#0,DJ0 RETDJ0: CJNE A,#1,DJ1 /设定1档定时值 MOV T2H,#0

11、FFH MOV T2D,#83H RETDJ1: CJNE A,#2,DJ2 /设定2档定时值 MOV T2H,#0FFH MOV T2D,#06H RETDJ2: CJNE A,#3,DJ3 /设定3档定时值 MOV T2H,#0FEH MOV T2D,#89H RETDJ3: CJNE A,#4,DJ4 /设定4档定时值 MOV T2H,#0FEH MOV T2D,#0CH RETDJ4: CJNE A,#5,DJ5 /设定5档定时值 MOV T2H,#0FDH MOV T2D,#8FH RETDJ5: CJNE A,#6,DJ6 /设定6档定时值 MOV T2H,#0FDH MOV T2

12、D,#12H RETDJ6: CJNE A,#7,DJ7 /设定7档定时值 MOV T2H,#0FCH MOV T2D,#95HDJ7: RETTIME1: MOV TH0,#0FCH /定时中断0 MOV TL0,#18H PUSH ACC PUSH PSW MOV A,LDAN CLR P1.2 /开灯 CJNE A,#0,TM1 /0档时立刻关掉电灯 SETB P1.2 SJMP TBACKTM1: CJNE A,#8,TM2 /8档时亮度调到最大 CLR TR1 /关闭定时器1 SJMP TBACKTM2: MOV TH1,T2H /1至7档时输入T2定时值控制脉冲宽度 MOV TL1

13、,T2D SETB TR1 /启动定时器1TBACK: POP PSW POP ACC RETITIME2: SETB P1.2 /关掉电灯 CLR TR1 /关闭定时器1 RETI TRANS: MOV 3CH,LDAN /亮度档值显示拆字 MOV 3EH,#16 MOV 3FH,#17 RETDISP: MOV DIRLOP,#4 /串行显示程序(4位数码管) MOV R0,#3FH /3CH到3FH是显示缓冲区DL0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR /查得相应的七段代码 MOV SBUF,A /串行发送DL1: JNB TI,DL1 CLR T

14、I DEC R0 DJNZ DIRLOP,DL0 RETTAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H /共阴七段数码管代码表 DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CH DB 7AH,9EH,8EH,02H,1CHEND 无级调光源程序DIRLOP EQU 38H /显示字节数DISP0 EQU 39H /串行显示寄存器0DISP1 EQU 3AH /串行显示寄存器1DISP2 EQU 3BH /串行显示寄存器2LDAN EQU 58H /电灯亮度档值T2H EQU 59H /T1高8位定时值存储器T2D EQU 5AH /T1低8位定时

15、值存储器LAMP EQU P1.2 /电灯控制位ORG 0000HAJMP STARTORG 000BHLJMP TIME1 /T0中断程序(产生PWM基频)ORG 001BHLJMP TIME2 /T1中断程序(控制脉冲宽度)ORG 0030HSTART: SETB LAMP /程序初始化 MOV A,#0 MOV LDAN,A MOV DISP0,A MOV DISP1,A MOV DISP2,A MOV TMOD,#11H /设定两定时器为16位定时器 MOV IE,#10001010B /开启两定时器的中断请求 MOV TH0,#0FCH /设定PWM基频(500Hz) MOV TL0

16、,#18H SETB TR0 /启动计数器T0MAIN: ACALL KEY /调动键扫描子程序 ACALL TRANS /调动显示拆字子程序 ACALL DISP /调动串行显示子程序 ACALL DELAY100 /调动20ms延时程序 NOP NOP SJMP MAIN KEY: MOV P2,#0FFH /向P3口写1,准备读取数据 NOP NOPKEY1: JNB P2.0,K1 /判断电灯变亮或变暗 JNB P2.1,K2 JNB P2.2,K3BACK: ACALL DONE /调用亮度值到PWM定时值转换程序 RETK1: ACALL DELAY100 /按键防抖动延时 JB

17、P2.0,BACKJ1: /亮度档值加1 INC LDAN MOV A,LDAN CJNE A,#0,BACK /限定最高档值为255 DEC LDAN SJMP BACK K2: ACALL DELAY100 JB P2.1,BACKJ2: /亮度档值减1 MOV A,LDAN CJNE A,#0,J22 SJMP BACKJ22: DEC LDAN SJMP BACKK3: ACALL DELAY100 JB P2.2,BACKJ3: JNB P2.2,J3 /开关电灯 CPL TR0 NOP NOP SETB LAMP SJMP BACKDLYK: MOV R4,#2AH /20ms定时

18、程序DLYK1: MOV R5,#32HDLYK2: DJNZ R5,DLYK2 DJNZ R4,DLYK1 RET DELAY100:MOV R4,#7AH /小延迟程序DLYK101:MOV R5,#20HDLYK102:DJNZ R5,DLYK102 DJNZ R4,DLYK101 RET DONE: MOV A,LDAN /亮度值到PWM定时值转换程序 CJNE A,#0,DJ0 RETDJ0: MOV B,#2H /亮度值转化为定时器初始值 MUL AB CPL A MOV R1,A MOV A,B CPL A MOV R2,A MOV T2H,R2 MOV T2D,R1 RET T

19、IME1: MOV TH0,#0FCH /定时中断0 MOV TL0,#18H PUSH ACC PUSH PSW MOV A,LDAN CLR P1.2 /开灯 CJNE A,#0,TM1 /0档时立刻关掉电灯 SETB P1.2 SJMP TBACK TM1: CJNE A,#0,TM2 /255档时亮度调到最大 CLR TR1 /关闭定时器1 SJMP TBACKTM2: MOV TH1,T2H /输入不同的T2定时值控制脉冲宽度 MOV TL1,T2D SETB TR1 /启动定时器1TBACK: POP PSW POP ACC RETITIME2: SETB P1.2 /关掉电灯 C

20、LR TR1 /关闭定时器1 RETITRANS: MOV A,LDAN /将LDAN转化为十进制数 MOV B,#64H DIV AB MOV DISP2,A MOV A,#0AH XCH A,B DIV AB MOV DISP1,A MOV DISP0,B MOV 3CH,#16 RETDISP: MOV DIRLOP,#4 /串行显示程序(4位数码管) MOV R0,#3CH /3CH到3FH是显示缓冲区DL0: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR /查得相应的七段代码 MOV SBUF,A /串行发送DL1: JNB TI,DL1 CLR TI D

21、EC R0 DJNZ DIRLOP,DL0 RETTAB: DB 0FCH,60H,0DAH,0F2H,66H,0B6H /共阴七段数码管代码表 DB 0BEH,0E0H,0FEH,0E6H,0EEH,03EH,9CH DB 7AH,9EH,8EH,1CHEND三:调试结果 在对PWM九级调光的调试中,按下K1,LED灯增加亮度;按下K2,减低亮度;按下K3,控制电灯的开与关。每一级led亮度变化明显。在对PWM无级调光的调试中,按下K1,LED灯增加亮度;按下K2,减低亮度;按下K3,控制电灯的开与关。电灯有256级调节,数码管变化的范围则是0255,按下K3,实现关闭led的效果,其他按键

22、按下后led灯则不再有反应,灯灭期间按下K1,K2变换档位后再按K3则显示相应档位的亮度,并且LED灯能够连续变化,但由于每一级之间的亮度差距很小,所以要经过一定的级数差距才能够观察到亮度的变化。从测试结果来看,按键的设计功能得到实现,通过按键可以有效地实现调光操作,能够成功实现PWM调光。四:设计感想与体会,阐述通过本课程设计,有何感想,学到了哪些知识, 有哪些不足,如何改正等。通过本次的课程设计,在实际中运用汇编语言程序完成了无极灯的调节系统的制作。在实践动手的过程中,根据系统的功能规划开发相应源程序代码、并逐步整合完善调光显示功能。在写源程序代码时,由于汇编语言平时使用较少,对它的编程应用并不熟练,但在对数码管显示进行改进的过程中,渐渐对运用汇编语言编程变得熟悉,期间也出现不少问题,造成了不能出现设想的功能,但失败是成功之母,也是由于调试中出现的问题,让我更加了解到了用汇编语言编程的方法,通过对问题解决,进一步增加了对汇编语言的运用能力。由此可见,对于汇编这门编程语言应该进行更多的练习和实践。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1