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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机LED灯控制器报告.docx

1、单片机LED灯控制器报告实验名称 LED灯控制器 指导教师 专业班级 学号 联系 本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全了解学校相关规定,如若违反,愿意承担其后果。签字: 年 月 日一、任务要求实验容:利用C8051F310单片机设计一个LED灯控制器 实验要求:1. LED灯外接于P0.0端。2. LED灯分别按2Hz,1Hz和0.2Hz三种不同频率闪动,各持续10s。3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。4. 利用单片机部定时器定时,要求采用中断方式。 二、设计思路C8051F310单片机片上晶振频率为24.5MHz,采用8分频后为3.0625MHz

2、,输入时钟信号为48个机器周期,T1定时器采用定时方式1。2Hz,1Hz频率闪动均可以通过部定时器单次计时直接达到效果,而0.2Hz单次闪动时间过长,无法达到,故通过中断设置定时器技术的方式达到延长计时时间的效果。三、资源分配 P0.0:为LED灯控制端口,高电平触发。P3.1:为蜂鸣器控制端口,高电平触发。P0.1:为KINT键控制端口,下降沿触发。 R1、R2:用于存放计时器计时数据,R1赋给TH1、R2赋给TL1。 R3:0.2Hz下的中断程序部循环计数器R7:存放三种模式的循环次数。 R0:在外部中断程序中赋值,用于判断采用何种模式。 PSW.1:为标志位,用于等待定时器中断,中断执行

3、完清零,并在中断处向下继续执行程序。四、流程图 1、 主程序流程图(含提高部分)2、 T_KINT中断部分 3、 ITOP中断部分 4、 IT1P部分五、源代码 (含文件头说明、语句行注释)包含基础部分和提高部分;-;- Generated Initialization File -;-$include (C8051F310.inc)LED BIT P0.0 ;LED灯控制端口BEEP BIT P3.1 ;蜂鸣器控制端口KINT BIT P0.1 ;KINT按钮端口 ORG 0000H LJMP MAIN ORG 0003H ;外部中断0入口LJMP T_KINTORG 000BH ;定时器T

4、0中断入口 LJMP IT0P ORG 001BH LJMP IT1P ORG 1000HMAIN: LCALL Init_Device ;设备初始化 MOV SP, #40H ;置堆栈指针 MOV TMOD, #11H ;定时器T0、T1均为工作方式1 MOV R0,#00H CLR LED ;关led灯 CLR BEEP ;关蜂鸣器 CLR PSW.1 ;标志位1清零 CLR PSW.5 ;标志位2清零SETB EX0 ;外部中断0允许 SETB IT0 ;下降沿触发 SETB EA ;中断总允许 SETB ET0 ;定时器T0中断源允许 SETB ET1 ;定时器T1中断源允许CHOO:

5、 CJNE R0,#02H,LOOP ;选择模式 LJMP MODEL2 ;R0等于02H,跳转到1HzLOOP: JC MODEL1 ;R0小于02H,跳转到2Hz LJMP MODEL3 ;R0大于02H,跳转到0.2HzMODEL1: MOV R1, #0C1H ;设定2Hz闪烁方式定时器T0计数初值 MOV R2, #0B1H MOV R7, #28H ;置2Hz闪烁方式闪烁次数 ACALL L1 ;取定时器T0计数初值 SETB P3.1 ;蜂鸣器鸣响一次 SETB TR0 ;启动定时器T0 CLR P0.0 ;开LED灯HERE1: CJNE R7, #00H, HERE1 ;等待

