资源描述:
《单片机综合实验LED灯控制器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验名称实验三综合实验-LED灯控制器指导教师专业班级姓名学号联系电话一、任务要求实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。实验内容:利用C8051F310单片机设计一个LED灯控制器主要功能和技术指标要求:1.LED灯外接于P0.0端。2.LED灯分别按5Hz,1Hz和0.5Hz三种不同频率闪动,各持续20s。3.在LED显示器上显示当前模式。4.在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。5.利用单片机内部定时器定时,要求采用中断方式。提高要求
2、:1)使用按键(KINT)切换LED灯闪烁频率。2)在LED显示器上显示当前模式和频率值。3)其它个性化设计。二、设计思路利用定时器T0实现0.1s,0.5s和1s的定时,分别对应5Hz,1Hz和0.5Hz三种闪烁方式的半周期,用T0的中断服务程序实现LED信号灯的闪烁和LED显示器显示当前模式,并重新开始计时。这三种定时时间的定时器计数初值存于工作寄存器中,赋计数初值时取出,一种频率的闪烁结束后通过改变寄存器内的值来改变半周期,接着再赋值取出。利用另一个工作寄存器来控制闪烁次数,是当前模式运行时间为20s。..一、资
3、源分配R0、R1:当前模式下定时器计数初值R2:循环次数,即闪烁次数二、流程图开始定时器设置中断允许设置R0、R1赋值R2赋值取定时器计数初值启动蜂鸣器LED灯点亮LED显示器显示模式开始计时等待中断请求R2=00H?YN停止计时蜂鸣器停止LED灯状态改变改变定时器计数初值重新取当前模式下定时器计数初值R2重新赋值DECR2..一、源代码$include(C8051F310.inc)LEDBITP0.0BEEPBITP3.1KINTBITP0.1ORG0000HLJMPMAINORG0003HLJMPT_KINTORG
4、001BHLJMPTIME1MAIN:LCALLInit_DeviceMOVR0,#00HCLRLEDCLRBEEPCLRPSW.1CLRPSW.5SETBEASETBEX0SETBIT0MOVTMOD,#10HSETBET1CHOO:CJNER0,#02H,LOOPLJMPCASE2LOOP:JCCASE1LJMPCASE3CASE1:MOVR1,#0D7HMOVR2,#14HMOVR7,#0C8HMOVP1,#0..SETBP1.6SETBP1.5LJMPSTARTCASE2:MOVR1,#83HMOVR2,#63
5、HMOVR7,#28HMOVP1,#0SETBP1.7SETBP1.6SETBP1.4SETBP1.4SETBP1.3SETBP1.1LJMPSTARTCASE3:MOVR1,#06HMOVR2,#0C6HMOVP1,#0SETBP1.7SETBP1.6SETBP1.5SETBP1.5SETBP1.4SETBP1.1MOVR7,#14HLJMPSTARTSTART:LCALLVOICEMOVTH1,R1MOVTL1,R2MOVA,R7BACK:SETBTR1..LOOP1:MOVC,PSW.5JNCLOOP1CLRPS
6、W.5DJNZR7,BACKMOVC,PSW.1JCTHERECJNEA,#28H,LOOP2LJMPCASE3LOOP2:JCTHERELJMPCASE2THERE:LCALLVOICESJMP$VOICE:SETBBEEPMOVTH1,#06HMOVTL1,#0C6HCLRPSW.5SETBTR1LOOP3:MOVC,PSW.5JNCLOOP3CLRBEEPRETT_KINT:SETBPSW.1INCR0CJNER0,#04H,K_RETCLRPSW.1MOVR0,#00HK_RET:CLRTR1POPSPPOPS
7、PMOVDPTR,#0036H..PUSHDPLPUSHDPHRETITIME1:MOVTH1,R1MOVTL1,R2SETBPSW.5CLRTR1CPLLEDRETIPCA_Init:anlPCA0MD,#0BFhmovPCA0MD,#000hretTimer_Init:movTMOD,#010hmovCKCON,#002hretPort_IO_Init:movXBR1,#040hretInterrupts_Init:movIE,#009hretInit_Device:lcallPCA_InitlcallTimer_
8、InitlcallPort_IO_InitlcallInterrupts_InitretEND..一、程序测试方法与结果思考题1.若想实现3种闪烁方式的持续时间在5s-60s范围内可调,且每种方式的持续时间各不相同,应如何设计程序?答:只需将R2的值改成相应的即可。..本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全