导航:首页 > 操作系统 > 单片机中断流程图

单片机中断流程图

发布时间:2022-09-18 03:29:24

1. 单片机中断实验交通灯的实验原理

根据图3.2电路,用单片机的IO口控制4组红绿黄共12个发光二极管,使发光二极管按照一定规则与次序发光与闪亮以实现模拟交通灯的功能。假设初始状态为:(南北通行状态)南北绿灯、东西红灯(25s);后转为过度状态:南北黄灯、东西红灯(5s);再转为东西通行状态:东西绿灯、南北红灯25(s)。再转为过渡状态:东西黄灯、南北红灯(5s),然后循环往复。

要求采用定时器实现所需要的定时时间。

2、键控交通灯。

按一下K1键

,保持南北通行状态;按一下K2键

,保持东西通行状态;按一下K3键

,保持正常交通灯。

要求在中断中进行按键处理。

3、具有闪烁的交通灯。

在2的基础上增加,绿灯最后5s闪烁,即亮0.5S灭0.5S闪烁。

四、实验原理图

图3.2交通灯实验电路原理图
图3.2共有4个按键K1、K2、K3、K4,分别连接到单片机P2.0、P2.1、P2.2、P2.3引脚,按键后对应引脚为低电平,通过4个二极管D17、D18、D19、D20连接到P3.2(外部中断0),这是二极管构成的相与电路,即任意按一个键能在P3.2上产生一个低电平或下降,作为中断触发信号。

五、软件设计思想

1、定时思想。

采用定时器T0或T1的方式1定时500ms,每500ms中断进行计数,计数10次即0.5s,计数20次即1s,对秒计数实现所需要的定时时间。

2、亮灯控制思想。

单片机控制灯引脚与灯对应如下,0点亮。

一共有四种状态S0、S1、S2、S3,

a、南北通行S0状态:

南北绿灯、东西红灯,P0=11110111=0xf7,P1=10011110=0x9e;

南北通行S0
b、过渡状态S1:

南北黄灯、东西红灯,P0=11111011=0xfb,P1=10101110=0xae;​

过渡状态S1
c、东西通行状态S2:

东西绿灯、南北红灯,P0=11111100=0xfc,P1=11110011=0xf3;​

东西通行状态S2
d、过渡状态S3:

东西黄灯、南北红灯,P0=11111101=0xfd,P1=01110101=0x75;

过渡状态S3
设置一个秒计数单元SEC每秒+1,设置两个控制值变量a,b。

2. 什么是单片机的程序框架,怎么样画程序框图。求大神们结合具体实例讲解

比如如下:

ORG 0000H ;程序入口
LJMP MAIN
ORG 0003H ;中断向量
LJMP EXT0
ORG 0030H
MAIN:
MOV SP,#5FH
SETB IT0
SETB EX0
SETB EA ;以上初始化
LOOP:
JB P1.0,LOOP1
CLR P0.0
SJMP LOOP
LOOP1:
SETB P0.0
SJMP LOOP ;以上主循环
EXT0:
RETI
END
;以上就是一个比较简单的单片机程序框架:包括:程序入口,中断,主循环

3. 单片机程序 急求流程图 ;1、0809的片选信号CS0809接CS0。 ;2、电位器的输出信号AN0接0809的ADIN0。 ;3、EO

#include "reg51.h"
#define data_point P0
sbit EOC=P2^0;
sbit ADDA=P2^1;
sbit ADDB=P2^2;
sbit ADDC=P2^3;
sbit OE=P2^5;
sbit START=P2^6;
sbit CLK=P2^7;
sbit ALE=P2^6;
unsigned char disp[3]={0,0,0};
char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char t0count=0;

unsigned int temp;
double sum;
unsigned char val_Integer; //整数
unsigned int val_Decimal; //小数

sbit k1 = P1^0;
sbit k2 = P1^1;
sbit k3 = P1^2;
sbit k4 = P1^3;

void delay(unsigned char ms)
{
unsigned char i;
while(ms--)
for(i=0;i<125;i++);
}

void display()
{
disp[0]=disp[0]&0x7f;
P3= disp[0];
k1 = 1;
delay(2);
k1 = 0;

P3= disp[1];
k2 = 1;
delay(2);
k2 = 0;

P3= disp[2];
k3 = 1;
delay(2);
k3 = 0;

P3= disp[3];
k4 = 1;
delay(2);
k4 = 0;

}

