導航:首頁 > 操作系統 > 小學生單片機社團測試

小學生單片機社團測試

發布時間:2023-08-12 20:14:28

1. 單片機實驗注意事項

單片機開發規則與注意事項

隨著大規模集成電路技術的發展,單片微型計算機也隨之大發展,各種新穎的單片機層出不窮。單片機具有體積小、重量輕、應用靈活且價格低廉等特點,廣泛地應用於人類生活的各個領域,成為當今科學技術現代化不可缺少的重要工具。

單片機系統的開發融合了硬體和軟體的相關技術。要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。

正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。

要完成單片機系統的開發,用戶不僅需要掌握編程技術,還需要針對實際應用選擇合理的單片機晶元和外圍器件,以此為基礎,設計硬體電路。

單片機開發規則與注意事項

設計滿足要求的最精簡的系統

正確估計單片機的能力,知道單片機能做什麼,最大程度的挖掘單片機的潛力對一個單片機系統設計者來說是至關重要的。單片機的能力的關鍵就在軟體設計者編寫的軟體上。只有充分地了解到單片機的能力,才不會做出「冗餘」的系統設計。而採用許多的外圍晶元來實現單片機能實現的功能。這樣做,即增加了系統成本,也可能會降低了系統的可靠性。

看門狗電路通常是一塊在有規律的時間間隔中進行更新的硬體。更新一般由單片機來完成,如果在一定間隔內沒能更新看門狗,那看門狗將產生復位信號,重新復位單片機。更新看門狗的具體形式多是給看門狗晶元相關引腳提供一個電平上升沿或讀寫它的某個寄存器。使用看門狗電路將在單片機發生故障進行死機狀態時,重新復位單片機,像EN8F154本身就帶有看門狗。

確定系統的復位信號可靠

一般在單片機的數據手冊(Datasheet)中都會提到該單片機需要的復位信號的要求。一般復位信號的寬度應為。復位電平的寬度和幅度都應滿足晶元的要求,並且要求保持穩定。還有特別重要的一點就是復位電平應與電源上電在同一時刻發生,即晶元一上電,復位信號就已產生。不然,由於沒有經過復位,單片機中的寄存器的值為隨機值,上電時就會按PC寄存器中的隨機內容開始運行程序,這樣很容易進行誤操作或進入死機狀態。

確定系統的初始化有效

系統中的晶元以及器件從上電開始到正常工作的狀態往往有一段時間,程序開始時延時一段時間,是讓系統中所有器件到達正常工作狀態。究竟延時多少才算合適?這取決於系統的各晶元中到達正常工作狀態的時間,通常以最慢的為准。一般來說,EN8F154的延時20-100毫秒已經足夠。對於系統中使用嵌入式MODEM等「慢熱」型的器件來說,則應更長。當然,這都需要在系統實際運行中進行調整。

當然,模擬是單片機開發過程中非常重要的一個環節,除了一些極簡單的任務,一般產品開發過程中都要進行模擬,模擬的主要目的是進行軟體調試,當然藉助模擬機,也能進行一些硬體排錯。一塊單片機應用電路板包括單片機部份及為達到使用目的而設計的應用電路,模擬就是利用模擬機來代替應用電路板(稱目標機)的單片機部份,對應用電路部份進行測試、調試。模擬有CPU模擬和ROM模擬兩種,所謂CPU模擬是指用模擬機代替目標機的CPU,由模擬機向目標機的應用電路部份供給各種信號、數據,進行調試的辦法。

2. 單片機溫度檢測的程序

