单片机实验报告——LED灯控制器,(2)

上传人:hong****2021 文档编号:48771684 上传时间:2022-01-14 格式:DOCX 页数:13 大小:22.75KB
收藏 版权申诉 举报 下载
单片机实验报告——LED灯控制器,(2)_第1页
第1页 / 共13页
单片机实验报告——LED灯控制器,(2)_第2页
第2页 / 共13页
单片机实验报告——LED灯控制器,(2)_第3页
第3页 / 共13页
资源描述:

《单片机实验报告——LED灯控制器,(2)》由会员分享,可在线阅读,更多相关《单片机实验报告——LED灯控制器,(2)(13页珍藏版)》请在装配图网上搜索。

1、本文格式为Word版,下载可任意编辑单片机实验报告LED灯控制器,(2) 微机试验报告 LED 灯掌握器 指导老师: 专业班级 : 姓名: 学号: 联系方式: 一、 任务要求 试验目的:加深对定时/计数器、中断、IO 端口的理解,把握定时/计数器、中断的应用编程技术及中断程序的调试方法。 试验内容:利用 C8051F310 单片机设计一个 LED 灯掌握器 主要功能与技术指标要求: 1、 LED 灯外接于 P0、0 端。 2、 LED 灯分别按 2Hz,1Hz 与 0、5Hz 三种不同频率闪动,各持续 10s。 3、 在 LED 灯开头与停止闪耀时蜂鸣器分别鸣响 1 次。 4、 利用单片机内部

2、定时器定时,要求采纳中断方式。 提高要求: 使用按键(KINT)掌握 LED 灯闪耀模式的切换。 二、 设计思路 C8051F310 单片机片上晶振为 24、5MHz,采纳 8 分频后为 3、0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采纳定时方式1,单次定时最长可以达到的时间为1、027s,可以满意 0、5Hz 就是的定时要求。 基础部分: : 给 TMOD 赋值 10H,即选用 T1 定时器采纳定时方式 1,三种频率对应的半周期时间为 0、25s、0、5s、1s。计算得需给 TH1 与 TL1 为 C1H、B1H;83H、63H;06H、C6H。要使闪耀持续 10s,三种

3、模式需要各循环 40、20、10 次。 用 LOOP3:MOV C,PSW、5 ;PSW、5 为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序连续向下执行。 为了削减代码长度,可以采纳循环结构,循环主题中,将 R1、R2 分别赋给 TH1、TL1,R7 为循环次数(用 DJNZ 语句实现);定时中断里,重新给 TH1、TL1 赋值时同理。这样,循环时只要把定时时间与循环次数赋给 R1、R2、R7 即可,达到削减代码长度的效果。 蜂鸣器也采纳 T1 定时方式 1,定时一秒。 提高部分: : 采纳外部中断 0,下降沿触发。外部中断程序里置标志位 PSW

4、、1 与 R0,PSW、5 用于推断执行完一种模式后,就是否跳出循环结束。R0 用于推断执行何种模式,每按一次后 RO 加一,第四次时就将 R0 与 PSW、5 清零,这样程序就又回到了基础部分的循序执行。 由于中断程序执行完后,会回到原来程序中断的地方,连续向下执行而给程序运行带来诸多不便。所以,查瞧了 RETI 语句的实现形式:将栈顶压入 PCH,POP 后再将栈顶压入 PCL ,利用这个定义,只要将需要返回的地址压入 PCH 与 PCL 就能返回到指定地址。 三、 资源安排 P0、0:为 LED 灯掌握端口,高电平触发。 P3、1:为蜂鸣器掌握端口,高电平触发。 P0、1:为 KINT

5、键掌握端口,下降沿触发。 R1、R2:用于存放计时器计时数据,R1 赋给 TH1、R2 赋给 TL1。 R7:存放三种模式的循环次数。 R0:在外部中断程序中赋值,用于推断采纳何种模式。 PSW、1:为标志位,用于等待定时器中断,中断执行完清零,并在中断处向下连续执行程序。 PSW、5:为标志位,用于推断执行一种中断还就是三种,在外部中断程序中转变。 四、 流程图 1、主程序流程图(含提高部分): 开 开 始初 初 始 始 化允 允 许 许 外 外 部 部 中 中 断 0 , , 下 下 降 降 沿 沿 触 触 发允 允 许 许 定 定 时 时 器 1 中 中 断 断 , , 定 定 时 时

6、方 方 式 1R0=02HR002HR1 0 0C1H R2 0 0B1HR7 2 28H R1 8 83H R2 6 63HR7 1 14HR1 0 06H R2 0 0C6HR7 0 0AHYNNYCASE1 CASE2 CASE3蜂 蜂 鸣 1sTH1 R R1TL1 R R2A R R7开 开 定 定 时等 等 待 待 中 中 断R7 R R7-1R7=0NYPSW.1=0 A=14HA14H蜂 蜂 鸣 1s等 等 待 待 外 外 部 部 中 中 断YNNNYY 跳 跳 转 转 到 case2跳 跳 转 转 到 case3 2、外部中断流程图 KINT 键 键 按 按 下PSW.1 置

