单片机主程序流程图的作用

单片机主程序流程图的作用,第1张

控制系统各部件的初始化和实现各功能子程序的调用。根据道客巴巴官网查询。单片机程序不是从零开始,而是先对已有的相关程序进行阅读分析。分析程序是设计、修改、优化、维护的重要步骤。因此,掌握单片机程序的分析方法是非常必要的。头文件,变量声明,函数声明,子函数,主函数这几部分组成,头文件其实就是一种声明,将单片机中的一些常用的符号变量进行定义声明,对一些特殊功能寄存器进行声明,对一些关健字进行定义,比如我们常用的P0口,在写程序的时候你就不用在去定义这个符号,不用把它的字节地址给这个符号了。

首先:

一·硬件:单片机1 温度传感器1 继电器 (220V,大电流的)电加热管(若干) 焊锡丝 烙铁 导线若干

二·将上面的硬件连接,用温度传感器测试温度 ->利用单片机读取传感器的内部寄存器的值,一般传感器都有接口(spi,i2c等),程序可以从网上找,很多改一下设置就能读取传感器的数值(比如引脚定义)->根据所测温度可以设置上限与下限的温度值,还有加热的时间。这主要是控制继电器通断就可以实现的。程序很简单。

单片机应用系统设计分为硬件设计与软件设计两部分及系统调试三个部分,大致过程如下:一、硬件电路设计1、根据任务需求规划确定单片机类型及外围接口电路方案;2、根据方案设计具体电路。二、软件设计1、根据目标任务的功能需求,结合硬件电路控制方式,规划设计软件功能模块;2、将功能模块细化成流程图;3、根据流程图编写程序代码;4、将编译后的目标代码下载到实物单片机或虚拟单片机进行软件仿真调试;三、系统调试1、将初调成功的目标的代码下载到单片机目标试验板进行软硬件联调及功能验证;2、验证成功符合设计要求,就可以进入小批量测试了。

定时器T0工作模式的确定。

因定时时间较长,采用哪种方式哪?

可以算出:

模式0:最长16384ms

模式1:最长131072ms

2^17/10^6

ans =

013107200000000

模式2:最长可定时512us

体重要求1s,可选模式1,每隔100ms中断一次,中断十次,就1s了。

步骤:

1 求计数值x:

因为(2^16-x初值)12/610^6=10010^(-3)s

所以:X=15536=3CB0H(用vb的hex$很方便。)

因此:(TL0)=0B0H,(TH0)=3CH

实现方法:

对于中断10次计数,可使T0工作在计数方式,也可以用循环程序的方法实现。本例采用循环程序法。

源程序:

ORG 0000H

LJMP MAIN;上电转向主程序。

ORG 000BH;T0的中断入口地址。

AJMP SERVE;转向中断服务程序。

;主程序

ORG 0030H

MAIN: MOV SP,#60H;设堆栈指针。为什么?

MOV B,#0AH;设循环次数。

MOV TMOD,#01;设置T0工作于模式1

MOV TL0,#0B0H;装入计数值低8位。

MOV TH0,#3CH;装入计数值高8位。

SETB TR0;启动定时器T0;

SETB ET0;允许T0中断。

SETB EA;换允许CPU中断。

SJMP $

;中断程序:

ORG 000BH

SERVE: MOV TL0,#0B0H

MOV TH0,#03CH;重新赋计数值。

DJNZ B,LOOP

CLR TR0;1s定时到,停止T0工作。

CPL P10;试验一下。

LOOP:RETI;中断返回!!

交通信号灯模拟控制系统设计程序流程图

开始

8051初使化

四个路口红灯

东西红灯亮,南北绿灯亮,延时

东西红灯亮,南北黄灯闪烁,延时

东西绿灯亮,南北红灯亮,延时

东西黄灯闪烁,南北红灯亮,延时

交通信号灯模拟控制系统主程序

ORG

0000H

SJMP

A3

ORG

0030H

A3:

MOV

SP,#60H

;设栈指针初值

MOV

A,

#24H

MOV

P1,

A

SETB

P32

CLR

P33

CLR

P34

SETB

P35

;全部红灯亮

MOV

R4,#00H

;显示0秒

MOV

R7,#00H

;显示0秒

MOV

R2,#03H

LCALL

XI

;调用子程序

A2

:

MOV

A,#0CH

MOV

P1,A

SETB

P32

SETB

P33

CLR

P34

CLR

P35

;东西红灯,南北绿灯

MOV

R4,#14H

;

显示20秒

LOOP2

:

MOV

R2,#03H

LCALL

XI

DJNZ

R4,LOOP2

;判断20秒显示时间到否