你用的是DS18B20?這個程序你參考下#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit ds=P2^2; //溫度感測器信號線
sbit la=P2^6; //數碼管段選線
sbit wela=P2^7; //數碼管位選線
sbit beep=P2^3; //蜂鳴器
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
uint temp;
float f_temp;
uint warn_l1=23;
uint warn_h1=29;
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0xbf,0x86,
0xdb,0xcf,0xe6,0xed,
0xfd,0x87,0xff,0xef}; //不帶小數點的編碼
void delay(uint z)//延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void dsreset(void) //18B20復位,初始化函數
{
uint i;
ds=0;
i=103;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
}
bit tempreadbit(void) //讀1位函數
{
uint i;
bit dat;
ds=0;i++; //i++ 起延時作用
ds=1;i++;i++;
dat=ds;
i=8;while(i>0)i--;
return (dat);
}
uchar tempread(void) //讀1個位元組
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tempreadbit();
dat=(j<<7)|(dat>>1); //讀出的數據最低位在最前面,這樣剛好一個位元組在DAT里
}
return(dat);
}
void tempwritebyte(uchar dat) //向18B20寫一個位元組數據
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //寫 1
{
ds=0;
i++;i++;
ds=1;
i=8;while(i>0)i--;
}
else
{
ds=0; //寫 0
i=8;while(i>0)i--;
ds=1;
i++;i++;
}

}
}
void tempchange(void) //DS18B20 開始獲取溫度並轉換
{
dsreset();
delay(1);
tempwritebyte(0xcc); // 寫跳過讀ROM指令
tempwritebyte(0x44); // 寫溫度轉換指令
}
uint get_temp() //讀取寄存器中存儲的溫度數據
{
uchar a,b;

dsreset();
delay(1);
tempwritebyte(0xcc);
tempwritebyte(0xbe);
a=tempread(); //讀低8位
b=tempread(); //讀高8位
temp=b;
temp<<=8; //兩個位元組組合為1個字
temp=temp|a;
f_temp=temp*0.0625; //溫度在寄存器中為12位 解析度位0.0625°
temp=f_temp*10+0.5; //乘以10表示小數點後面只取1位,加0.5是四捨五入
f_temp=f_temp+0.05;
return temp; //temp是整型
}
////////////////////顯示程序//////////////////////////
void display(uchar num,uchar dat)
{
uchar i;
la=0;
P0=table[dat];
la=1;
la=0;

wela=0;
i=0XFF;
i=i&(~((0X01)<<(num)));
P0=i;
wela=1;
wela=0;
delay(1);
}

void dis_temp(uint t)
{
uchar i;
i=t/100;
display(0,i);
i=t%100/10;
display(1,i+10);
i=t%100%10;
display(2,i);
}
//////////////////////////////////////////////
void warn(uint s,uchar led) //蜂鳴器報警聲音 ,s控制音調
{
uchar i;i=s;
la=0;
wela=0;

// beep=0;
P1=~(led);
while(i--)
{
dis_temp(get_temp());
}
// beep=1;
P1=0XFF;
i=s;
while(i--)
{
dis_temp(get_temp());
}
}
void deal(uint t)
{
uchar i,k;
k=t/10;
if(k<warn_l1)
{
warn(40,0x01);

}
if(k>warn_h1)
{
warn(40,0x04);
}
else
{
i=40;
while(i--)
{
dis_temp(get_temp());
}
}
}
void xianshi(num)
{
uint m;
for(m=50;m>0;m--)
{
uchar shi,ge;
shi=num/10;
ge=num%10;

la=1;
P0=table[shi];
la=0;
P0=0xff;

wela=1;
P0=0xfe;
wela=0;
delay(10);

la=1;
P0=table[ge];
la=0;
P0=0xff;

wela=1;
P0=0xfd;
wela=0;
delay(10);
}
}
void anjian()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
warn_l1++;
if(warn_l1==warn_h1)
warn_l1=23;
xianshi(warn_l1+1);
while(!key1);
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
warn_l1--;
if(warn_l1==0)
warn_l1=23;
xianshi(warn_l1+1);
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
warn_h1++;
if(warn_h1==125)
warn_h1=29;
xianshi(warn_h1+1);
while(!key3);
}
}
if(key4==0)
{
delay(10);
if(key4==0)
{
warn_h1--;
if(warn_h1==warn_l1)
warn_h1=29;
xianshi(warn_h1+1);
while(!key4);
}
}
}

void main()
{
uchar buff[4],i;
la=0;
wela=0;
while(1)
{
tempchange();
anjian();
for(i=10;i>0;i--)
{
dis_temp(get_temp());

}
deal(temp);

sprintf(buff,"%f",f_temp);

for(i=10;i>0;i--)
{
dis_temp(get_temp());
}

for(i=10;i>0;i--)
{
dis_temp(get_temp());}

}
}

3. 單片機測試題