7、 1R0 R R0+1R0=04HPSW.1 清 清 零R0 清 清 零关 关 定 定 时 时 器 1POP 出 出 栈 栈 两 两 次DPTR 0 0036HDPL 先 先 压 压 入 入 栈 栈 顶DPH 再 再 压 压 入 入 栈 栈 顶返 返 回 回 主 主 程 程 序NY 3、定时器中断流程图 定 定 时 时 器 器 溢 溢 出触 触 发 发 中 中 断重 新 赋 值TH1 R R1TL1 R R2标 标 志 志 位PSW.1 置 置 一关 关 定 定 时LED(P0.0) 取 取 反返 返 回 回 主 主 程 程 序 五、 源代码 (含文件头说明、资源使用说明、语句行解释) ;*

8、;: LED 灯闪耀、asm ;Decription: LED LED 灯分别按 2Hz,1Hz 与 0、5Hz 三种不同频率闪动,各持续 10s。 ; 在 LED 灯开头与停止闪耀时蜂鸣器分别鸣响 1 次。按一次按钮,LED 以 ; 2Hz 频率闪动;按其次次以 1Hz 频率闪动;按其次次以 0、5Hz 频率闪动; ; 第四次时又挨次执行三种模式(可以在任何时候按按钮,不必等上一模 ; 式闪耀完) ;Designed by: gxy ;Date: 2021、10、31 ;* $include (C8051F310、inc) LED BIT P0、0 ;LED 灯掌握端口 BEEP BIT P

9、3、1 ;蜂鸣器掌握端口 KINT BIT P0、1 ;KINT 按钮端口 ORG 0000H ;复位入口 LJMP MAIN ORG 0003H ;外部中断 0 入口 LJMP T_KINT ORG 001BH ;定时器 1 入口 LJMP TIME1 MAIN: LCALL Init_Device ;初始化配置 MOV R0,#00H CLR LED ;关 led 灯 CLR BEEP CLR PSW、1 ;标志位 1 清零 CLR PSW、5 ;标志位 2 清零 SETB EA ;允许总中断 SETB EX0 ;外部中断 0 允许 SETB IT0 ;下降沿延触发 MOV TMOD,#1

10、0H ;置 T1 为定时方式 1 SETB ET1 ;定时器 T1 允许中断 ;* ;外部中断返回处,选择模式 ;* CHOO: CJNE R0,#02H,LOOP ;选择模式 LJMP CASE2 ;R0 等于 02H,跳转到模式 2 LOOP: JC CASE1 ;R0 小于 02H,跳转到模式 1 LJMP CASE3 ;R0 大于 02H,跳转到模式 3 ;* ;模式 1,2Hz 闪耀 10s ;* CASE1:MOV R1,#0C1H MOV R2,#0B1H MOV R7,#28H LJMP START ;* ; 模式 2,1Hz 闪耀 10s ;* CASE2:MOV R1,#8

11、3H MOV R2,#63H MOV R7,#14H LJMP START ;* ; 模式 3,0、5Hz 闪耀 10s ;* CASE3:MOV R1,#06H MOV R2,#0C6H MOV R7,#0AH LJMP START ;* ;闪耀掌握程序 ;* START:LCALL VOICE ;蜂鸣 1s MOV TH1,R1 MOV TL1,R2 MOV A,R7 BACK: SETB TR1 ;开定时 LOOP1:MOV C,PSW、5 ;等待中断,中断会置一标志位 PSW、5 JNC LOOP1 ;中断结束,连续向下运行 CLR PSW、5 ;清零标志位 DJNZ R7,BACK

12、;循环,使闪耀达到 10s MOV C,PSW、1 JC THERE ; PSW、1 为 1 则只执行一种模式跳转到 THERE 等待外 ;部中断 CJNE A,#14H,LOOP2 ;挨次执行时,推断下一模式 LJMP CASE3 ;A=14H 则跳转到模式 3 LOOP2:JC THERE LJMP CASE2 ;A14H 则跳转到模式 2 THERE:LCALL VOICE ;蜂鸣 1s SJMP $ ;踏步,等待外部中断 ;* ;蜂鸣器响 1s ;* VOICE:SETB BEEP ;开蜂鸣 MOV TH1,#06H MOV TL1,#0C6H CLR PSW、5 SETB TR1 ;

