⑴ 單片機程序設計流程圖
你好樓下一位回答的比較全面了另外我補充哈,圖中左側四個部件,相當於單片機內部CPU中的控制器,(CPU由運算單元和控制器單元組成)其實控制器就是在內部時序脈沖的節拍控制下,取指令,分析指令,然後執行指令。嵌入式單片機技術社區:/proct/embed.htm
⑵ 單片機程序設計
51單片機?自學已經足夠了、用心點、別一開始就想著要依賴別人、你要想著靠自己也可以學好——而且單片機挺好玩的、學起來很有樂趣的、會越來越想學的——建議你買個實驗板——
⑶ 單片機編程和"一般編程"區別
如果你是想學計算機軟體開發的話,就不要去理會什麼單片機編程了。
但如果你是想學電子產品開發(嵌入式系統開發),那麼單片機編程就是基礎了。
電腦和單片機的區別是:電腦屬於通用計算機,而單片機是嵌入式微機。
通用計算機上的C語言和匯編編寫出來的程序是在本台計算機上運行的,當然你也可以讓它在其他電腦上運行。而單片機編程就不同了,單片機編程有專門的編譯器,不同的單片機編程軟體是不同的,而不像電腦上的c++6.0、TC或其他什麼編程軟體寫出來的程序就在本台電腦上運行,單片機的編程是在電腦上編寫程序並生成可執行文件。讓後把可執行文件下載到單片機裡面,也就是說單片機編程是面向單片機的,而通用計算機編程時面向通用計算機的。這就說明了為什麼不同的單片機需要不同的編程軟體,因為編程生成的可執行代碼都需要硬體的支持,通用機的硬體是「通用的」「兼容的」,而單片機型號不同硬體就會有差別
,所以需要不同的編譯器來支持了。
你會發現單片機編程的C語言和標准C會有差別,很多單片機C語言在標准C里是不被承認的,這個也能說明單片機和電腦的區別吧。
⑷ 89c51單片機程序設計!!!
辦法比較多,89c51自己是不帶ad的,那麼外接ad程序比較麻煩,你這對電壓也不測量精確值,所以用不著ad,只要能區分電壓值不同就行了。考慮到程序的簡單,就用比較器,比如說接五個比較器,閾值分別為1v、2v、3v、4v、5v,把他們的輸入端接在一起,輸出端接在單片機的五個io口上,再接五個發光二極體在另外五個io口上,發光二極體的另一端分別串個限流電阻接在電源上,硬體完成了。程序就好寫多了,只要判斷五個比較器輸出端電平,然後控制相應的燈亮滅就行了。比較器也不一定五個,三個兩個也一樣,這樣精度就不太高而已。不過程序就幾行代碼。簡單。
⑸ 51單片機程序設計
P1=0xff,關閉所有LED(低電平才能點亮LED);
10000mS=10S;
右移1位;P1.7 先=0,即LED點亮
⑹ 單片機程序設計 很簡單的 高分懸賞
每個燈亮1秒,每個燈閃亮頻率為5次/秒。
下列程序,在PROTEUS中模擬通過.
;-------------------------------------
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0030H
MAIN:
MOV SP, #7FH
MOV TMOD,#01H
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
SETB TR0
MOV IE, #82H
MOV R2, #2
MOV R3, #10
MOV R4, #0
M_LOOP:
LJMP M_LOOP ;等待中斷,一切閃動、移位,都在中斷裡面解決
;----------------------------------------------------------------
T0_INT:
MOV TL0, #LOW(65536-50000)
MOV TH0, #HIGH(65536-50000)
DJNZ R2, T0_END
MOV R2, #2 ;加大此數字,如改為8,可降低速度,便於觀察.
INC R4
DJNZ R3, FLASH ;100ms減一次一.
MOV R3, #10
INC R6 ;1s加一次一
FLASH:
MOV A, R6
ANL A, #7
MOV R5, A ;0~7, 1s換一次位.
INC R5
MOV A, R4
MOV C, ACC.0
MOV A, #255
MOV P1, A ;關顯示
T0_LOOP:
RLC A
DJNZ R5, T0_LOOP
MOV P1, A
T0_END:
RETI
;------------------------------------------------------------
END
⑺ 單片機C語言和程序設計的C語言最大的差別在什麼地方,單片機的C語言可以做程序設計嘛
最大區別就是程序設計的c幾乎不會用來做程序設計(c++)
單片機C經常用來做設計(雖然效率不如匯編)
⑻ 一個單片機C語言程序設計
1)把這10個數放在數組中(你沒說數據寬度,就設定為位元組)
unsigned char shu[10]={};
2)定義變數
unsignedchar max=0;
unsignedchar min=255;
unsignedchar avg=0;
unsigned int tmp=0;
3)採用循環
main()
{ char i;
for(i=0,i<10;i++)
{
if(shu[i]>max)max=shu[i];
if(shu[i]<min)max=shu[i];
tmp+=shu[i];
}
tmp-=max;
tmp-=min;
avg=tmp/8;
while(1){}
}
⑼ 51單片機源程序設計
先實現一個功能吧,按K1數碼管顯示加1,LED燈左移一位。
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽級數碼管碼表0-9
ucharkey;
voidext0()interrupt0
{
key++;
P1=_crol_(0xfe,key);
P0=table[key];
}
main()
{
EX0=1;
IT0=1;
EA=1;
while(1);
}
⑽ 51單片機程序設計
按鍵按下去不是K2等於0么?
else if(K2==1 && dly==0)
{
dly=DLY1;
if(mode==2 && hour<23)hour++;
if(mode==3 && minute<59) minute++;
if(mode==4 && minute<59) second++;