分開答吧,我答前幾題。後面的朋友繼續。
二,填空題( 共5題,每空1分)1. 復位時SP的值為_07H____,P1口的值為__0FFH_____。
2. MCS-51單片機存儲器物理上分為__片內數據存儲器_____、_片外數據存儲器____、_片內程序存儲器__和_片外程序存儲器_。
3. 關於堆棧類操作的兩條指令分別是_____入棧指令PUSH_________ 、___出棧指令POP_________。
4. MCS-51有五個中斷源分別為_INT0____、__T0____、__INT1_____、__T1______、__串列通信口____。
5. MCS-51有兩種存儲器_數據存儲器RAM____和_程序存儲器ROM____。(此答案不確定)
三,簡答計算題( 共4題,每題5分)
4. SP=27H PC=3456H
四, 讀程序,寫結果( 共5題,每題6分)
1.
執行後結果 A=33H B=23H
2.

(A)=24H
3.

6655H+11FFH結果送到(51H)(50H)
4. 執行下列程序段後,內部RAM中的30H、31H、DPTR 以及SP單元中的內容是什麼?

(30H)=00H,(31H)=0FFH,(DPTR)=0100H,(SP)=60H
5. 求各有關單元的最終結果

CY=1,(41H)=07H,(40H)=54H

4. 單片機習題

《單片機習題與試題解析》是一部單片機教材的練習試題與解析,全書內容分兩部分,第1部分對80C51系列單片機教材中所涉及的思考與練習題進行了整理、分析和解答;第2部分則對某大學近幾年「單片機原理與介面技術」考試試卷進行了分析和解答,並說明考題測試的內容、答題時應注意的問題等。即使題目相同,由於提出問題的角度不同,答案還會有所不同。同時,增加了一些設計題、綜合系統擴展題。書中對近幾年單片機系統擴展應用的新技術和新理念(比如低功耗設計、可靠性設計和虛擬技術等)進行了適當補充。《單片機習題與試題解析》內容分兩部分,第1部分對80C51系列單片機教材中所涉及的思考與練習題進行了整理、分析和解答;第2部分則對某大學近幾年「單片機原理與介面技術」考試試卷進行了分析和解答,並說明考題測試的內容、答題時應注意的問題等。即使題目相同,由於提出問題的角度不同,答案還會有所不同。同時,增加了一些設計題、綜合系統擴展題。書中對近幾年單片機系統擴展應用的新技術和新理念(比如低功耗設計、可靠性設計和虛擬技術等)進行了適當補充。

5. 單片機怎麼檢測好壞

單片機一般很少壞,壞一般都是外圍電路

6. 求解,單片機程序的單元測試應該怎麼做呢

單片機測試程序需要分模塊來測試,測試每個模塊的寄存器初始狀態,讀寫是否正常,並且測試完全功能。這些都可以通過代碼來實現自動來測試,測試完成後給出測試結果。你可以到Freescale(飛思卡爾)的官網去需求技術支持,那裡會提供標準的測試程序供你參考。

7. 求一份單片機答辯的題目和答案 我不是計算機專業的 簡單點就行 拜託了

36個單片機新手入門問題:
1.C語言和匯編語言在各有哪些優缺點? 2.初學者到底是應該先學C還是匯編? 3.400減50,程序語句上如何SUBB實現呢?
4.C或匯編語言可以用於單片機,C++能嗎? 5.學了電子線路、C語言,感覺很迷茫怎麼辦? 6.8位機還能延續多久?
7.搞單片機開發,一定要會C嗎? 8.請問作為學生,如何學好單片機? 9.單片機的生命期還有多長?
10.當開發項目時,用C還是用匯編開發好? 11.如何才能才為單片機的高手啊? 12.符合44PIN的80系列8位單片機的MCU有哪些?
13.請問那裡可以找到關於這方面的書或資料? 14.女性是否適合單片機軟體編程這個行業? 15.從51轉到ARM會有困難嗎?
16.利用單片機來檢測手機電池的充放電時間? 17.商業級晶元和工業及晶元區別? 18.低輻射MCU方法可以減少,有什麼別的方法?
19.96單片機開發系統時,有那些注意事項? 20.在demo板上采樣電壓,不穩定,如何消除? 21.在車載DVD系統中,如何設計電子防震系統?
22.電子防震技術中,那些IC或器件可供選擇? 23.如何進行編程可以減少程序的bug? 24.有沒有解決加密問題又不破壞MCU的方法?
25.如何使生成的代碼具有和匯編一樣的效率? 26.ARM單片機和哪種內核的單片機比較接近? 27.測試中如何用一些比較短的時間來工作?
28.怎樣學51系列和cygnal系列單片機? 29.MCU的C匯編優化,有沒有通用的原則? 30.估計一個演算法的MIPS,有什麼好的途徑?
31.AT89S51,復位RAM中數據被修改怎麼回事? 32.如何正確的使用IO功能? 33.頻率100kHz,atiny15那樣怎麼辦?
34.單片機應注重哪幾個方面的學習? 35.汽車電子用的單片機是8位多,還是32位? 36.復用技術的使用在實際應用?