13、开定时器 1 LOOP3:MOV C,PSW、5 ;等待中断 JNC LOOP3 CLR BEEP ;关蜂鸣 RET ;* ;外部中断 0 ;* T_KINT:SETB PSW、1 ;标志位 1 置一,用于推断就是否挨次执行三种模式 INC R0 ;R0 加一,用于推断何种模式 CJNE R0,#04H,K_RET CLR PSW、1 ;R0 到 04H 时清零标志位与 R0 MOV R0,#00H K_RET: CLR TR1 ;关定时器 1 POP SP POP SP ;出栈两次 MOV DPTR,#0036H ;0036H 为选择处地址 PUSH DPL ;DPL 压入栈顶 PUSH D

14、PH ;DPH 压入栈顶 RETI ;返回到知道位置 ;* ;定时器 1 中断 ;* TIME1: MOV TH1,R1 MOV TL1,R2 ;重新置数 SETB PSW、5 ;标志位置一 CLR TR1 ;关定时 CPL LED ;LED 取反 RETI ;* ;初始化配置 ;* PCA_Init: ;关闭瞧门狗 anl PCA0MD, #0BFh mov PCA0MD, #000h ret Timer_Init: ;定时器 1 初始化配置 mov TMOD, #010h mov CKCON, #002h ret Port_IO_Init: ;端口初始化配置 mov XBR1, #040h

15、 ret Interrupts_Init: ;中断初始化配置 mov IE, #009h ret Init_Device: lcall PCA_Init lcall Timer_Init lcall Port_IO_Init lcall Interrupts_Init ret END 六、 程序测试方法与结果、软件性能分析 1 、软件调试总体界面: 2 、定时器 1 测试 软件调试时 利用标志位用 LOOP1:MOV C,PSW、5 JNC LOOP1 语句,可以在中断返回后,在中断处连续向下执行代码 硬件调试时,可以挨次以 2Hz,1Hz 与 0、5Hz 三种不同频率闪动,各持续 10s,并

16、且蜂鸣器鸣叫 1s 正常 3、定时循环代码测试: 例如执行模式 1 定时 0、25s,要循环 40 次才能跳出 开头时,R7 为 28H 一次循环后 R7 为 27H 跳出循环时,R7 为 0 所以,定时循环程序正常 4、外部中断测试 如图,软件调试时,进入中断程序执行到 RETI 后,DPTR 被赋为 0036H,pc 在 00ACH 处 再执行一步 Pc 在 0036H 处,返回到了指定位置。所以,这说明不管程序运行到了哪里,只要按下 KINT 键,就会返回到指定位置,选择下一种模式运行。 Program Size: data=8、0 xdata=0 code=219 代码利用合理空行与解

17、释,不仅在视觉上美化了,而且让各个子段程序的功能一目了然,便利调试与检错 硬件调试时,在 C8051F310 单片机开发板上跑代码: 不按 KINT 键时,LED 灯以 2Hz,1Hz 与 0、5Hz 三种不同频率闪动,各持续 10s,在开头、结束与切换模式时,蜂鸣器都响 1s, 按下一次时,LED 灯以 2Hz 闪耀 10s 后结束; 按下两次时,LED 灯以 1Hz 闪耀 10s 后结束; 按下三次时,LED 灯以 0、5Hz 闪耀 10s 后结束; 当按下第四次时,又切换回挨次执行三种模式, 在上述过程,蜂鸣器君鸣叫正常。 综上:此次程序,运行正常,很好的完成了要求的基础部分与提高部分

18、七、 思索题 、 若想实现 3 种闪烁方式的持续时间在 5s-20s 范围内可调,且每种方式的持续时间各不相同,应如何设计程序? 答: 三种闪耀方式利用定时器执行,定时时间为 0、25s、0、5s、1s 通过循环次数来掌握持续时间,所以只要转变循环次数,就能转变持续时间(初始持续时间可设为 10s) 可以利用矩阵键盘来实现,通过键值扫描程序来推断按下了什么键,再通过键值处理来执行按键的功能 可以设置 +键、-键、与输入键 按下+键,寄存器如 R5 加一;按下-键,寄存器如 R5 减一 再按输入键后,模式 1 循环次数加 4* R5;模式 1 循环次数加 2* R5;模式 1 循环次数加 1* R5,再执行程序来达到转变持续时间的功能。 八、 试验小结 通过本试验,我们一方面熟识了 C8051F310 单片机开发板的结构、芯片间的连接方法,同时也把握了简洁的配置方法;另一方面,我们又加深对定时/计数器、中断、IO 端口的理解,通过编写代码,我们也把握了定时/计数器、中断的应用编程技术。 程序写完后,调试就是肯定会消失许多问题,在软件调试时,我们肯定要把握利用断点来单步调试的方法,这样比较简单找出错误,而且节省大量时间,在代码量较多时,效果尤为明显。 写代码时,肯定要合理布局,准时写上解释,这样也避开写下面程序时消失错误,同时也便利调试时查错。 第 13 页 共 13 页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!