6、中断 CLR TR0 ;2Hz闪烁方式结束,关闭定时器 MODEL2: MOV R1, #83H ;设定1Hz闪烁方式定时器T0计数初值 MOV R2, #63H MOV 7, #14H ;置1Hz闪烁方式闪烁次数 ACALL L1 ;取定时器T0计数初值 SETB P3.1 ;蜂鸣器鸣响一次 SETB TR0 ;启动定时器T0 CLR P0.0 ;开LED灯HERE2: CJNE R7, #00H, HERE2 ;等待中断 CLR TR0 ;1Hz闪烁方式结束,关闭定时器 MODEL3: MOV R1, #0C1H ;设定0.2Hz闪烁方式定时器T1计数初值 MOV R2, #0B1H MO

7、V R7, #28H ;置0.2Hz闪烁方式闪烁次数 ACALL L3 ;取定时器T1计数初值 MOV R3, #00H ;定时中断循环初值 SETB P3.1 ;关蜂鸣器 SETB TR1 ;启动定时器T1 CLR P0.0 ;关LED灯HERE3: CJNE R7, #00H, HERE3 ;等待中断 CLR TR1 ;0.5Hz闪烁方式结束,关闭定时器 LJMP MODEL1 ;重新开始下一轮的闪烁L1: MOV A, R1 ;定时器0计数初值赋值子程序 MOV TH0, A MOV A, R2 MOV TL0, A RETL3: MOV A, R1 ;定时器1计数初值赋值子程序 MOV

8、 TH1, A MOV A, R2 MOV TL1, A RET ORG 1200HIT0P: DEC R7 ;定时器T0中断服务程序 MOV A, R1 ;计数初值重新赋值 MOV TH0, A MOV A, R2 MOV TL0, A CLR P3.1 ;蜂鸣器停止鸣响 CPL P0.0 ;LED灯亮灭切换 RETI ORG 1400HIT1P: DEC R7 ;定时器T1中断服务程序 MOV A, R1 ;计数初值重新赋值 MOV TH1, A MOV A, R2 MOV TL1, A INC R3 ;循环初值加1 MOV A,R3 ANL A,#0FH CJNE A,#0AH,BACK

9、 MOV R3,#00H CLR P3.1 CPL P0.0BACK: RETIT_KINT:SETB PSW.1 ;标志位1置一,用于判断是否顺序执行三种模式 INC R0 ;R0加一,用于判断何种模式 CJNE R0,#04H,K_RET CLR PSW.1 ;R0到04H时清零标志位和R0 MOV R0,#00HK_RET: CLR TR1 ;关定时器1 POP SP POP SP ;出栈两次 MOV DPTR,#0036H PUSH DPL ;DPL压入栈顶 PUSH DPH ;DPH压入栈顶 RETI ; Peripheral specific initialization func

10、tions,; Called from the Init_Device labelPCA_Init: anl PCA0MD, #0BFh mov PCA0MD, #000h retTimer_Init: mov TMOD, #011h mov CKCON, #002h retPort_IO_Init: ; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open

11、-Drain, Digital ; P0.4 - Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digit

12、al ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 - Unassigned, Open-Drain, Digital ; P2.2 - U

13、nassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040h retInterrupts_Init: mov IE, #08Bh ret; Initialization function for device,; Call Init_Device from your main programInit_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init retend六、程序测

14、试方法与结果如预期,三种波形的频率都有显示,而且没有错误。提高部分:在C8051F310单片机开发板烧录代码:不按KINT键时,LED灯以2Hz,1Hz和0.2Hz三种不同频率闪动,各持续10s,在开始、结束和切换模式时,蜂鸣器都响1s,按一次,LED灯以2Hz闪烁10s后结束;按两次,LED灯以1Hz闪烁10s后结束;按三次,LED灯以0.2Hz闪烁10s后结束;按四次,切换回顺序执行三种模式。Ps:运行过程中,偶尔会出现蜂鸣器响时间超过一秒。不知道如何调整,但模式切换正常。七、思考题1.若想实现3种闪烁方式的持续时间在5s-20s围可调,且每种方式的持续时间各不相同,应如何设计程序? 答:通过设置中断的循环次数来控制持续时间,所以只要改变循环次数,就能改变持续时间

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

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