導航:首頁 > 操作系統 > 51單片機學習實驗

51單片機學習實驗

發布時間:2023-03-07 11:02:13

① 51單片機 水滴實驗(LED小燈水滴變大下落,帶拖尾效果)程序看不太懂,能解釋下具體的實現過程嗎

單片機學了一圈,回過頭來才看明白這個東西
水滴變大,就是用了pwm波的占空比,亮的次數一次比一次多的話,那麼就會變的越來越亮的,,因為在252除4的63次循環中,每次都會k++,那麼下次的時候執行db0=1的時間就會比上一次的時間短,那麼就會變大了,不過這個程序這么寫看著很復雜,你實現一個燈的亮度變化和,8個燈依次的亮度從大到小就能看懂這個了,等到水滴下落的時候,在254次的循環中,每次遇到加速的時間數組的時候就要變化各個燈的亮度,來模擬下落,然後後面的64的循環就是在64次中,用占空比實現到底是哪個燈最亮,哪個比前個暗一點,然後k的15次循環就是碰到該改變P0的值的一次了,這樣就會按照a的數字改變值

② 51單片機流水燈安裝與調試的過程

利用實驗室提供的單片機實驗開發板的最小系統電路模塊、流水燈電路模塊,以及Protues模擬軟體搭建電路,實現I/O口循環流水燈演示效果。
LED流水燈控制電路如圖2-1所示,八個LED燈D0-D7(可選擇LED-RED)陽極接到+5V,陰極通過300歐姆電阻分別接到單片機的P1.0-P1.7八個IO口上。I/O口循環流水燈效果實現流程如圖2-2所示,依次從第一盞燈開始,分別點亮每一盞燈,中間調用延時子函數便可使得流水燈的效果清晰可見。點亮LED燈的具體實現方法與上節相同,只需讓相應的IO口輸出低電平即可,程序實現代碼已給出。按照上節給出的項目開發流程,從模擬電路搭建到程序編寫,再到模擬調試以及最後的實物調試完成循環流水燈的實現。

③ 怎樣學習51單片機

單片機學習如何入門LUOKUI很多搞電子類行業的朋友都夢想自己成為搞硬體的高手,然而搞硬體難就難在沒有頭緒,學習硬體技術找到一個合適的入手點是最重要的。比較流行的硬體技術有數字系統設計、模擬電路系統設計、射頻電路系統設計以及以上三類的混合。模擬與射頻的設計入門門檻比較高而且市場份額比較小,因此學習硬體技術從數字電路入手是最容易而且是最具基礎性的,而數字電路的設計又以單片機的學習為基礎,學習單片機不僅僅是學習一項技術,更重要的是建立起一種數字系統設計的概念,為以後學習其他高檔數字器件以及模擬、射頻電路打下基礎。現在單片機的主流仍然是8位單片機(例如MCS51、AVR、PIC、NEC、瑞薩系列)以及少數16位單片機(例如MSP430、凌陽系列)。在學校的單片機教學中,幾乎都是以MCS51為主。但實際應用中卻不是這樣,在國外的DIY愛好者中,PIC單片機是最流行的;在國內,AVR單片機非常火。所以我要先談談單片機學習的兩種路子。其一是傳統的穩扎穩打型:從MCS51的匯編語言設計以及硬體電路設計開始入手,匯編語言程序設計熟悉了之後(這大概需要半年至一年的時間),對MCS51的內部硬體構成也有了很深的理解,這時再學習51單片機C語言設計(因為實際的大工程不可能用匯編完成),51的資源很有可能不夠用,就要換用其他型號的單片機(例如AVR、430)。這種路子的優點在於基礎厚實,MCS51的匯編語言運用熟練之後,學習其他單片機會很容易上手。但從匯編向C語言的思維轉變是一個比較痛苦的過程。其二是自頂向下型:選定一種實際工程中比較實用的單片機,直接學習怎樣使用C語言來開發它,在較短的時間內掌握對其IO口、定時器、中斷的操作,然後再慢慢了解晶元內部的硬體構成細節。這種路子的優點有很多:初入門時不需要花比較長的時間去學習單片機內部硬體構成結構之類很枯燥的東西,只要明白C語言的變數與單片機的IO口等模塊的寄存器、一個函數與單片機的一項功能、順序語句與單片機的順序輸出、條件語句與單片機的輸入輸出間條件關系、循環語句與單片機的反復型輸出是怎樣映射的就可以完成很多範例項目的開發,可以保持住學習的興趣;可以直接學習實際工程中用得到的東西,不必完成從MCS51向其他單片機的轉變。我推薦大多數的,尤其是已經參加工作的初學者朋友,走第二種路子,而且推薦大家採用AVR系列單片機中的ATmega16來入門。因為AVR相比51和其他單片機有諸多優點。首先是最小系統設計容易,只需要連接電源、焊接晶振就可以工作,尤其是對時鍾精度要求不太高的話晶振都可以省去,因為AVR帶有內部RC振盪器,相比之下51單片機需要外接上電復位電路(AVR內部自帶這個電路而且性能比51的RC復位要好)、EA/VPP引腳要上拉、P0口要上拉等等,光建立最小系統就是很麻煩的一件事。其次很多概念初學者理解起來更容易,AVR的時鍾源(晶振、內部RC等)不經過分頻直接提供給CPU使用,例如AVR外接10MHz的晶振其CPU的時鍾周期就是1/10MHz=0.1uS,而51的時鍾源要12分頻後提供給CPU,12MHz的晶振對應的CPU時鍾頻率是1MHz,這一點尤其是在計算定時器相關的設置時AVR非常方便。第三,相比例如PIC、430等其他單片機,AVR既具有簡單的、可以自製的ISP下載線和Jtag模擬器,又有DIP直插的封裝形式,而且網路上AVR有關的中文資料非常多,尤其是有Atmel公司官方翻譯的中文技術文檔,大大方便初學者的入門。.第四,AVR的C語言編程與教科書上學習的C語言語法是幾乎一樣的,不像51的C語言,一些bit、srf之類的變數定義在教科書中是找不到的,在更高層次的ARM、DSP的C語言中也是沒有那樣用的,僅僅是51獨有的用法,尤其是bit變數的用法很「匯編化」,會給後續的嵌入式系統的程序設計形成不好的思維模式。而AVR的設計很入嵌入式系統設計的主流,有利於後續的發展。說了這么多「空洞」的東西,我們說點比較實在的吧,我也是初學者過來的,比較了解初學者的心理,恨不得你給他制定出第一步、第二步、第三步該干什麼,那我就按照這個模式講一下:Step1,准備萬用板三塊,查找Jtag、ISP的電路,焊接,用掉兩塊板;剩下的一塊用來焊接AVR的最小系統。Step2,在ATmega16的一個8位IO口上焊接8個LED(注意要串接220歐姆限流電阻哦)。Step3,寫一個流水燈的小程序。

