1 / 14
文档名称:

单片机实验报告——LED灯控制器.doc

格式:doc   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机实验报告——LED灯控制器.doc

上传人:doc2088 2015/12/23 文件大小:0 KB

下载得到文件列表

单片机实验报告——LED灯控制器.doc

文档介绍

文档介绍:《微机实验》报告
实验名称: LED灯控制器
指导教师:
专业班级:
姓名:
学号:
联系方式:
任务要求
实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。
实验内容:利用C8051F310单片机设计一个LED灯控制器
主要功能和技术指标要求:
1. 。
2. LED灯分别按2Hz,,各持续10s。
3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。
4. 利用单片机内部定时器定时,要求采用中断方式。

提高要求:
使用按键(KINT)控制LED灯闪烁模式的切换。
设计思路
, ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,,。
基础部分:
给TMOD赋值10H,即选用T1定时器采用定时方式1,、、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。要使闪烁持续10s,三种模式需要各循环40、20、10次。
用LOOP3:MOV C, ;,进定时器中断后置一
JNC LOOP3
代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。
为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。
蜂鸣器也采用T1定时方式1,定时一秒。
资源分配
:为LED灯控制端口,高电平触发。
:为蜂鸣器控制端口,高电平触发。
:为KINT键控制端口,下降沿触发。
R1、R2:用于存放计时器计时数据,R1赋给TH1、R2赋给TL1。
R7:存放三种模式的循环次数。
R0:在外部中断程序中赋值,用于判断采用何种模式。
:为标志位,用于等待定时器中断,中断执行完清零,并在中断处向下继续执行程序。
:为标志位,用于判断执行一种中断还是三种,在外部中断程序中改变。
流程图
(含提高部分):


源代码(含文件头说明、资源使用说明、语句行注释)
;*****************************************************************
;Filename:
;Decription: LED LED灯分别按2Hz,,各持续10s。
; 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。按一次按钮,LED以
; 2Hz 频率闪动;按第二次以1Hz频率闪动;;
; 第四次时又顺序执行三种模式(可以在任何时候按按钮,不必等上一模
; 式闪烁完)
;Designed by: gxy
;Date:
;*****************************************************************
$include ()
LED BIT ;LED灯控制端口
BEEP BIT ;蜂鸣器控制端口
KINT BIT ;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 ;标志位1清零
CLR ;标志位2清零
SETB EA ;允许总中断
SETB EX0 ;外部中断0允许
SETB IT0 ;下降沿延触发
MOV TMOD,#10H ;置T1为定时方式1
SETB ET1 ;定时器T1允许中断
;*****************************************************************
;外部中断返回处,选择模式
;***********