導航:首頁 > 操作系統 > 單片機中斷流程圖

單片機中斷流程圖

發布時間: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%精力放在流程圖,剩下的就是用語言描述而已。所以編程最難的不是把代碼寫出來,而是把流程圖畫出來。有了流程圖,編程就簡單很多了。

閱讀全文

與單片機中斷流程圖相關的資料

熱點內容
安卓手機連車載的叫什麼 瀏覽:223
怎麼讓自己的手機鍵盤變得好看app 瀏覽:53
能看qq的文件夾 瀏覽:515
android二維碼生成代碼 瀏覽:567
焦爐氣壓縮機 瀏覽:402
imap接收郵件伺服器地址 瀏覽:291
小喬肖恩解壓密碼 瀏覽:645
php網頁網盤源碼 瀏覽:181
簽到任務源碼 瀏覽:814
母親節的文案怎麼寫app 瀏覽:984
加密協議aes找不到 瀏覽:250
java伺服器端開發源碼 瀏覽:551
編譯器編譯運行快捷鍵 瀏覽:333
住房app怎麼快速選房 瀏覽:174
怎麼在電腦上編譯成功 瀏覽:214
單片機可調時鍾設計方案 瀏覽:192
qq文件夾密碼忘記怎麼找回 瀏覽:683
php擴展插件 瀏覽:608
解壓視頻廁所抽紙 瀏覽:952
app減脂怎麼用 瀏覽:452