① 單片機實驗數據排序
原發布者:瀚海湛藍
實驗一、數據排序實驗一、實驗目的熟悉8031指令系統,掌握程序設計方法。二、實驗內容編寫並調試一個排序子程序,其功能為用冒泡法將內部RAM中幾個單元位元組無符號的正整數,按從小到大的次序重新排列。三、實驗程序框圖NNN四、實驗步驟1把8032片內RAM區50H—5AH中放入不等的數據(用寄存器讀寫方法)。2用連續運行方式從起始地址0100H開始運行程序(輸入0100後按EXEC鍵)。3排序結束,顯示「P.」。4用寄存器讀寫方法檢查50—5AH中內容應從小到大排列。五、參考程序DORDE:MOVSP,#60H;設置棧指針MOVR3,#50HDORDE1:MOVA,R3MOVR0,A;數據指針傳送到R0MOVR7,#0AH;長度送到R7CLR00H;清零標志位MOVA,@R0DORDE2:INCR0MOVR2,ACLRC;清零進位標志MOV22H,@R0CJNEA,22H,DORDE3;是否相等SETBCDORDE3:MOVA,R2JCDORDE4;小於或等於不交換SETB00HXCHA,@R0DECR0XCHA,@R0;大於交換位置INCR0DORDE4:MOVA,@R0DJNZR7,DORDE2JB00H,DORDE1;未完繼續MOVR0,#7EH;完,關顯示器前三位MOVA,#0FFHMOVR4,#06HDORDE5:MOV@RO,ADECR0DJNZR4,DORDE5MOV7EH,#0CH
② 單片機實驗箱的實驗項目
(一)軟體實驗
(1)清零程序;
(2)拆字程序;
(3)拼字程序;
(4)數據區傳送子程序;
(5)數據排序實驗;
(6)查找相同數據個數;
(7)無符號雙位元組快速乘法子程序;
(8)多分支程序;
(9)脈沖計數實驗;
(10)電腦時鍾實驗。
(二)硬體實驗
(1)P1口亮燈實驗;
(2)P1口轉彎燈實驗;
(3)P3.3口輸入,P1口輸出實驗;
(4)工業順序控制實驗;
(5)8255 A、B、C口輸出方波實驗;
(6)8255 PA口控制PB口;
(7)8255控制交通燈;
(8)簡單I/O擴展實驗;
(9)A/D0809轉換實驗;
(10)D/A0832轉換實驗;
(11)8279鍵盤顯示實驗;
(12)通用列印機實驗;(列印機選配)
(13)微型列印機列印字元、曲線、漢字實驗;(列印機選配)
(14)I2C儲存卡讀寫實驗;
(15)繼電器控制實驗;
(16)步進電機控制;
(17)8253方波實驗;
(18)小直流電機調速實驗;
(19)16*16 LED點陣顯示實驗;
(20)128*64 LCD液晶顯示實驗;
(21)8250可編程非同步通訊介面實驗(自發自收);
(22)8251可編程通訊介面實驗(與PC機);
(23)單片機RS232/485串列發送實驗(雙機通訊);
(24)單片機RS232/485串列接收實驗(雙機通訊);
(25)溫度實驗;
(26)壓力實驗;
(27)DS18B20單匯流排數字溫度感測器實驗;
(28)紅外線遙控通信實驗;
(29)PWM脈沖寬度調制實驗;
(30)射極跟隨器實驗;
(31)電子音樂演奏實驗。
(三)擴展卡實驗(選配)☆
1、KZ-1擴展卡完成以下實驗:
(32)MAX813看門狗實驗
(33)74LS165並轉串實驗
(34)74LS164串轉並實驗
(35)查詢式鍵盤實驗
(36)74LS138解碼實驗
2、KZ-2擴展卡完成以下實驗:
(37)LM331 V/F轉換實驗
(38)LM331 F/V轉換實驗
(39)光耦隔離模塊實驗
3、KZ -3擴展卡完成以下實驗:
(40)串列EEPROM 93C46讀寫實驗
(41)I2C AT24C02讀寫實驗
(42)TLC549串列A/D轉換實驗
(43)TLC5615 10位D/A串列轉換實驗
(44)PCF8563 I2C日歷時鍾實驗
4、KZ -4擴展卡完成以下實驗:
(45)ISD1730語音錄放實驗
5、CAN匯流排擴展卡:
(46)CAN匯流排通訊介面實驗
6、TCP/IP乙太網擴展卡
(47)乙太網TCP/IP協議介面實驗
7、USB2.0卡
(48)USB2.0通訊介面實驗。
8、1032擴展卡:
Lattice公司:Lattice1032E晶元實驗開發。
9、1K30擴展卡:
Atera公司:EP1K30TC144晶元實驗開發。
10、C8051F020擴展卡+DICE-EC5模擬器:
C8051F020是完全集成的混合信號系統級MCU晶元。下面列舉了一些主要晶元資源:
(1)高速流水線結構的8051兼容的CIP-51內核(最大25MIPS);
(2)全速非侵入式的系統調試介面(片內);
(3)真正12位100ksps的8通道ADC,帶PGA和模擬多路開關;8位500ksps的8通道ADC;
(4)兩個12位DAC,可編程更新時序;
(5)64K位元組可在系統編程的FLASH存儲器;
(6)4352(4096+256)位元組的片內RAM;
(7)可定址64K位元組地址空間的外部數據存儲器介面;
(8)硬體實現的SPI,SMBus/IIC和兩個UART串列介面;
(9)5個通用的16位定時器;
(10)具有5個捕捉/比較模塊的可編程計數器/定時器陣列;
(11)片內看門狗定時器,2個比較器,VDD監視器和溫度感測器;
(12)64個I/O埠;
(13)-40~85度工業級溫度范圍;
(14)2.7V~3.6V工作電壓,100腳TQFP封裝;
11、DICE-DAQ數控式創新實驗平台擴展卡(實驗對象通過軟體模擬)
閉環控制
(1)機器人掃地雷實驗;
(2)刀庫捷徑選擇實驗;
(3)四層電梯實驗;
(4)四級傳送帶實驗;
(5)郵件分揀實驗;
(6)水塔水位控制實驗;
(7)交流電機Y/△起動實驗;
開環控制:
(8)交通信號燈實驗;
(9)步進電機實驗;
(10)舞台燈實驗;
(11)LED顯示實驗;
(12)液體混合裝置實驗;
(13)八通道邏輯分析實驗;
(14)溫度壓力實驗;
(15)連線自檢實驗;。
③ 要做這樣一個單片機實驗:類似鼓風機向上吹起乒乓球,乒乓球停會在一高度,但並不穩定,而是在晃動,
不知道你是想做一個固定高度停止還是需要做一個可調整高度讓乒乓停止呢。
如果是固定高度的話,在適當高度設置一個光電檢測單元,當乒乓達到高度時候出發單元,程序控制鼓風機減小風力,使向上的風力跟乒乓的重力達到平衡就可以使乒乓停住了。
如果是可調高度的,可能會用到類似光柵尺的測量元件,計算出乒乓的高度,然後觸發程序控制懸停。
聽你說是在做單片機實驗,估計要准確計算懸停的時候所用的風力(即鼓風機轉速)有一定困難,可以通過實際實驗來測出一個合適的值,高於這個值乒乓上升,低於這個值乒乓就會下降了。
由於沒有具體做過只是一個大概思路,可以大家討論下
④ 單片機流水閃爍燈的實驗目的
學習基礎知識。
⑤ 51單片機小燈實驗
給你第一用匯編第二用C吧,另一半自己搞定。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP:
MOV P0,A
LCALL DELAY
CLR C
RLC A
DJNZ R2,LOOP
SJMP $
DEALY:
MOV R3,#200
DELAY1:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DELAY1
RET
END
#include<reg51.h>
#define uchar unsigned char
uchar num;
sbit LED=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=200)
{
num=0;
LED=~LED;
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
LED=0;
while(1);
}
⑥ 51單片機 水滴實驗(LED小燈水滴變大下落,帶拖尾效果)程序看不太懂,能解釋下具體的實現過程嗎
單片機學了一圈,回過頭來才看明白這個東西
水滴變大,就是用了pwm波的占空比,亮的次數一次比一次多的話,那麼就會變的越來越亮的,,因為在252除4的63次循環中,每次都會k++,那麼下次的時候執行db0=1的時間就會比上一次的時間短,那麼就會變大了,不過這個程序這么寫看著很復雜,你實現一個燈的亮度變化和,8個燈依次的亮度從大到小就能看懂這個了,等到水滴下落的時候,在254次的循環中,每次遇到加速的時間數組的時候就要變化各個燈的亮度,來模擬下落,然後後面的64的循環就是在64次中,用占空比實現到底是哪個燈最亮,哪個比前個暗一點,然後k的15次循環就是碰到該改變P0的值的一次了,這樣就會按照a的數字改變值
⑦ 用單片機做一個簡單的實驗,控制電路什麼的,不要像畢業設計那樣復雜的。
看這篇帖子的,我想都是電子愛好者或電類專業學生。不知道大家都處於什麼一個階段,這篇帖子是寫給入門者的,要解決一個問題:初學者應重點掌握什麼電子知識,大學階段如何學習?
先說點貌似題外的東西——3個謬論。
謬論一:高中老師常對我們說,大家現在好好學,考上了大學就輕鬆了,愛怎麼玩怎麼玩。這真是狗屁。別的專業我不好說,電氣、電子、電力、通信、自動化等電類專業,想要輕松那是不可能地(當然你是天才就另說),專業課上講的東西對決大多數人來說那是雲里霧里,從來都是一知半解,需要你課下大量時間精力地消化。有些東西甚至需要你若干年後在工作中遇著時才回過味:「哦,原來以前學的那東西是干這使的。」你要能想得起,並知道怎麼回頭去補,就算是上學時專業課學得很扎實了。
謬論二:填志願時經常有人對我們說:專業不重要,學校最重要,進了個好學校想學什麼再學。這亦是狗屁。進了學校,本專業的課程就可能會壓得你喘不過氣來,還有多少人有時間和毅力選修第二專業?而所學專業幾乎就是決定了你今後一生的職業生涯。而學校,說實在話本科階段我覺得從老師那學到的東西各校間差別不是很大。課上講的大同小異,課下也不會有什麼好老師給你單獨指導和點撥,若能遇著,那是你的幸運。越牛的學校的越牛的老師就越忙,不要指望他們會在教學上花多少心思,更不要指望他們對你另眼相看。反倒是一些普通院校的小老師們可能跟學生走得更近,輔導更多些,雖然他們可能水平一般,但對於你大學的學習來說還是足夠的。綜上所述,我覺得對於一個電子愛好者來說,成為一名普通重點大學的電子系學生比成為北大的哲學系學生更重要。當然看帖的應該大多數都是學電的,那恭喜你,這個專業不錯的,雖不是什麼「朝陽產業」,但絕對是個「常青行業」。
謬論三:上了大學,可能又有不少人對你說,在大學專業不重要,關鍵的是學好計算機和英語,這樣就不愁找不到好工作了。這也是屁話。你要明確一點:你將來不是純靠英語吃飯的,也不是做編程、搞軟體開發或動畫創作的。我是想說:若果你性格偏內向沉穩、肯鑽研、愛好電子行業,將來想從事電子設計和研發工作,那你一定要學好專業課。當然英語也很重要,但以後工作中用得多的是你的專業英語,即能讀懂英語技術文檔,而不是跟別人比你口語多正宗多流利。至於計算機,那就是一工具,不要花太多時間去學photoshop、3dmax、Flash、網頁製作等流行軟體,這些在你今後的工作中用不著,也會牽扯你大量時間精力。好鋼用在刀刃上,多進進實驗室多搭搭電路吧。當然,電類學生對電腦也有特殊要求,那就是用熟Protel、
Multisim,學好匯編語言、C語言、選學PLD相關軟體。任務也是很重的。
以上說了3個謬論,下面言歸正傳吧。那麼進了大學,讀了電類專業,這4年你該學些什麼呢?
首先要了解:電類專業可分為強電和弱電兩個方向,具體為電力工程及其自動化(電力系統、工廠供變電等)專業屬強電,電氣工程及其自動化以強電為主弱電為輔,電子、通信、自動化專業以弱電為主。其他更進一步的細分要進入研究生階段才劃分。但無論強電還是弱電,基礎都是一樣的。
首先高數是要學好的,以後的信號處理、電磁場、電力系統、DSP等不同方向的專業課都用得著。
專業基礎課最重要的就是電路分析、模擬電路、數字電路。這3門課一定要學好。這3門課一般都是大一下學期到大三上學期開設,對大多數對電子知識還了解不多的同學來說,通常是學得一知半解,迷迷糊糊。所以,最好是在開課之前或是開課的同時讀一兩本通俗淺顯的綜合介紹電子知識的書籍,對書中的知識你不需要都懂,能有個大致感覺就行。
對這這種入門讀物的選擇很重要,難了看不懂可能興趣就此喪失或備受打擊,反而事與願違。在此推薦一本《電子設計從零開始》(楊欣編著,清華大學出版社出版),該書比較系統全面地介紹了電子設計與製作的基礎知識,模電、數電、單片機、Multisim電路模擬軟體等都有涉及,一冊在手基本知識就差不多了,關鍵是淺顯易懂,有一定趣味性。另外科學出版社引進出版的一套小開本(32開)電子系列圖書也不錯,是日本人寫的,科學出版社翻譯出版,插圖較多,也較淺顯,不過這一系列分冊較多,內容分得較細。
除了看書,還要足夠重視動手實踐。電路、模電、數電這些課程進行的同時都會同時開設一些課程試驗,珍惜這個動手機會好好弄一弄,而不要把它當作一個任務應付了事。跟抄作業一樣,拷貝別人的試驗結果在高校中也是蔚然成風,特別是幾個人一個小組的實驗,那就是個別勤奮好學的在那折騰,其他人毫不用心地等著出結果。
我只想說,自己動手努力得來的成果才是甜美的,那種成就感會讓你充實和滿足。游手好閑的,到臨近畢業找工作或在單位試用時,心中那種巨大的惶恐會讓你悔不當初。這種教訓太多了,多少次我們都是蹉跎了歲月才回過頭來追悔莫及。除了實驗課好好准備好好做之外,許多學校都設有開放性實驗室,供學生平時課余自覺來弄弄。珍惜這種資源和條件吧,工作後不會再有誰給你提供這種免費的午餐了。
當然有些學校沒有這么好的條件,或缺少器件,那同學們就在電腦上模擬一把試驗平台吧,就是學好用好Multisim軟體。Multisim是一種電路模擬軟體,筆者上學時叫做EWB,後來隨著版本更新,先後更名為Multisim2001、Multisim7、Multisim8。這個軟體可模擬搭建各種模擬電路和數字電路,並可觀測、分析電路模擬結果。大夥可以把模電、數電中學習的電路在這軟體裡面模擬一下,增加感性認識,實驗前後也可把試驗電路在軟體里模擬,看跟實際試驗結果有多大差別。可以說,只要你是學電的,這個小軟體就是你上學時必須掌握的,對你的學習助益很大。另一個必須掌握的軟體那就是protel了。
上學時,從小學期的綜合設計實驗到畢業設計,最後都會要求你用Protel繪出設計的電路原理圖和PCB版;工作後,Protel也是你必須掌握的基本技能,部分同學畢業後一兩年內的工作,可能就是單純地用這軟體畫板子。Protel的版本也走過了Protel98、Protel99、Protel99SE、ProtelDXP、Protel2004的發展道路。Protel99SE、ProtelDXP、Protel2004這三個版本現在用得最多,目前許多學校教學或公司內工程師使用的都還是Protel99SE,當然若作為新的自學者直接從Protel2004學起似乎好一些。
綜上所敘,作為最基本的EDA(電子設計自動化)軟體,Multisim和Protel是所有電類學生在上學時必須掌握的。其他的如Pspice、Orcad、SYstemview、MATLAB、QuartusII等等,需根據不同的專業方向選學,或是在進入研究生階段或工作後在重點學習使用。那Multisim和Protel好學么?入門應該問題不大,讓師兄師姐指導指導,或是找一兩本入門書看一看就OK了。這里推薦一本《電路設計與模擬——基於Multisim 8與Protel 2004》(也是楊欣編著,清華社出版),作為這兩款軟體的入門學習挺不錯的,關鍵是一本書包含了兩款軟體學習,對窮學生來說比較劃算,若是花錢買兩本書分別去學這兩個軟體,就不值了,因為Multisim的入門不是很難。另用Protel畫PCB電路板學問挺大的,有必要多看一些技術文檔或是買一本高級應用類的圖書。
2.大三大四(學習專業課,嘗試應用)
進入大三,就涉及到專業課的學習了,本文只討論以應用為主的專業課,其他如《電力系統分析》、《電機學》、《自控原理》、《信號與處理》、《高電壓》、《電磁場》等等以理論和計算為主的專業課,咱就不多提了。當然這些課對你今後向研究型人才發展很重要,也都很讓人頭疼,要有建議也只能說是努力學、好好學,懂多少是到少(不過別指望全都懂),以後工作或接著深造用得著時再回過頭來接著補接著學,那時有工作經驗或接觸多了有感性認識,可能學著就容易些了。
那以應用為主的專業課又有哪些呢?不同專業方向有不同的課程,很難面面俱到。這里先簡單羅列一下,有微機原理與介面技術(也稱單片機)、開關電源設計、可編程邏輯器件(PLD)應用、可編程邏輯控制(PLC)應用、變頻器應用、通信電路、數字集成電路分析與設計、DSP、嵌入式等等。可能有同學要問:這么多東西,大學階段要想都學好不容易吧?答案是不僅是不容易,而且是不可能。這些技術每一門展開來都是復雜的一套知識,可以說,你只要精通其中一門,就可以到外邊找個不錯的工作了。
而且在大學階段,這些課程也不是都要學的,而是針對不同專業方向選修其中幾門(具體選哪幾門,多研究研究你們各自的專業培養方案,多請教老師),學的時候爭取能動基本用法即可,真正的應用和深入是要到工作後的;當然你若很勤奮或有天賦,能熟練掌握某一門達到開發產品的程度,那畢業後找個好工作就輕而易舉了。到這里我們需要再明確一點:電子領域知識繁多、浩如煙海,所以一般搞硬體的公司都有較多的員工,一個研發項目是多人細致分工、共同完成的,所以我們經常會聽到團隊意識這個名詞。因為一個人的能力有限,不可能掌握所有的知識。比如一些人專門負責搞驅動,一些人專門從事邏輯設計,一些人專門搞高頻無線,一些人專門搞測試,一些人專門設計外殼,一些人專門設計電路板等等。
看到這里可能有的同學頭都大了:那說來說去大學階段到底究竟應該學些什麼呢?說實話寫到這里我的頭也大了,電子設計涉及方方面面的東西太多了,實在不是一篇文章甚至一本書能說得清楚的。所以我決定剔除這些生澀的課程名目,大致說一下我所認為的一個電類學生或是想要成為電子工程師的自學者應該掌握的基本的專業技能。
現在應該說單片機不知道那是相當嚴重的問題。單片機的知識和應用的技巧成了求職面試中必備的問題。但是單片機的知識較難入手,但是你如果看了《51單片機應用從零開始》(清華大學出版社,王玉鳳,劉湘黔,楊欣編著)就不是這么感覺的了,這是一本中學生都讀得懂的單片機基礎和應用教程。這本教程凝結了國內幾所重點大學中站在科研、教學第一線教師們的心血,也得到了英國劍橋大學、牛津大學、倫敦帝國理工大學、倫敦大學、加的夫大學等世界著名大學多位博士生導師的指導意見。經過多位學者的精心裁剪,本書的脈絡、線索、內容才真正符合讀者學習單片機的需要。
《51單片機應用從零開始》以生動活潑、平實易懂的語言講述。盡量讓單片機學習過程中不斷涌現的專業詞彙,在不知不覺的情況下通過多方面的使用而掌握。本書沒有用專業的描述方法來敘述知識點,取而代之的是以「講故事」的形式把應該了解的內容和盤托出。
十分注重基礎知識的鋪墊。在單片機學習之前,需要對計算機原理和電子技術有一定的了解。本書考慮到不同讀者的知識背景不同,把這兩個基礎理論融入到了單片機的講解當中,使閱讀起來感覺不到有什麼障礙。
構建了全面的學習支撐體系。每章最後的「實例點撥」除了鞏固每章的學習知識外,更重要的是開辟單片機應用的視野;再加上「器件介紹」環節,補足單片機從基礎到應用所需要的知識;以及豐富的附錄內容可作為學習和應用單片機的強力參考。這便構建了一個完整學習單片機的支撐體系。
既授人以魚,也授人以漁。書中有充足的實例應用,可以用在單片機實驗、單片機課程設計當中。但更重要的是,這些實例前後都伴隨著仔細的講解,一個例子下來就能摸清來龍去脈。
敘述的內容全面、新穎、權威。嚴格按照單片機官方的技術參考對其進行講解,包括所有51單片機學習與應用需要的基礎知識。無論敘述的內容或是實例,都是目前世界上單片機應用的主流。
全書渾然一體。雖然每章各具標題,實際上互有聯系。而這種聯系如果在書中忽略不談,則會對理解和記憶產生障礙。本書在正文中多次有知識點的相互映射,這不但能加深前後內容的聯系,而且能深化理解與記憶。
我認為:除了最初提到的電路分析、模擬電路、數字電路、單片機外,應了解並掌握電子元器件識別與選用指導、基本儀器儀表的使用、一些常用電路模塊的分析與設計、單片機的應用、PLD的應用、模擬軟體的應用、電路板設計與製作、電子測量與電路測試。
電子元器件的識別與使用就不用說了,這是元素級的基礎,不過要想掌握好也並不容易,一些電子系學生畢業了,還認不出二極體、三極體實物、分不清電解電容的正負極等等,也不是沒有的事。還是一句話,多進進實驗室,多跑跑電子市場,多看看書。
儀器儀表的使用,大學的實驗課中你至少會用過數字萬用表,波形發生器、電源、示波器、小電機、單片機模擬機,至少要把這些東西的接線方法和用法弄懂吧。
常用電路模塊也是包羅萬相,各種放大電路、比較器、AD轉換電路、DA轉換電路、微分電路、積分電路,還有各種數字邏輯單元電路等等,只能說,大致了解吧,並學會怎麼去查資料、查晶元查管腳。最基本的,做實驗或課程設計中用到的各種晶元要弄熟。
單片機,這是應該掌握的。時下單片機種類繁多,但各大小企業用得最多的還是51系列單片機,而且價格便宜、學習資料也最全,故給自學者推薦。當然各學校開課講的單片機型號會有所不同,沒關系,學好單片機編程,學好了一種,再學別的單片機就容易了。
PLD(可編程邏輯器件),一種集成電路晶元,提供用戶可編程,實現一定的邏輯功能。對可編程邏輯器件的功能設定(即要它實現什麼功能)要有設計者藉助開發工具,通過編寫程序來實現,這跟單片機類似。開發工具可學習Altera公司的Quartus II軟體(這是該公司的第4代PLD開發軟體,第3代是MAX+PLUS II軟體)。編程語言學習硬體描述語言VHDL或Verilog HDL。
模擬軟體最基本的就是前面說的Multisim了,另外還可學MATLAB。其他的試專業情況選學或是工作後學。電路板設計與製作主要是用Protel軟體輔助進行。這在前面已有介紹,讀者應該也比較熟悉。
最後建議同學們積極與各類電子競賽賽事,參加一場比賽一個項目做下來,電子設計的一個流程和各環節的基礎知識就能串起來了,對知識的融會貫通及今後走向工作崗位都有莫大裨益。
以上這些東西我說得籠統,深入下去又是一大堆要學的東西。還是那句話,多啃書本、多實踐!清華大學出版社有一套「電子電路循序漸進系列教程」是按照上面我所講的那個思路出的,可惜好像還沒出全,現在好像只有《單片機在電子電路設計中的應用》、《電路設計與制板——Proetl應用教程》、《模擬軟體教程——Multisim和MATLAB》、《常用電路模塊分析與設計指導》幾本。另外聽聽你們老師的意見、師兄師姐的意見,問問他們應讀些什麼書,當然也不能盡聽盡信,翻開一本書我想你先大致看看他講得是否通俗,自己琢磨著能看懂幾分?我想能有5分懂這本書就值得一看了,示自己現階段的知識情況,太淺顯的書不用看了,太深的書也不要去看,看得迷迷糊糊還打擊自信心喪失了興趣。
好了,就此停筆吧。本來是要寫個書目推薦,可干癟癟的羅列一堆書目有什麼意義?還是寫下這些字,讓同學們自己去思考去選擇去深入吧,希望能對你們有所幫助。
最後一句老生常談也是我的切膚之痛:大學四年會一晃而過,要學的東西太多太多,不要虛度光陰。及時當努力,歲月不待人!
另外,虛機團上產品團購,超級便宜
⑧ 單片機實驗注意事項
單片機開發規則與注意事項
隨著大規模集成電路技術的發展,單片微型計算機也隨之大發展,各種新穎的單片機層出不窮。單片機具有體積小、重量輕、應用靈活且價格低廉等特點,廣泛地應用於人類生活的各個領域,成為當今科學技術現代化不可缺少的重要工具。
單片機系統的開發融合了硬體和軟體的相關技術。要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。
正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。
要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。
單片機開發規則與注意事項
設計滿足要求的最精簡的系統
正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。
看門狗電路通常是一塊在有規律的時間間隔中進行更新的硬體。更新一般由單片機來完成,如果在一定間隔內沒能更新看門狗,那看門狗將產生復位信號,重新復位單片機。更新看門狗的具體形式多是給看門狗晶元相關引腳提供一個電平上升沿或讀寫它的某個寄存器。使用看門狗電路將在單片機發生故障進行死機狀態時,重新復位單片機,像EN8F154本身就帶有看門狗。
確定系統的復位信號可靠
一般在單片機的數據手冊(Datasheet)中都會提到該單片機需要的復位信號的要求。一般復位信號的寬度應為。復位電平的寬度和幅度都應滿足晶元的要求,並且要求保持穩定。還有特別重要的一點就是復位電平應與電源上電在同一時刻發生,即晶元一上電,復位信號就已產生。不然,由於沒有經過復位,單片機中的寄存器的值為隨機值,上電時就會按PC寄存器中的隨機內容開始運行程序,這樣很容易進行誤操作或進入死機狀態。
確定系統的初始化有效
系統中的晶元以及器件從上電開始到正常工作的狀態往往有一段時間,程序開始時延時一段時間,是讓系統中所有器件到達正常工作狀態。究竟延時多少才算合適?這取決於系統的各晶元中到達正常工作狀態的時間,通常以最慢的為准。一般來說,EN8F154的延時20-100毫秒已經足夠。對於系統中使用嵌入式MODEM等「慢熱」型的器件來說,則應更長。當然,這都需要在系統實際運行中進行調整。
當然,模擬是單片機開發過程中非常重要的一個環節,除了一些極簡單的任務,一般產品開發過程中都要進行模擬,模擬的主要目的是進行軟體調試,當然藉助模擬機,也能進行一些硬體排錯。一塊單片機應用電路板包括單片機部份及為達到使用目的而設計的應用電路,模擬就是利用模擬機來代替應用電路板(稱目標機)的單片機部份,對應用電路部份進行測試、調試。模擬有CPU模擬和ROM模擬兩種,所謂CPU模擬是指用模擬機代替目標機的CPU,由模擬機向目標機的應用電路部份供給各種信號、數據,進行調試的辦法。
⑨ 簡單的單片機實驗題目!編了下,不知道對不對!麻煩指點!
本題目涉及到兩個片外地址。
傳統的單片機,只有一個片外數據指針DPTR,地址的處理就比較麻煩。
稍新一些的單片機,如AT89S52,就有兩個DPTR。
樓主的題目,像是學校裡面的作業,一般是不使用兩個DPTR的。
本題目,數據量很小,可以先全部倒到片內,再傳送到片外的目的地。
這樣便於大批數據的修改,但是,為了解決現在的小問題,程序未免嫌長。
還是在樓主的程序上,稍加修改。
程序如下:
;
MOV DPTR, #1000H ;第一塊地址
MOV R7, #10H ;第二塊地址
MOV R6, #10H ;此處修改了,原為00H
MOV R2, #8
LOOP:
MOVX A, @DPTR ;取第一地址內容
MOV B, A ;暫時存放
PUSH DPH
PUSH DPL
MOV DPH, R7
MOV DPL, R6 ;DPTR = 1010H
MOVX A,@DPTR ;取第二地址內容
XCH A, B
MOVX @DPTR, A ;交換存放
INC DPTR
MOV R7, DPH ;保存第二地址
MOV R6, DPL
POP DPL ;恢復第一地址
POP DPH
XCH A, B
MOVX @DPTR, A ;將首地址1010H的內容放到1000H
INC DPTR
DJNZ R2,LOOP
;完