單片機開發與測試中的若干問題:
1.Delta-Sigma軟體測量方式,是什麼概念? 2.要同時用到3個counter,該怎麼辦? 3.有那些是衡量系統的穩定性的標准?
4.晶元封裝及設計過程中需要注意哪些問題? 5.抗干擾技術對軟體的可靠性懷疑。怎麼辦? 6.12M的晶振,如何實現480MB/S數據傳輸率呢?
7.當今世界單片機的應用與發展有什麼不同? 8.在中國,單片機在哪方面有較好的前景? 9.高性能要求選用32位單片機這樣認為對嗎?
10.51系統過渡到ARM系統,要注意哪些事情? 11.能否用PSoC嵌入式代替部分單片機系統呢? 12.如何理解如下概念?

13.選用什麼型號的模擬器和編程器比較好? 14.C語言是否有關於位操作地址的指令 15.運行以後看到從R0到R7都被佔用,為什麼?
16.發電機系統,如何設計復位電路? 17.PWM做到100kHz(8bit上)的方法有哪些? 18.醫療電子應用的最多是幾位單片機?
19.單片機對modem要進行哪些初始化操作? 20.各種各樣的輸入怎麼樣與MCU進行通訊? 21.兩個串口、16KEPROM、512個位元組的RAM?
22.在嵌入式開發中軟體抗干擾有哪些問題? 23.語音識別會不會是單片機下個消費熱點? 24.如何設計實現低成本測量電池組電壓的裝置?
25.調用函數會不會影響定時/計數器的中斷? 26.LM4915是什麼IC? 27.被嵌套高優先順序中斷程序怎樣返回主程序?
28.介紹單片機系統的故障自診斷的知識? 29.如何使照的相片可存儲,看的時候可調用? 30.將Wafer切割成Die後對單個Die進行?
31.測試整個MCU的功能是否正確? 32.如何測試程序達到較高的測試覆蓋度? 33.MCU邏輯電路是測試合格的,如何解決呢?
34.cpu一直工作在復位狀態,會不會有問題? 35.單片機系統的故障相關問題如何解決?

holtek單片機常見問題匯總:
1.Holtek的數據手冊在哪裡下載? 2.學單片機缺乏實踐經驗請問該怎麼辦? 3.A/D,D/A的采樣速率有什麼優勢?
4.學習ARM是否比學習單片機更有使用前景? 5.遙控的編解碼思路和設計流程是怎樣的? 6.Holtek的編程語句是否就是C51或是相關?
7.介紹一下MCU的測試方法。 8.如何理解預分頻,12時鍾模式等概念? 9.請推薦配套的編譯模擬燒錄的硬軟體?
10.在ARM編程中又應當如何? 11.採用什麼方法來測試單片機系統的可靠性? 12.Holtek如何解決測試問題?
13.如何使PIC16F87X寬溫度內誤差盡量小呢? 14.如何適當的喂狗,判定軟體的運行時間? 15.RISC架構的單片機它的主要特點是什麼?
16.RISC和CISC內核的MCU,代碼量哪個更大? 17.單片機的I/O口何種狀態能獲得最低功耗? 18.Holtek和AT系列編程有何不同?
19.Holtek和AT系列有FLASH可電擦寫的型號? 20.Holtek的單片機能符合該項應用要求嗎? 21.WATCHDOG功能的單片機,如何確認其起作用?
22.能否推薦一個DSP或現在的高速單片機? 24.HT48系列單片機支持串列通信嗎? 24.返回指令能用跳轉指令替代到主程序中?

