单片机主程序流程_单片机主程序
单片机主程序流程由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机主程序”。
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
单片机主程序流程
单片机教程 栏目导航
第一页..单片机入门教程
第二页..单片机c语言
第三页..红外遥控和步进电机
第四页..单片机问答
3.主程序流程图---51系列单片机设计实例教程
主程序流程图如图6.2所示。
图6.2 主程序流程图
本控制器在使用中,如要改变闪烁的方式,可按下相应的功能按键。当一个完整的闪烁循环结束后,即可转入新的闪烁方式。由于键扫描是在闪烁循环结束时进行,因此,功能开关按下的时间应较长才能被读入。改进的方法是把DL05S延时子程序用键扫描子程序来替代,这样,只要按下按键即可被键扫描程序读入。以下是LED小灯闪烁控制器的完整源程序:
;* * * * * * * * * * * *;;
小灯控制程序;
;* * * * * * * * * * * *;
;
;* * * * * * * * * * * *;;
中断入口程序
;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
;* * * * * * * * * * * *;
;
ORG
OOOOH;程序执行开始地址
LJMP START;跳至START执行
ORG
OOO3H;外中断0中断入口地址
RETI;
中断返回(不开中断)
ORG
OOOBH;定时器TO中断入口地址
RETI;
中断返回(不开中断)
ORG
OO13H;外中断1中断入口地址
RETI;
中断返回(不开中断)
ORG 001BH;定时器T1中断入口地址
RETI;
中断返回(不开中断)
ORG 0023H;串行口中断入口地址
RETI;
中断返回(不开中断)
;
;* * * * * * * * * * * *;;
初始化程序;
;* * * * * * * * * * * *;
;
CLEAR: MOV
20H,#00H;20H单元内存清0(闪烁标志清0)
SETB
00H;
20H.0位置1(上电时,自动执行闪烁功能1)
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
RET;
子程序返回 ;
;* * * * * * * * * * * *;;
主程序
;
;* * * * * * * * * * * *;
;
START:
ACALL CLEAR;
调用初始化子程序
MAIN:
LCALL KEYWORK;
调用键扫描子程序
JB
OOH,FUNO;20H.0位为1时执行FUNO
JB
01H,FUN1;20H.1位为1时执行FUN1
JB
02H,FUN2;20H.2位为1时执行FUN2
JB
03H,MAIN;备用
AJMP
MAIN;
返回主程序MAIN ;
;* * * * * * * * * * * *;;
功能程序
;
;* * * * * * * * * * * *;
;第1种闪烁功能程序
FUNO:
MOV
A,OFEH;
累加器赋初值 FUNOO:
MOV
P1,A;
累加器值送至P1口
LCALL DL05S;
延时
JNB
ACC.7.MAIN;累加器最高位为0时转MAIN
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
RL
A;
累加器A中数据循环左移1位
AJMP
FUNOO;
转FUNOO循环 ;
;第2种闪烁功能程序
FUN1:
MOV
A,#OFEH;
累加器赋初值
FUN11:
MOV
P1,A;
累加器值送至P1口
LCALL DLO5S;
延时
CPL
A;
A中各位取反
MOV
P1,A;
累加器值送至P1口
LCALL DL05S;
延时
AJMP MAIN;
转MAIN ;* * * * * * * * * * * *;;
扫键程序
;
;* * * * * * * * * * * *;
;
KEYWORK:MOV
P3#OFFH;
置P3口为输入状态
JNB
P3.0,KEYO;读P3.0口,若为0转KEYO
JNB
P3.1,KEY1;读P3.1口,若为0转KEY1
JNB
P3.2,KEY2;读P3.2口,若为0转KEY2
JNB
P3.3,KEY3;读P3.3口,若为0转KEY3
RET;
子程序返回 ;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
;闪烁功能0键处理程序
KEYO:
LCALL
DL10MS;
延时10ms消抖
JB
P3.0,OUTO;P3.0为1,子程序返回(干扰)
SETB
OOH;
20H.0位置1(执行闪烁功能1标志)
CLR
01H;
20H.1位清0
CLR
02H;
20H.2位清0 OUTO:
RET;
子程序返回 ;
;闪烁功能1键处理程序
KEY1:
LCALL
PL10MS
JB
P3.1,OUT1
SETB
01H;
20H.1位置1(执行闪烁功能2标志)
CLR
00H
CLR
02H
CLR
03H OUT2:
RET ;
;闪烁功能(备用)键处理程序
KEY3:
LCALL
DL10MS
JB
P3.2,OUT2
SETB
02H;
20H.2位置1(执行闪烁功能3标志)
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
CLR
01H
CLR
00H
CLR
03H OUT2:
RET ;
;闪烁功能(备用)键处理程序
KEY3:
LCALL
DL10MS
JB
P3.3,OUT3
SETB
03H;
20H.3位置1(执行闪烁功能3标志)
CLR
01H
CLR
02H
CLR
00H OUT3:
RET ;
;* * * * * * * * * * * *;;
延时程序
;
;* * * * * * * * * * * *;
;延时子程序,执行一次时间为513us DL512: MOV
R2,#OFFH LOOP1: DJNZ
R2,LOOP1
RET ;
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
;10ms延时子程序(调用20次0.5ms延时子程序)
DL10MS:MOV
R3,#14H LOOP2: LCALL DL512
DJNZ
R3,LOOP2
RET ;
;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为25msX15)
DL05s: MOV
R4,#OFH LOOP3: LCALL DL25MS
DJNZ R4,LOOP3
RET ;
;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为25msX15)
DL05S: MOV
R4,#OFH LOOP3: LCALL DL25MS
DJNZ R4,LOOP3
RET ;
;25ms延时子程序,调用扫键子程序延时,可快速读出功能按键值
DL25MS:MOV
R5,#OFFH LOOP4: LCALL KEYWORK
DJNZ R5,LOOP4
精心收集
精心编辑
精致阅读
如需请下载!
演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案
RET
END;
程序结束
12个经典单片机程序设计实例: 闪烁LED小灯主程序图 数码管时钟电路的主程序 单键学习型遥控器的设计 15路电器遥控器的设计 自行车里程/速度计的设计 自动往返行驶小汽车的设计 遥控小汽车的设计 数码管时钟电路的设计 8*8点阵LED字符显示器的设计 8路输入模拟信号数值显示电路的设计 8路输入模拟信号数值显示电路程序
单键学习型遥控器的程序如果对本文有疑问,请到论坛提问 编辑:51单片机学习网 @ 2009-10-20校对 中国开发板最佳品牌
版权:部分由编辑摘引,权利属原著作人
精心收集
精心编辑
精致阅读
如需请下载!