200 likes | 344 Views
任务 9 单灯闪烁 20 次控制. 4 学时. 1. 掌握定时计数器编程控制方法. 2. 掌握定时计数器的查询方式编程要点. 3. 掌握定时计数器的中断方式编程要点. 一.任务目标. 二.任务要求. 任务描述:用单片机控制 1 个 LED 的亮灭,亮 1 秒灭 1 秒, 反复 闪烁 20 次后,一直保持亮的状态 。. 仿真演示. 三. 相关知识. (一)转移类指令
E N D
任务9 单灯闪烁20次控制 4学时
1.掌握定时计数器编程控制方法 2.掌握定时计数器的查询方式编程要点 3.掌握定时计数器的中断方式编程要点 一.任务目标
二.任务要求 • 任务描述:用单片机控制1个LED的亮灭,亮1秒灭1秒,反复闪烁20次后,一直保持亮的状态 。
三. 相关知识 (一)转移类指令 1.无条件转移类指令(1)短转移类指令AJMP addr11(2)长转移类指令LJMP addr16(3)相对转移指令SJMP rel (4)间接转移指令JMP @A+DPTR
2.条件转移类指令 条件转移指令是指在满足一定条件时进行进行跳转。 (1)判A内容是否为0转移指令 JZ rel JNZ rel (2)比较转移指令 CJNE A,#data,rel CJNE A,direct,rel CJNE Rn,#data,rel CJNE @Ri,#data,rel (3)循环转移指令 DJNZ Rn,rel DJNZ direct,rel
3.调用与返回指令 (1)子程序 (2)调用及返回过程 (3)调用指令 LCALL addr16 ;长调用指令 ACALL addr11 ;短调用指令 (4)返回指令 RET
(二)位操作指令 SETBP1.0 将P1口对应的最低位P1.0位 CLRP1.0将P1口对应的最低位P1.0位清0通过这两条指令可以控制接在P1.0管脚上的LED的亮灭。
1.时序分析 (1)时钟周期 晶振电路产生的矩形波的周期就是单片机时序的一个基准信号,叫做时钟周期 (2)机器周期它的时钟周期是1/12 (3)指令周期
2.延时程序 (1)用了没有循环体的循环程序来实现延时 我们先编写下面一段程序: MOVR1,#250 LOOP1:DJNZR1,LOOP1 (2) 采用了循环体为空操作的循环程序来实现延时
延时程序 (3)嵌套结构的方法来构成延时程序
四、任务分析 1、硬件电路硬件电路见图2.4.3,其中LED由P1.0管脚控制,R2为限流电阻通过我们介绍的两条位操作指令SETBP1.0和CLRP1.0就可以实现对该发光二极管的亮灭控制,晶振采用的是12M,所以1个机器周期为1us
五.任务实施 • 1、在PROTEUS软件中按图搭接好电路; • 2、在伟福软件中编辑程序,进行编译,得到.HEX格式文件; • 3、将所得的HEX格式文件在PROTEUS中指定到MCU芯片中; • 4、运行仿真,观察仿真结果; • 5、PROTEUS中结果正常后,用实际硬件搭接并调试电路,通过编程器将.HEX格式文件下载到AT89C51中,通电验证实验结果。
六、任务总结 • 任务回顾 • 课后作业 • 思考题
Thank you! 标志