MOV

R2,#03H

LCALL

XI

LOOP8:

MOV

R2,#03H

;南北黄灯闪3次

LCALL

XI

MOV

R4,#05H

;设南北黄灯亮长显示5秒

SETB

P32

CLR

P33

A1:

MOV

A,#14H

MOV

P1

,A

SETB

P34

CLR

P35

;东西红灯,南北黄灯

MOV

R2,#01H

;定时

LCALL

DELAY

;调用延时子程序

MOV

A

,#04H

MOV

P1

,A

CLR

P34

CLR

P35

;东西红灯,南北不亮即意思要南北黄灯闪烁

MOV

R2

,#01H

;定时

LCALL

DELAY

DJNZ

R4,LOOP8

;判断南北黄灯闪烁,显示5秒到否?

MOV

A,

#61H

MOV

P1,A

CLR

P32

CLR

P33

CLR

P34

SETB

P35

;东西绿灯,南北红灯

MOV

R4,#14H

;显示20秒

LOOP3:

MOV

R2,#03H

LCALL

XI

DJNZ

R4,LOOP3

;判断20秒显示时间到否

MOV

R7,#05H

;设东西黄灯亮长显示5秒

SETB

P35

A0:

MOV

A,#0A2H

MOV

P1,A

CLR

P32

CLR

P33

CLR

P34

;东西黄灯,南北红灯

MOV

R2,#01H

;定时

LCALL

DELAY

MOV

A,#20H

;

MOV

P1,A

CLR

P32

CLR

P33

CLR

P34

;南北红灯,东西不亮即意思要东西黄灯闪烁

MOV

R2,#01H

;定时

LCALL

DELAY

DJNZ

R7,A0

;判断东西黄灯闪烁,显示5秒到否?

LJMP

A2

;循环回状态1,即东西红灯,南北黄灯

DELAY:

PUSH

2

PUSH

1

PUSH

0

;进栈

DELAY1:

MOV

1,#00H

DELAY2:MOV

0,#0B2H

DJNZ

0,$

;判断是否运行完0B2H

DJNZ

1,DELAY2

DJNZ

2,DELAY1

POP

0

POP

1

POP

2

;出栈

DJNZ

R2

,DELAY

判断R2是否运行完

RET

;返回主程序

XI:

MOV

A,R4

MOV

B,#10

DIV

AB

MOV

R6,A

MOV

DPTR,#TAB

MOV

A,B

MOVC

A,@A+DPTR

MOV

SBUF,A

MOV

R7,#0FH

H55S:

DJNZ

R7,H55S

MOV

A,R6

MOVC

A,@A+DPTR

MOV

SBUF,A

MOV

R7,#0FH

H55S1:

DJNZ

R7,H55S1

LCALL

DELAY

RET

TAB:DB

0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h

DB

0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh

END

只要小改一下就行了

A_BIT EQU 20H ;个位数存放处

B_BIT EQU 21H ;十位数存放处

TEMP EQU 22H ;计数器寄存处

STAR: MOV TEMP,#0 ;初始化计数器

STLOP: ACALL DISPLAY ;

INC TEMP

MOV A,TEMP

CJNE A,#100,NEXT ;等于100重来

MOV TEMP,#0

NEXT: LJMP STLOP

;显示子程序

DISPLAY: MOV A,TEMP

MOV B,#10

DIV AB

MOV B_BIT,A

MOV A_BIT,B

MOV DPTR,#NUMTAB

MOV R0,#4

DPL1: MOV R1,#5

DPLOP: MOV A,A_BIT

MOVC A,@A+DPTR

MOV P0,A

CLR P27

ACALL D1MS

SETB P27

MOV A,B_BIT

MOVC A,@A+DPTR

MOV P0,A

CLR P26

ACALL D1MS

SETB P26

DJNZ R1,DPLOP

DJNZ R0,DPL1

RET

D1MS:

MOV R7,#50

D1: MOV R6,#20

D2: DJNZ R6,$

DJNZ R7,D1

RET

NUMTAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;013456789字形码

END

这是两位从0到99的,你参考下。

C51开发流程:

第一:必须对C51单片机内部外设和内部寄存器了解,因为写程序需要控制单片机内部寄存器,再去控制外设。

第二:设计单片机的硬件,单片机IO控制你的硬件

第三:画出流程图执行大概的框架

下面就是按照你的流程图去设计程序。

以上就是关于单片机主程序流程图的作用全部的内容,包括:单片机主程序流程图的作用、基于单片机的电烤箱温度控制系统的流程图及程序怎么设计怎么编啊C语言的、请简述单片机系统的设计过程是怎样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9709459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存