程序修改如下:
#include<reg51.h>
unsignedcharLedChar[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90
};
voidmain()
{
unsignedchari=0;
while(1)
{
P2=0xfe;
P0=LedChar[2];
for(i=0;i<300;i++);
P2=0xfd;//親,這里有錯誤
P0=LedChar[1];
for(i=0;i<300;i++);
}
}
B. 51單片機編程
#include <reg52.h>
sbit k1=P3^2;
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
void main()
{led1=1;led2=1;led3=1;led4=1;
while(1)
{
if(k1==0)
{
delayms(5);
if(k1==0)
{led1=0;led2=1;led3=1;led4=1;}}
if(k2==0)
{
delayms(5);
if(k2==0)
{led1=1;led2=0;led3=1;led4=1;}}
//依次寫K3,K4D的即可
}
}
C. 簡述51單片機的開發流程
編程,模擬,調試,寫入。
D. 求51單片機編程方式
按鈕要接在單片機的中斷引腳上,如P3.2和P3.3.
然後開中斷:如
EX0=1 //開外部中斷1
EA =1 //開總中斷
IT0=1//下降沿觸發
p0到p2的控制可以在中斷程序中,也可以在主程序中。
E. 51單片機C語言編程
#include<AT89X51.H>
//設CPU是時鍾12MHz的8051系列
dataunsignedintms;
sbitKEY=P2^3;
voidSetupTimer0()
{
TMOD&=0XF0;//僅保留T1信息
TMOD|=0X02;//設置T0:定時功能,方式2,自動重載8位定時器/計數器
TH0=256-250;//定時每0.25ms中斷一次
TL0=256-250;
TR0=1;//開啟定時器
ET0=1;//定時器0中斷打開
}
voidTimer0_ISR()interrupt1//中斷服務程序
{
staticdataunsignedcharus250;
if(++us250>=4){++ms;us250=0;}
}
voidprocess1()
{
unsignedchari,d;
unsignedinttime,dlt;
//第一步8燈整體一直閃(閃10下)。
for(i=0;i<10;++i)
{
P1=0;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
P1=0xFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
}
//第二步整體滅5秒。
P1=0xff;
for(time=ms,dlt=0;dlt<5000;dlt=ms-time);
//第三步從右邊逐個點亮並循環4遍。
for(i=0;i<4;++i)
for(d=1;d;d<<=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);
//第4步循環完畢後全部熄滅;
P1=0xff;
}
voidprocess2()
{
unsignedchari,d;
unsignedinttime,dlt;
//第一步8燈整體閃3次。
for(i=0;i<3;++i)
{
P1=0;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
P1=0xFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
}
//第二步從左邊逐個點亮並循環2遍。
for(i=0;i<2;++i)
for(d=0x80;d;d>>=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);
//第三步循環完畢後8燈一直流水;
for(;KEY;)
for(d=1;d&&KEY;d<<=1)
for(P1=d,time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
}
voidprocess3()
{
unsignedchari,j,d;
unsignedinttime,dlt;
//第一步8燈整體保持全滅,滅的時間為500ms,可以修改
P1=0XFF;
for(time=ms,dlt=0;dlt<500;dlt=ms-time);
//第二步8燈從外到里依次點亮,重復兩遍。
for(i=0;i<2;++i)
for(d=0x1,j=0x80;d<=0x8;d<<=1,j>>=1)
for(P1=~(d|j),time=ms,dlt=0;dlt<500;dlt=ms-time);
//第三步8燈從里到外依次點亮,重復兩遍循環完畢後8燈保持在4亮4滅的狀態
for(i=0;i<2;++i)
for(d=0x8,j=0x10;d;d>>=1,j<<=1)
for(P1=~(d|j),time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
P1=0xc3;
for(;KEY;);
}
voidprocess4()
{
unsignedchari,d;
unsignedinttime,dlt;
//第一步整體保持全滅。滅的時間為1000ms,可以修改
P1=0XFF;
for(time=ms,dlt=0;dlt<1000;dlt=ms-time);
//第二步從左到右流水兩遍。
for(i=0;i<2;++i)
for(d=1;d;d<<=1)
for(P1=d,time=ms,dlt=0;dlt<500;dlt=ms-time);
//第三步從右到左逐個點亮三遍。
for(i=0;i<3;++i)
for(d=0x1;d;d<<=1)
for(P1=~d,time=ms,dlt=0;dlt<500;dlt=ms-time);
//第4步其中一盞燈保持閃
for(;KEY;)
{
for(d=0x8;KEY;d^=0x8)
for(P1=~d,time=ms,dlt=0;dlt<500&&KEY;dlt=ms-time);
}
}
voidmain()
{
//dataunsignedcharp0;
ms=0;
SetupTimer0();
EA=1;//全局中斷打開
while(1)
{
process1();
process2();
process3();
process4();
}
}
F. 如何給51單片機編程
1.定義的變數不要太多。低128位為用戶定義變數的存放區域(默認時),也可以把變數放在高128位,但容易出錯,盡量少放,最好不放。通過M51可以查看內存變數的存放,最好不要超過110個位元組,否則程序無法運行或出錯。
2.如一個變數多處使用可定義為全局變數。例如循環變數i、j,盡量減少參數傳遞。
3.靜態變數最好放在程序存儲區,用code定義。
4.變數應定義為無符號數,像標志位等僅佔一位的變數應定義為bit。
5.子程序在main()主程序之後的應事先聲明,放在前面的不用聲明。
6.變數、子程序定義但沒使用,系統給出警告。
7.雖然局部變數和全局變數不同名,但運行時可能被全局變數改變。
8.程序在編譯後,有可能產生非常大的文件。比如原來5k,編譯後變成10k,這是C匯編時程序空間分配太隨意造成的。可首先屏蔽一部分程序編譯,然後再去屏蔽再編譯,可恢復,或一部分一部分復制到另一個文件中編譯。
9.如產生脈沖信號用到定時器,要去掉脈沖信號時,應先關定時器,再按要求把電平置為高電平或低電平。
10.可使用軟體實現「看門狗」功能。比如:一個程序運行一個循環需要50ms,則定時器可定位100ms,當超過100ms時,程序將復位,在程序循環最下面都重裝定時器或重置定時器參數。
G. 51單片機的編程
用模擬圖來實現,很容易,P2口接8個LED燈,把41H送P2口,由8個LED燈顯示出來即可。
模擬圖如下
匯編程序
MOV P2,#41H
SJMP $
H. 單片機應用程序的開發步驟
具體步驟如下:
1、首先,開啟我們的keil軟體,具體的安裝步驟就不做太多的介紹了;
開啟後,點擊菜單欄上的Project選項,創建我們的工程,如圖所示;
編譯完成後,在我們的文件夾下找到.hex的文件,將其燒寫到我們的晶元中即可。
I. 單片機編程步驟
一、什麼是 nec 單片機
隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、 定時器 / 計時器 等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系
二、nec單片機的操縱教程詳解
1、在智能儀器儀表中的操縱:在各類儀器儀表中引入單片機,使儀器儀表智能化,進步測試的自動化程度和精度,簡化儀器儀表的硬體結構,進步其性能價格比。
2、在機電一體化中的操縱:機電一體化產品是指集呆板、微電子技能、計較機技能於一本,具有智能化特徵的電子產品。
3、在實時過程式控制制中的操縱:用單片機實時進行數據處理和控制,使系統保持最佳事變狀態,進步系統的事變從命和產品的品格。
4、在人類生活中的操縱:目前國外各種家用電器已普通採用單片機代替傳統的控制電路。
5、在此外方面的操縱:單片機除以上各方面的操縱,它還遍布操縱於辦公自動化范圍、商業營銷范圍、汽車及通信、計較機外部裝備、暗昧控制等各范圍中。
以上就是為大家整理的關於單片機含義及其具體操縱教程的全部內容了。此外小編還額外為大家整理了單片機的優點:低電壓、低功耗、集成度高、可靠性高、體積小、控製成果強等。希望通過這篇文章能夠給想要了解單片機相關知識的朋友帶來一些幫助。另外大家如果想了解更多單片機的知識可以通過圖書查閱、網路查閱等方式。
J. 51單片機燈閃爍怎麼編程
51單片機閃爍燈的編程程序要與相對應的機器連接之後,固定編碼操作。