unsigned char ADC0808()
{
unsigned char d;
ADDC=0;
ADDB=0;
ADDA=0;
TR1=1;
ALE=1;ALE=0;
START=1;START=0;

while(EOC==0);
OE=1;
d=data_point;
OE=0;
TR1=1;
return d;
}
void covert(unsigned char x)
{

sum=x*0.0201378;
val_Integer=(unsigned char)sum;
val_Decimal=(unsigned int)((sum-val_Integer)*1000);

disp[3]=dispcode[val_Decimal%10];
disp[2]=dispcode[val_Decimal/10%10];
disp[1]=dispcode[val_Decimal/100];
disp[0]=dispcode[val_Integer];
}
void main()
{
TMOD=0x21;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TH1=256-2;
ET0=1;
ET1=1;
EA=1;
TR0=1;
OE=0;
START=0;
EOC=1;
while(1)
{
display();
}
}
void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
t0count++;
if(t0count==100)
{
t0count=0;
covert(ADC0808());
}
}
void time1() interrupt 3
{
CLK=~CLK;
}

4. 单片机中断处理流程

当某中断产生而且被CPU响应,主程序被中断,接下来将执行如下操作:

1. 当前正被执行的指令全部执行完毕;

2. PC值被压入栈;

3. 现场保护;

4. 阻止同级别其他中断;

5. 将中断向量地址装载到程序计数器PC;

6. 执行相应的中断服务程序。

中断服务程序ISR完成和该中断相应的一些操作。ISR以RETI(中断返回)指令结束,将PC值

从栈中取回,并恢复原来的中断设置,之后从主程序的断点处继续执行。

5. 单片机流程图怎么画,题目如下

程序思路是:
如果key1按下那么scale加1
如果scale=1,当key2按下时最大值加;当key3按下时最大值减。
如果scale=2,当key2按下时最小值加;当key3按下时最小值减。
如果scale=3,那么复位scale=0,程序结束。
如果key1未按且key2按下和key3同时按下,那么
z1加1(有些看不清),如果key2释放,这继续加,否则结束。
如果所有键都未按,这结束。

6. 程序流程图怎么表示中断啊

程序流程图中断有以下表示方式:

1、执行框(矩形框)

执行框中写明某一段程序或某一个模块的功能,其特点是有一个人口一个出口。

2、判别框(菱形框)

可用菱形或尖角形框表示。框内写明比较、判断的条件。条件较长时,用尖角框表示较合适。它可有一个入口和两个出口,在每个出口处都要写明条件判断的结果。

若条件成立,一般写“是”或“Y”,也有写明具体条件的内容,如判断开关的状态,判断框如写明:“开关是处于开通状态否”,若条件成立可写明“开”;若条件不成立,则写成“否”或“N”。

3、起始框和终止框(圆圈)

表示程序段的起始和终止。起始框有个出口起始标号或地址,也可简单写为“开始”。终止框有一个入口。框中可写入“暂停”、“结束”、“返回”等等。

4、指向线(箭头线)

指向线由带箭头的线段表示,它表示程序执行的顺序和去向。

(6)单片机中断流程图扩展阅读:

程序流程图的作用程序流程图的作用程序流程图的作用 程序流程图是人们对解决问题的方法、思路或算法的一种描述。

流程图优点:

1、采用简单规范的符号,画法简单;

2、结构清晰,逻辑性强;

3、便于描述,容易理解。



7. 单片机流程图

在word里画的,不太漂亮,凑合看下,这个程序就是开机后,1s蜂鸣器叫一下,等到30s时(包括之后的时间都是)蜂鸣器一直响~~给你画个图用了半个小时时间~~

8. 怎么在流程图中表示单片机子程序调用

是中断的话在中断大概点出一个箭头,然后写中断程序,子程序的话,我一般就是一句话,子程序也可以再画一个,一个完整的程序一个图恐怕是画不下的,个人意见,望高手有更好的解决方法

9. 单片机程序流程图如何写文字说明

单片机程序流程图用文字叙述如下:
上电,复位初始化,进入系统待机,如果没有传感器信号产生的中断就一直等待感器信号触发中断,如果有传感器信号发出中断则进入触发警报服务程序,等待停止警报按钮按下,解除警报,等待按下复位按钮对系统初始化再次进入系统,等待中断触发状态。
编程大概有80%精力放在流程图,剩下的就是用语言描述而已。所以编程最难的不是把代码写出来,而是把流程图画出来。有了流程图,编程就简单很多了。

阅读全文

与单片机中断流程图相关的资料

热点内容
新科学pdf 浏览:744
现在还有c语言编译吗 浏览:672
哪里买到单片机 浏览:478
linux文件打开数量 浏览:510
编译原理中什么是l属性文法 浏览:367
硬盘加密时出现的问题 浏览:59
如何退域命令 浏览:108
看书的app哪里看 浏览:291
服务器怎么调大 浏览:3
android天气apijson 浏览:984
为什么创建id会出现服务器错误 浏览:837
代码中有不必编译的单词吗 浏览:563
钩子与数据库编程 浏览:563
安卓光遇录歌怎么设置 浏览:485
虚拟机怎么和云服务器搭建集群 浏览:896
python倒计时代码turtle 浏览:492
cad命令mv 浏览:928
nexus7一代androidl 浏览:306
linux使用静态库编译过程 浏览:103
android平滑滚动效果 浏览:841