8051單片機設計教程與實例---指令基礎教程
1.什麼是嵌入式系統? 2.單片機的技術發展歷史 3.單片機應用模式
4.單片機的開發過程 5.單片機基本結構與工作原理 6.單片機內部資源的配置
7.單片機的外部特性 8.80C51的SFR運行管理模式 9.單片機I/O埠及應用特性
10.80C51單片機存儲器系統及操作方式 11.單片機的指令系統 12.指令系統的分類與速解
13.指令的應用例子 14.定時器/計數器的基本結構與操作方式 15.定時器/計數器的SFR
16.定時器/計數器的工作方式 17.定時器/計數器的編程和使用 18.定時器應用舉例
19.中斷系統的基本組成 20.中斷系統中的SFR 21.中斷響應的自主操作過程
22.串列口的基本結構與操作方式 23.串列口的特殊功能寄存器 24.串口的工作方式
25.匯編語言應用程序設計的一般格式 26.匯編語言程序的設計方法 27.常用的偽指令
28.簡單結構程序 29.分支結構程序 30.循環結構程序
31.子程序結構程序 32.查表程序 33.查鍵程序

8051單片機設計教程與實例---實戰程序設計
1.顯示程序 2. 閃爍LED小燈的設計 3.閃爍LED控製程序
4.閃爍LED小燈主程序圖 5.數碼管時鍾電路的設計 6.8*8點陣LED字元顯示器的設計
7.數碼管時鍾電路的主程序 8.8路輸入模擬信號數值顯示電路的設計 9.8路輸入模擬信號數值顯示電路程序
10.單鍵學習型遙控器的設計 11.單鍵學習型遙控器的程序 12.電路主要性能指標
13.15路電器遙控器的設計 14.系統的功能實現方法 15.遙控發射及接收控製程序流程圖
16.自行車里程/速度計的設計 17.系統內存的規劃 18.系統內存設計的程序
19.自動往返行駛小汽車的設計 20.系統內存資源的分配 21.系統內存資源的程序
22.遙控小汽車的設計 23.發射板控製程序的設計 24.汽車行駛信息發送與接收器的設計
25.數據幀的編碼格式及發送/接收過程 26.汽車行駛信息發送與接收器的程序 27.系統調試中的問題及解決方法
28.數控調頻發射台的設計 29.內存單元的使用要求 30.W78E516B的功能特點
31.W78E516B中的幾個特殊寄存器 32.W78E516B在線編程的規則 33.W78E516B在線編程的硬體電路
34.W78E516B應用系統的程序設計 35.電子定時器的設計 36.電子定時器的程序
37.電子定時器的程序流程圖

單片機相關資料
(1)單片機的圖形化編程方法探討 (2)單片機應用編程技巧 (3)單片機自身的抗干擾若干措施
(4)單片機編音樂程序 (5)用89C51做直流穩壓電源 (6)王款主流CMMB調諧器的特性比較
(7)紅外遙控器控制的風扇溫控器 (8)用單片機89S52製作計算器 (9)用單片機89C51製作程式控制交換機

(10)數據採集和記錄系統單片機AT89C51 (11)簡單的製作AT89SXX的單片機教程板 (12)熱敏電阻溫度計:液晶版
(14)熱敏電阻溫度計 (15)使用DS1307的數字鬧鍾 (16)SPI快閃記憶體編程器的製作
(17)8051SBC單片機微處理器學習板 (18)Atmel 89系列編程器的製作 (19)ISP微控制器編程
(20)製作簡單的S51學習板 (21)89S52單片機開發板 (22)keil 與protues安裝的詳細步驟和說明

詳見:http://www.51c51.com/JIAOXUE4.HTM

閱讀全文

與小學生單片機社團測試相關的資料

熱點內容
盲反卷積演算法 瀏覽:298
峰火戰國什麼時候能開伺服器 瀏覽:452
加密的pdf怎麼提取和修改 瀏覽:488
壓縮空氣氣體流量計 瀏覽:845
高角杯如何編程 瀏覽:1011
哪個app可以下載迷失島 瀏覽:29
100以內程序員鍵盤 瀏覽:912
調試助手源碼是什麼 瀏覽:601
程序員網優 瀏覽:461
有沒有極限壓縮方法 瀏覽:79
岳陽hypermill五軸編程 瀏覽:385
超級舒服的解壓神器 瀏覽:450
超短macd源碼 瀏覽:165
群暉怎麼設置用戶訪問指定文件夾 瀏覽:555
安卓怎麼測觸摸屏 瀏覽:595
javastring原理 瀏覽:317
如何關閉手機dhcp伺服器 瀏覽:985
php免費ide 瀏覽:202
程序員詞句 瀏覽:978
伺服器如何禁止某個ip段 瀏覽:331