硬體就是PC,你的電路板,還有程序下載線或燒寫器之類
軟體,就是各種編程軟體了,比如IAR,Keil等
在PC上編程,然後編譯成諸如HEX之類的文件,再通過程序下載線下載到晶元上。有的晶元不支持ISP之類的下載方式,那就要專門的燒寫器了。
可以用C編程,甚至有的軟體支持類BASIC的語言,看你用什麼編程軟體。
B. 求52單片機程序代碼
程序代碼如下:
#include<reg51.h>
sbitK1=P1^0;
sbitK2=P1^1;
voiddelay(inta)
{
inti;
while(a--)for(i=0;i<120;i++);
}
main()
{
unsignedcharkeyval=0,led=0xfe;
while(1)
{
if(K1==0)
{
delay(10);
if(K1==0)
{
keyval==1;
while(K1==0);
}
}
if(K2==0)
{
delay(10);
if(K2==0)
{
keyval==2;
while(K2==0);
}
}
if(keyval==1)P0=0xfe;
if(keyval==2)
{
P0=led;
led=_crol_(led,1);
delay(200);
}
}
}
C. 單片機怎麼燒程序
問題一:51單片機晶元燒入程序 買一個燒錄器就好了,杜邦線直接插到DIP腳上
問題二:單片機如何燒錄程序 STC系列單片機為例:
首先,需要安裝keil軟體和STC_ISP程序下載軟體。
先對你想要實現對單片機的功能用keil編程,然後用STC_ISP下載軟體下載到單片機上,最後打開給單片機提供電源就可以觀察單片機開發板或是自己搭建的板子上的現象了...通過不斷修改程序,下載程序,最終獲得自己在實驗板上想要的結果。這樣就可以了...
實驗板與PC機的連接:一般對現成購買的開發板來說,會有一個USB介面提供5v電源、提供通信或另一個USB用橋答野來下載介面驅動程序,同時有RS232串口,實現MAX232電平與單片機TTL電平之間轉換,用來進行通信下載程序和數據;;對自己搭建的電路板來說,仍會有MAX232晶元和RS232串口用來實現程序的燒寫,實現對單片機寫入數據和程序的下載。用的是RS232串口實現的程序燒寫!
若要用USB來燒寫,需要一個相應的ISP下載軟體和硬體燒寫器,一般這種燒寫器價格不菲。用的是USB口實現燒寫程序!
一般的,燒寫程序還是選用可以用ISP下載的,自己搭建個RS232串口的電路,簡單實用,對單片機燒寫程序就夠用了。
問題三:單片機中燒程序是什麼意思 看處你剛剛入門。單片機是個有意思的東西,好好學。keil是電腦上的編程軟體,燒程序你就理解為往單片機中下載程序。
問題四:單片機開始可以燒程序用了幾次就燒不進去 怎麼回事? 有可能已經燒壞敏喊了,特別是89c52系列 更特別是STC品牌的89C52的。很容易壞,
你要注意了,你電壓可能有問題。
還有就是燒程序的時候需要復亥,如果以前你能燒現在不能燒,說明你復位電路沒有問題,經常復位電路影響燒程序。
問題五:第一次給單片機燒程序要注意什麼? use轉232應該沒有問題,我用現代的晶元試過已經通過。首先我們要分析你有沒有進入ISP模式,用示波器觀察一下串口的波形是否正常,再就是晶元各個管腳的電壓是否正常。排除硬體原因後仍不能解決,建議換一下你的USB轉232線,這方面的牌子實在太多了,雖然原理都一樣,但作為一個故障點來分析也是應該考慮的。
問題六:為什麼單片機程序燒不進去? 用的是什麼型號的單片機?會不會是燒寫前沒有先擦除?單片機保存程序是使用EEPROM或者flash的,都需要先擦除,才能寫入的。第一次能燒進去,是因為單片機出場時本來就是已擦除過的,可以寫入。但之後的寫入之前,都需要先擦除。
問題七:單片機程序燒入rom之後怎樣執行 1,HEX文件包含了代碼數據。是由鏈接器統一分配ROM地址。
2. 程序中的變數,也是在編譯連接時,分配了RAM地址。不存在載入的問題,程序指令對變數的操作,就是對RAM地址的操作,地址值存在在指令中。
3. 堆棧在程序初始化時設置堆棧指針。Keil C 會自動設置好。
4. 一般的51單片機代碼是從 0000開始執行,這是它的復位地址。也有別的型號的單片機並不一定從0開始執行。程序從0開始執行,但它執行的第一句往往是一個跳轉指令(這個Keil C也是自動寫好的),跳到另一塊地址去執行,而不會順序執行到 中斷的地址的。
你如果是用匯編寫程序,這些都是要你自己去分配的,用C寫程序,由編譯器來完成這些底層操作。
問題八:怎麼程序突然燒不進單片機了??? 這種情況會有很多種可能性:
1、單片機已經損壞,樓主換個單片罰試試。
2、單片機開發板損壞,這個情況基本上不可能發生,但樓主需做好准備。
3、USBISP損壞,概率不大,換一個試試。
4、下載軟體出問題了,樓主看看自己的程序下載軟體的型號是否為「AT89S52」。
5、單片機在插座上插反了。
6、某條連接線不牢固。
7、開發板的晶振鬆了,或數值舉派不對。
問題九:8051單片機通過什麼口燒程序? at89c**系列是用並口下載。at89系列可以用isp方式下載。 stc系列可以通過串口下載。51有專門的模擬晶元。。
isp可以用串口或者並口,或者串口轉u *** (這種方式最方便,筆記本上也可以下載)。isp就用到單片機的io口(P1.5,P1.6,P1.7),還有RST引腳+74h373+並口,就可以下載了。。
D. 單片機應用程序的開發步驟
具體步驟如下:
1、首先,開啟我們的keil軟體,具體的安裝步驟就不做太多的介紹了;
開啟後,點擊菜單欄上的Project選項,創建我們的工程,如圖所示;
編譯完成後,在我們的文件夾下找到.hex的文件,將其燒寫到我們的晶元中即可。
E. AT89C51單片機8路搶答器的代碼怎麼寫,急用,求解答
#include<reg51.h>
#defineucharunsignedchar
uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbitrstkey=P2^2;
sbitspeaker=P2^0;
voiddelay(uchara)
{
uchari,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
uchari,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case0x01:i=1;break;
case0x02:i=2;break;
case0x04:i=3;break;
case0x08:i=4;break;
case0x10:i=5;break;
case0x20:i=6;break;
case0x40:i=7;break;
case0x80:i=8;break;
default:break;
}
P1=table[i];//顯示按下搶答器的號
P0=key;//顯示按下鍵號的LED
while(1)
{
if(rstkey==0)break;//主持人按下復位鍵則重新開始
speaker=~speaker;//否則蜂鳴器報警
delay(250);
}
}
}
F. 單片機編程步驟
一、什麼是 nec 單片機
隨著大范疇集成電路的顯現和發展,將計算機的cpu、ram、rom、定時/數器和多種i/o介面集成在一片晶元上,組成晶元級的計較機,因此單片機早期的含義稱為單片微型計較機,直譯為單片機。單片機是一種集成在電路晶元,是採用超大范疇集成電路技能把具有數據處理本事的中心處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和間斷系統、 定時器 / 計時器 等成果(大要還包括表現驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完竣的計算機系
二、nec單片機的操縱教程詳解
1、在智能儀器儀表中的操縱:在各類儀器儀表中引入單片機,使儀器儀表智能化,進步測試的自動化程度和精度,簡化儀器儀表的硬體結構,進步其性能價格比。
2、在機電一體化中的操縱:機電一體化產品是指集呆板、微電子技能、計較機技能於一本,具有智能化特徵的電子產品。
3、在實時過程式控制制中的操縱:用單片機實時進行數據處理和控制,使系統保持最佳事變狀態,進步系統的事變從命和產品的品格。
4、在人類生活中的操縱:目前國外各種家用電器已普通採用單片機代替傳統的控制電路。
5、在此外方面的操縱:單片機除以上各方面的操縱,它還遍布操縱於辦公自動化范圍、商業營銷范圍、汽車及通信、計較機外部裝備、暗昧控制等各范圍中。
以上就是為大家整理的關於單片機含義及其具體操縱教程的全部內容了。此外小編還額外為大家整理了單片機的優點:低電壓、低功耗、集成度高、可靠性高、體積小、控製成果強等。希望通過這篇文章能夠給想要了解單片機相關知識的朋友帶來一些幫助。另外大家如果想了解更多單片機的知識可以通過圖書查閱、網路查閱等方式。
G. 51單片機的八個LED循環點亮,如何寫代碼
// 51單片機控制八個發光二極體 左右循環。
#include<reg52.h>改源
#define uchar unsigned char
#define uint unsigned int
unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改變這里 LED 各種花樣
uchar t,i;
void main()
{
TMOD=0x10;
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
EA=1;
ET1=1;//開定時器襲辯1中核禪態斷
TR1=1;//啟動定時器1
t=0;
i=0;
while(1)
{
}
}
void timer1() interrupt 3
{
TH1=(65535-50000)/256; // 50ms一次
TL1=(65535-50000)%256;
t++;
if(t==20)
{
t=0;
P2=TAB[i];
i++;
if(i==18) { i=0;}
}
}