④ 51單片機匯編語言編寫一個跑馬燈的程序,初學者做實驗用,具體要求如下,好了可以加分

程序1:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
LOOP:
MOV A,P2
MOV B,A
MOV P0,A
MOV P1,#0FFH
LOOP1:
LCALL DELAY
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
MOV A,P2
CJNE A,B,LOOP
SJMP LOOP1
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END
程序2:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
JNB P2.0,LOOP1 ;
JNB P2.1,LOOP2 ;
SJMP MAIN
LOOP1:
MOV P0,#0FEH
MOV P1,#0FFH
LOOP11:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.1,LOOP2
SJMP LOOP11
LOOP2:
MOV P0,#0FCH
MOV P1,#0FFH
LOOP21:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.0,LOOP1
SJMP LOOP21
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END

⑤ 51單片機流水燈實驗(我用的是手把手教你學單片機的教程)

呵呵,這個延時有點長哦,有10S,你耐心再看看,有沒有變化,如果再沒變化,你可以軟體模擬一下那個i變數。看他是不是能加到10000,。還有,學51單片機的話建議你去學 郭天祥十天學會51單片機 那個很不錯。希望採納

⑥ 51單片機實驗程序

#include "REG52.H"

unsigned char Extep_Time ;

/*
* T0定時器初始化 //
*/
void SystemInit(void)
{
TMOD = 0x01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
ET0 = 1;
TR0 = 1;
EA = 1;
}

int main(void)
{
// IO初始化
P0 = 0xFF;
P1 = 0xFF;
P0 = 0xFF;
P1 = 0xFF;
// T0定時器初始化
SystemInit();
while(1);
}

/*
* T0定時器中斷服務程序
*/
void Timero_IRQ(void) interrupt 1
{
Extep_Time++;
if(Extep_Time == 20)
{
Extep_Time = 0;
P0 = ~P0;
}
}

⑦ 51單片機實驗(關於定時器計數器)

6mz的晶振 可算出一個時鍾周期為2微秒,200毫秒去除一下2微秒就是10000,然後吧10000取16進制為 27A0 ,用 FFFF減27A0再加1 得 C860,用定時方式一,TL0 ,#60H
TH0, #C8H

⑧ 51單片機應該做哪些實驗

如果是剛開始學習的話,那就買一塊開發板,比如篤行之家的,一般的開發板都會配套好多實驗,你可以先學習基本的實驗,如流水燈,數碼管,點陣,lcd顯示,紅外,AD/DA,繼電器,蜂鳴器等,學完了之後就可以拔高練習。

閱讀全文

與51單片機學習實驗相關的資料

熱點內容
歐姆龍plc編程第36講 瀏覽:907
我的世界如何將一個伺服器弄崩 瀏覽:6
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603
程序員和碩士 瀏覽:951