A. 單片機程序,設計一個倒計時程序,每八個小時響一次,持續時間五秒,求大神幫忙。
#include <reg52.h>
#include <math.h>
#define uint unsigned int
#define uchar unsigned char
sbit fm=P1^7;//蜂鳴器
uint aa=0,c;
void Delay1ms(unsigned int i) //1ms延時程序
{
unsigned int j;
for(;i>0;i--)
{
for(j=0;j<125;j++)
{;}
}
}
void init()//初始化設置
{
TMOD=0x01;//定時器0作為定時器用
TH0=965536-5000)/256;//定時50ms
TL0=965536-5000)%256;
EA=1;//開總中斷
ET0=1;//允許定時器1中斷
TR0=1;//啟動定時器
}
void main()//主程序很簡單
{
init();//初始化
c=3600*8;
while(1)//循環程序
{
while(c!=0);
c=3600*8;
fm=1;//報警
Delay1ms(5000) ;
fm=0;//報警停止
}
}
void timer0()interrupt 1//定時器0的中斷序號為1
{
aa++;
TH0=965536-5000)/256;//定時50ms
TL0=965536-5000)%256;
if(aa==20)//中斷10次,共1S
{
aa=0;
c--;
}
}
B. 用單片機實現5秒定時,期間每隔1秒引發一次中斷服務程序
不能,
因為TH0和TLO都是8位的,兩個加起來才16位,也就是說最大隻能加到65535。
固最多可以達65毫秒。
如果想設置大於定時65毫秒的定時,你豎慎可以把它分成幾次。比如:把1秒分成20次中斷進行。每次中斷的時間為50毫秒。
也就是相當在中斷函數中加入
if(i==20)//定時1s時間到
{
.. //標語句
}
這時,粗頌就是產生20次中斷才做一起操作.就相當於1秒做一次操作(或可以認為是1秒一次真余凳敬正的中斷)
C. 高手幫忙.用51單片機控制一個燈.要求按下啟動按鈕後以亮5秒,滅3秒為周期運行.關鍵是要有掉電保持功能!!
關鍵叢巧和的掉電保護可以像1L那樣說用內部EEPROM實滲盯現,或者用24C02(外置寬孫的EEPROM)來做,然後燈亮滅那些就容易搞了。具體思路還是自己動手才懂的
D. 單片機實訓總結範文5篇
單片機實訓課程,是農業工程類專業非常重要的專業技術課,是後續專業實踐課的基礎,大家做好實訓 總結 ,總結更多的 經驗 。下面是我給大家帶來的單片機實訓總結 範文 _單片機實訓 工作總結 ,以供大家參考,我們一起來看看吧!
↓ ↓ 更多關於 「 實 訓總 結 」 內容推薦 ↓ ↓
★ 單 片機實 訓報 告 ★
★ 單 片 機實 訓心得 體 會 ★
★ 實 訓總 結報 告范 文 ★
★ 實 訓總 結與心 得 體 會 ★
★ 實 習實訓總 結報 告 ★
▼ 單片機實訓總結範文篇一:
通過今次單片機實訓,使我對單片機的認識有了更深刻的理解。系統以51單片機為核心部件,利用匯編軟體編程,通過鍵盤控制和數碼管顯示實現了基本時鍾顯示功能、時間調節功能,能實現本設計題目的基本要求和發揮部分。
由於時間有限和本身知識水平的限制,本系統還存在一些不夠完善的地方,要作為實際應用還有一些具體細節問題需要解決。例如:不能實現只用兩個按鍵來控制時鍾時間,還不能實現鬧鍾等擴展功能。
踉踉蹌蹌地忙碌了兩周,我的時鍾程序終於編譯成功。當看著自己的程序,自己成天相伴的系統能夠健康的運行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會化為甜美的甘泉。
但在這次實訓中同時使我對匯編語言有了更深的認識。當我第一次接觸匯編語言就感覺很難,特別是今次實訓要用到匯編語言,盡管困難重重,可我們還是克服了。這次的實訓使培養了我們嚴肅認真的做事作風,增強了我們之間的團隊合作能力,使我們認識到了團隊合作精神的重要性。
這次實訓的經歷也會使我終身受益,我感受到這次實訓是要真真正正用心去做的一件事情,是真正的自己學習的過程和研究的過程,沒有學習就不可能有研究的能力,沒有自己的研究,就不會有所突破。希望這次的經歷能讓我在以後學習中激勵我繼續進步。
▼ 單片機實訓總結範文篇二:
通過這一個學期的單片機學習,我收獲了很多關於單片機的知識,並且這些知識和日常的生活息息相關。了解了一些簡單程序的錄入,LED 顯示器 、鍵盤、和顯示器的應用和原理。
LED顯示器:LED顯示器是由發光二管組成顯示欄位的器件。通常的8段LED顯示器是由8個發光二極體組成,LED顯示器分共陽極和共陰極兩種。有段選碼和和位選碼。當LED顯示器每段的平均電流位5MA時,就有較滿意的亮度,一般選擇斷碼5-10MA電流;位線的電流應選擇40-80MA。LED顯示器的顯示方式有動態和靜態兩種。7289A晶元是具有SPI串列介面功能的顯示鍵盤控制晶元,它可同時取得8位共陰極數碼管和64個鍵的鍵盤矩陣。7289A的控制指令分為兩類:8位寬度的單位元組指令和16位寬度雙位元組指令;還有閃爍指令和消隱指令。7289A採用串列方式SPI匯流排與微處理器通信;7289A與AT89C52介面電路,在實際電路中無論接不接鍵盤,電路中連接到其各段上的8個 100千歐的下拉電阻均不可以省去,如果不接鍵盤而只接顯示器可以省去8個10千歐電阻,若僅接鍵盤而不接顯示器,可省去串入DP及SA-SG連線的8個220歐電阻,7289A還需要外接晶體振盪電路。液晶顯示器簡稱LCD,其顯示原理是用經過處後的液晶具有能改變光線傳輸方向的特性,達到顯示字元和圖形的目的。最簡單的筆段式液晶顯示器類似於LCD顯示器,可以顯示簡單的字元和數字,而目前大量使用的是點陣式LCD顯示器,既可以顯示字元和數字也可以顯示漢字和圖形。如果把LCD顯示屏、背光可變電源、介面控制邏輯、驅動集成晶元等部件構成一個整體,是的與CPU介面十分方便。
鍵盤:鍵盤是最常見的計算機輸入設備,它廣泛應用於微型計算機和各種終端設備上。計算機操作者通過鍵盤向計算機輸入各種指令、數據,指揮計算機的工作。按照鍵盤的工作原理和按鍵方式的不同,可以劃分為四種:機械式鍵盤採用類似金屬接觸式開關,工作原理是使觸點導通或斷開,具有工藝簡單、噪音大、易維護的特點。 塑料薄膜式鍵盤鍵盤內部共分四層,實現了無機械磨損。其特點是低價格、低噪音和低成本,已佔領市場絕大部分份額。 導電橡膠式鍵盤觸點的結構是通過導電橡膠相連。鍵盤內部有一層凸起帶電的導電橡膠,每個按鍵都對應一個凸起,按下時把下面的觸點接通。這種類型鍵盤是市場由機械鍵盤向薄膜鍵盤的過渡產品。 無接點靜電電容式鍵盤使用類似電容式開關的原理,通過按鍵時改變電極間的距離引起電容容量改變從而驅動編碼器。特點是無磨損且密封性較好。
按照按鍵方式的不同鍵盤可分為接觸式和無觸點式兩類。接觸式鍵盤就是我們通常所說的機械式鍵盤,它又分為普通觸點式和干簧式。普通觸點式的兩個觸點直接接觸,從而使電路閉合,產生信號;而干簧式鍵盤則是在觸點間加裝磁鐵,當鍵按下時,依靠磁力使觸點接觸,電路閉合。與普通觸點式鍵盤相比,干簧式鍵盤具有響應速度快、使用壽命長、觸點不易氧化等優點。無觸點式鍵盤又分為電容式、霍爾式和觸摸式三種。其中電容式是我們最常用到的鍵盤類型,它的觸點之間並非直接接觸,而是當按鍵按下時,在觸點之間形成兩個串聯的平板電容,從而使脈沖信號通過,其效果與接觸式是等同的。電容式鍵盤擊鍵時無雜訊,響應速度快,但是價格很高一些。
顯示器:按照顯示器的顯示管分類CRT、LCD。按顯示色彩分類單色顯示器、彩色顯示器。按大小分類通常有14寸、15寸、17寸和19寸,或者更大。顯示管的屏幕上塗有一層熒光粉,電子槍發射出的電子擊打在屏幕上,使被擊打位置的熒光粉發光,從而產生了圖像,每一個發光點又由「紅」「綠」「藍」三個小的發光點組成,這個發光點也就是一個象素。由於電子束是分為三條的,它們分別射向屏幕上的這三種不同的發光小點,從而在屏幕上出現絢麗多彩的畫面。顯示器顯示畫面是由顯示卡來控制的。若仔細觀察顯示器上的文本或圖像是由點組成的,屏幕上點越多越密,則解析度越高。
屏幕上相鄰兩個同色點的距離稱為點距,常見點距規格有0.31mm、0.28mm、0.25mm等。顯示器點距越小,在高解析度下越容易取得清晰的顯示效果。電子束採用光柵掃描方式,從屏幕左上角一點開始,向右逐點進行掃描,形成一條水平線;到達最右端後,又回到下一條水平線的左端,重復上面的過程;當電子束完成右下角一點的掃描後,形成一幀。此後,電子束又回到左上方起點,開始下一幀的掃描。這種 方法 也就是常說的逐行掃描顯示。而隔行掃描指電子束在掃描時每隔一行掃一線,完成一屏後再返回來掃描剩下的線,這與電視機的原理一樣。隔行掃描的顯示器比逐行掃描閃爍得更厲害,也會讓使用者的眼睛更疲勞。完成一幀所花時間的倒數叫垂直掃描頻率,也叫刷新頻率,比如60Hz、75Hz等。
通過這幾天的單片機的實訓,我在理論的基礎上更深刻的掌握了單片機的深層內容及實際生活中的應用,實訓鍛煉了自己動手能力和思維能力,還有在軟體方面的編程能力,讓我受益匪淺,同時也暴露出一些平時學習上的問題,讓我深刻 反思 。這些問題的發現將為我以後的學習和工作找明道路,查漏補缺為進一步學習作好准備。通過實訓,讓我懂得了如何編寫一些簡單的程序,學會了如何製作單片機應用程序,並且可以在今後的日常生活中靈活運用。
▼ 單片機實訓總結範文篇三:
一 實習目的
1. 通過對單片機小系統的設計、焊接、裝配,掌握電路原理圖及電子線路的基本焊接裝配工藝、規范及注意事項;
2. 通過對系統板的測試,了解系統板的工作原理及性能,掌握元器件及系統故障的排除方法;
3. 掌握程序編制及調試方法,完成系統初始化、存儲器操作、埠操作、鍵盤顯示等程序的編制及調試(匯編語言、C語言均可);
4. 通過單片機系統的組裝,調試以及程序編制、調試及運行,與理論及實驗的有機結合和指導教師的補充介紹,使學生掌握控制系統的工作原理、開發方法和操作方法。
5. 培養學生解決實際問題的能力,提高對理論知識的感性認識。
二 實習意義
通過本實習不但可以掌握單片機軟、硬體的綜合調試方法,而且可以熟練掌握電路原理圖,激發對單片機智能性的探索精神,提高學生的綜合素質,培養學生應用單片機實現對工業控制系統的設計、開發與調試的能力。在製作學習過程中,不但可以掌握軟、硬體的綜合調試方法,而且可以使學生對單片機智能性產生強烈的慾望。達到最大限度地掌握微機應用技術,軟體及介面設計和數據採集與處理的技能,培養電綜合實踐素質的目的。
三 系統基本組成及工作原理
1 系統基本組成
系統以單片機STC89C52作為控制核心,各部分基本組成框圖如圖1所示。
流水燈部分由單片機、鍵盤模塊等組成;
四位數碼顯示,編程實現30秒倒計時部分由單片機、鍵盤模塊、液晶顯示模塊等組成;
按鍵功能部分通過按鍵控制流水燈部分、四位數碼顯示部分;
電子鍾部分由單片機、鍵盤模塊、液晶顯示模塊等組成;
使用功能鍵實現相應的功能組合部分通過流水燈部分、30秒倒計時部分實現;
模數轉換部分由單片機、ADC0809轉換模塊、鍵盤模塊、液晶顯示模塊等組成。
2 系統工作原理
本設計採用STC89C52RC單片機作為本系統的控制模塊。單片機可把由ADC0809及單片機中的數據利用軟體來進行處理,從而把數據傳輸到顯示模塊,實現阻值大小的顯示。以數碼管顯示為顯示模塊,把單片機傳來的數據顯示出來。在顯示電路中,主要靠按鍵來實現各種顯示要求的選擇與切換。
對於模數轉換部分,單片機89C51通過P0口的I/O線向ADC0809發送鎖存地址以及復位、啟動轉換等信號,並查詢轉換狀態。 ADC0809啟動轉換後,將0-8個通道一次輸入的電壓信號轉換成相應的數字量,供89c51讀取使用,並且將EOC置1供單片機查詢轉換狀態。而滑動變阻器負責將阻值信號轉換成電壓信號,再送到ADC0809的八個通道。當單片機查詢到轉換結束後依次讀取數據並按照現實的需要進行二進制轉BCD碼等處理最後控制顯示電路顯示出數字。 其實現方式是:ADC0809轉換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用於讀取轉換結果,同時P0.0-P0.6作控制匯流排,向ADC0809發送鎖存、啟動等控制信息,並查詢EOC狀態。ALE經分頻後給ADC0809提供時鍾信號。P3.0和P3.1口用於向顯示電路輸出段碼,P3.2-P3.7用於數碼管的位選。
四 系統硬體設計
結合本設計的要求和技術指標,通過對系統大致程序量的估計和系統工作的估計,考慮價格因素。選定AT89C51單片機作為系統的主要控制晶元,8位模擬轉換器ADC0809進行阻值轉換。 逐次比較法A/D轉換器是目前種類最多、應用最廣的A/D轉換器,其原理即「逐位比較」,其過程類似於用砝碼在天平上稱物體重量。它由N位寄存器、A/D轉換器、比較器和控制邏輯等部分組成,N位寄存器代表N位二進制碼。目前應用最廣的逐次比較法A/D轉換器有ADC0809。它是一種8路模擬輸入8位數字輸出的逐次比較法A/D轉換器件。其主要性能指標和特性如下:
分表率:8位
轉換時間:取決於晶元時鍾頻率,轉換一次時間位64個時鍾周期
單一電源:+5v
模擬輸入電壓范圍:單極性0-+5v;雙極性-5v-+5v
具有可控三態輸出鎖存器
啟動轉換控制位脈沖式,上升沿使內部所有寄存器清零,下降沿使A/D轉換開始。
通過以上性能比較,我們不難看出ADC0809滿足本設計的要求,所以本設計採用ADC0809作為A/D轉換器
1 按鍵電路設計
利用單片機的P1口擴展一個8位鍵盤。
2 晶振與復位電路設計
本設計採用的是上電復位的形式,如圖3.3所示,上電順進RST獲得高電平,隨著電容器C的充電,RST引腳上的高電平將逐漸下降,只要高電平能保持復位所需要的兩個機器周期以上時間,單片機就能實現復位操作。 晶振電路為單片機提供工作所需要的時鍾信號。震盪頻率越高,系統時鍾頻率也越高,單片機運行的速度就越快。其電路如圖3.4所示。89C51的_TAL1和_TAL2兩個引腳跨接晶體振盪器和微調電容C1、C2形成反饋電路,就構成了穩定的自激振盪器,本設計的震盪器頻率為12MHZ。
3 下載電路設計
4 流水燈模塊設計
5 模數轉換模塊設計
6 顯示電路設計
本設計採用六位數碼管。本系統採用共陽極動態掃描的方式連接。數碼管的段碼數據由89C51的P3.0-P3.1口送出,89C51的P3.2-P3.7輸出位選通信號,只有被選中的那位數碼管才會顯示段碼
7 整體電路設計
五 系統軟體設計
1主程序設計
主程序採用分支結構,以狀態號標識系統所處的狀態。在上電初始化後即進入狀態號的輪詢掃描,狀態號的值決定了分支程序的入口。其中分支程序分別為:AD轉換模塊(狀態號為0),數字模塊狀態號為1),倒計時模塊(狀態號為2),電子鍾模塊(狀態號為3),功能組合模塊(狀態號為4),流水燈模塊(狀態號為5)。
2 功能子程序設計
2.1 流水燈模塊
流水燈模塊利用單片機的P3口,通過給P3口的各位送低電平,相應的實現流水燈有規律的點亮。
2.2 30秒倒計時模塊
30秒倒計時模塊利用單片機的P3.0與P3.1口送相應的段控數據,P3.2-P3.7口送相應的位控數據。通過程序實現30秒倒計時。
2.3 數字加減模塊
利用數碼管實現數字顯示,通過加一鍵或者是減一鍵實現數字變數的加一或者減一,進而實現利用數碼管顯示加一鍵、減一鍵功能。
2.4 電子鍾模塊
利用數碼管實現時間顯示,通過加一鍵或者是減一鍵實現小時變數或者是分鍾變數的加一,從而實現調時功能。
2.5 模數轉換模塊
對於模數轉換部分,單片機89C51通過P0口的I/O線向ADC0809發送鎖存地址以及復位、啟動轉換等信號,並查詢轉換狀態。 ADC0809啟動轉換後,將0-8個通道一次輸入的電壓信號轉換成相應的數字量,供89c51讀取使用,並且將EOC置1供單片機查詢轉換狀態。而滑動變阻器負責將阻值信號轉換成電壓信號,再送到ADC0809的八個通道。當單片機查詢到轉換結束後依次讀取數據並按照現實的需要進行二進制轉BCD碼等處理最後控制顯示電路顯示出數字。 其實現方式是:ADC0809轉換來自3通道的阻值變化信號。80c51的P2口與ADC0809的輸出相連用於讀取轉換結果,同時P0.0-P0.6作控制匯流排,向ADC0809發送鎖存、啟動等控制信息,並查詢EOC狀態。ALE經分頻後給ADC0809提供時鍾信號。P3.0和P3.1口用於向顯示電路輸出段碼,P3.2-P3.7用於數碼管的位選。
六 實習總結 、體會
本次單片機實習我們一共完成了個模塊的程序設計,包括:led顯示模塊、數碼管顯示模塊和鍵盤模塊。分別實現了流水燈的循環點亮控制、數碼管的靜態和動態計數顯示,還有矩陣鍵盤按鍵控制數碼管顯示的程序設計。然後我們分別用protues系統模擬軟體對各個模塊進行了模擬模擬,用keil軟體編制了匯編語言程序,驗證了我們所設計的程序。 這次實習還使我理解了編寫程序的一些技巧。單片機應用系統一般由包含多個模塊的主程序和由各種子程序組成。每一模塊都要完成一個明確的任務,實現某個具體的功能,如計算、接受、發送、延時、顯示等。採用模塊化程序設計方法,就是將這些具體功能程序進行獨立設計和分別調試,最後將這些模塊程序裝配成整體程序並進行聯合調試。模塊化程序設計方法的優點:一個模塊可以為多個程序所共享;單個功能明確的程序模塊的設計和調試比較方便,容易完成;利用已經編好的成熟模塊,將大大縮短開發程序的時間,降低開發成本。採用循環結構和子程序結構可以使程序的容量大大減少,提高程序的效率,節省內存。對於多重循環,要注意各重循環的初值和循環結束的條件,避免出現程序無休止循環的「死循環」現象; 通過這次的實習我發現,只有理論水平提高了,才能夠將課本知識與實踐相結合,理論知識服務於教學實踐,以增強自己的動手能力。這次實習十分有意義,這次實習我們知道了理論和實踐的距離,也知道了理論和實踐相結合的重要性。 回顧起此次課程設計,感覺受益匪淺,從拿到題目到完成整個編程,從理論到實踐,學到很多很多的課堂理論中沒學到過的東西,不僅對鍵盤的識別技術這一章節的知識點有了深刻的認識,而且對這學期開設的單片機這門課程有了更全面的了解,尤其是在學習使用proteus軟體片編程和模擬時收獲良多。通過這次單片機課程設計,還使我懂得了實踐的重要性。同時在程序調試的過程中提高自己的發現問題、解決問題、實際動手和獨立思考的能力。 這次課程設計能順利的完成,除了我們的努力外,當然也離不開指導老師申老師的辛勤指導,致使我在設計的過程中學到了很多實用性的知識。同時,對給過我幫助的所有同學和各位指導老師表示忠心的感謝!
▼ 單片機實訓總結範文篇四:
通過為期一周的單片機實訓,是我們對這門課有了許多新的了解,彌補了在課堂上學習的不足。相信這對我們以後的學習和工作都會有很大的幫助。我們一定要在最短的時間里對這些不足加以改正!
首先,在這次試訓中我被單片機強大的功能所震撼,以前在課堂上完全沒有能理解可編程單片機的優越性。這次通過實體模擬軟體等輔助軟體的共同效果,是這次試訓有了鮮明的活力。換是我們認識到這次試訓不僅僅是一個軟體的應用,更多的是使我們認識到學習到很多在課堂上無法得到的東西。特別是protues軟體的功能是我們了解了當今開發系統的新方向,簡直太不可思議啦!
單片機作為一種最簡單的軟體,與我們的日常生活息息相關,了解一些單片機程序的簡單錄入是非常必要的。如:LED顯示器、鍵盤和顯示器的應用和原理。
在被刺實訓中我們每個人通過一個八位流水燈的製作,使我們深深地體會到了單片機在現實生活中的小小應用,既增強了我們的好奇心,又鞏固了我們的理論知識。更讓我們體會到了單片機手動的開始平台的完善與成熟。只要你有想法,單片機就有可能讓他成為現實。這里我學習完protues軟體後的第一感覺是,雖然這軟體工作不穩定,但是會有相當不錯的效果出來。這對我以後的工作一定會有幫助的。在這次試訓中不僅只對單片機編程有了新的認識,還對整個單片機的開發平台都有了一廳的了解,這是一筆不錯的收獲。
通過這幾天的試訓,使我的感觸很深,真實「條條大路通羅馬」,要達到目的,不同的人就有不同的方法。只要你的方法不錯!五花八門都可以,而且是各有特色。走出來的結果都有各自的獨到之處。在編程中「簡」字貫穿於整個程序設計中,越簡單越好,畢竟單片機留給用戶的資源是有限的,所以我們要充分利用這些資源,達到更好的效果,這些是我們在以後的學習生活中應值得注意的地方。
在試訓中有苦有甜,當我們為一個很難攻破的程序找出路時,心情煩躁,感覺自己很不可理喻,當程序一點一點編好後,自己從心底感覺到一點小小的安慰,看著自己的成果。感覺很欣慰,有一絲絲的甜意,幾天的實訓使自己的思維邏輯也有了小小的進步。
▼ 單片機實訓總結範文篇五:
這是我第一次做單片機實驗,說起來有一些緊張和新奇。在此之前我並沒有接觸過單片機,我本以為與之前的光學實驗及 其它 實驗差不多,可我進到實驗室之後,我就改變了這個看法。
單片機實驗要求的是一種思維的創新,而不是簡單的重復老師所說的實驗步驟。因此第一次實驗,實驗老師向我們講解了CVAVR編譯器的大體情況及使用方法和技巧,並簡單的向我們示例——如何在CVAVR中編寫一段程序。編完程序之後,知道我們如何使用AVRStudio達到將編好的程序輸入到單片機中來使其運行。
之後老師讓我們以組為單位合作編寫一段程序,並使其運行。我們組想要編寫一個跑馬燈的程序。在第一次運行CVAVR時,我們組就遇到了一個麻煩,我們在建立一個新project文件那裡出現了錯誤。在保存這個新project文件的時候,我們單擊了Save,而不是Generate,SaveandE_it.因此它彈不出我們我們所需要的源程序。之後我們通過詢問其他人解決了這個問題。在編程中,我們開始做的是兩盞燈的交替閃爍,間隔時間是1000ms。在運用AVRStudio的時候,我們又犯了一個錯誤。在我們打開編譯好的工程文件時,開始調試,在最後一步點擊Finish時,彈出一對話框,問我們是否更新,然後我們單擊了Yes。這導致了模擬器無法下次使用。這是由於實驗室中的模擬器是盜版的,無法進行更新。
經過我們的不斷努力,我們終於實現了簡單的跑馬燈的運行,便是兩個燈地交替閃爍。我們感到興奮極了。但是我們並沒有滿足於當前,我們又編寫了三個燈地交替閃爍,四個及多個。當我們一步步實現我們的目的時,我得到莫大成就感和自信。
在這次實驗中,我體會到了合作的重要性。一個人也可能實現這一系列的過程,但是要花費很多精力和時間。群策群力,分工明確,可以使我們更好、更快地完成我們的工作。在此期間,你可以更好知道自己的不足和缺陷,來得到改正。還可以知道自己的優勢所在,把握好自己的優勢。
單片機實訓總結相關 文章 :
★ 單片機實訓報告範文精選5篇
★ 單片機實訓總結範文3篇
★ 單片機實驗心得體會範文
★ 單片機實訓報告範文
★ 單片機實訓工作報告範文精選
★ 單片機實習報告範文
★ 單片機實驗的心得體會
★ 單片機課程設計心得體會3篇
★ 實驗總結5篇精選
★ 單片機設計的心得體會
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm..com/hm.js?"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();E. 設計一個由51單片機控制的0到五秒的程序延時程序!再加個數碼管顯示延時的秒數。可以循環的。
開始按下時,顯示零秒,渣塵p1.0一直輸出高。再按一下。顯示1,.p1.0燈亮一秒,友團
----好梁橘
應該從沒有按,就開始顯示零秒。
;使用 11.0592MHz,程序如下。
LED BIT P1.0
KEY BIT P1.7
ORG 0000H
SJMP START
ORG 000BH
MOV TH0, #4CH
SETB F0
RETI
;--------------------------------------
START:
MOV TMOD, #01H
MOV TH0, #4CH
MOV TL0, #00H ;[email protected]
SETB TR0
MOV IE, #82H
;--------------------------------------
M_LOOP:
MOV R2, #0
LP0:MOV A, R2
ADD A, #(TAB - $ - 3)
MOVC A, @A + PC
MOV P2, A
MOV P0, A
MOV A, R2
MOV B, #20
MUL AB
LP1:MOV R3, A
LP2:CJNE R2, #0, LP3
SETB LED ;LED 在P1.0
JZ K_I
LP3:JNB F0, K_I
CLR F0
DJNZ R3, LP2
CPL LED ;LED 在P1.0
SJMP LP1
K_I:JB KEY, LP2 ;按鍵在P1.7
MOV R6, #10
DJNZ R7, $
DJNZ R6, $ - 2
JB KEY, LP2
JNB KEY, $
INC R2
CJNE R2, #6, LP0
SJMP M_LOOP
;--------------------------------------
TAB:
;共陽段碼
DB 0C0H,0F9H,0A4H,0B0H, 99H, 92H, 82H,0F8H
DB 080H, 90H, 88H, 83H,0C6H,0A1H, 86H, 8EH
END
F. 單片機怎麼實現5秒的定時
定時之前、定時完畢,都干什麼呀?
下面就是定時 5 秒(fosc = 6MHz)的鬧巧完整程尺腔序。
DL5S()
{
unsigned char t = 0;
TMOD = 0X01;
TR0 = 1;
while(t < 200) {
TH0 = (65535 - 50000) / 256;
TL0 = (65535 - 50000) % 256;
while(TF0 == 0);
TF0 = 0;
t++;
}
}
-----
用匯編語言,就很簡單了。
下面就是定時 5 秒(fosc = 6MHz)的完整陵彎衫程序。
DL5S:
MOV TMOD, #01H
SETB TR0
MOV R2, #200
D_LOOP:
MOV TH0, #HIGH(65536 - 50000)
MOV TL0, #LOW(65536 - 50000)
JNB TF0, $
CLR TF0
DJNZ R2, D_LOOP
RET
END
G. 單片機高電平持續五秒,然後低電平的程序,p1.0輸出
你的5秒延時是要精確,還是一般的。如果不要求精度,用個延賀碼塵時函禪禪數就能實現,如果要求精確一點就要用定時器寫模跡。
H. 求一單片機程序 點亮二極體並輪流發光 延時5秒 語句注中文解釋
#include <reg52.h>
#include <intrins.h>
#define ulong unsigned long
#define uchar unsigned char
uchar temp;
void delay(uint);
void main()
{
temp=0xfe; //初始狀態,點亮第一祥禪段個LED
P1=temp;
while(1)
{
temp=_crol_(temp,1); //庫函數_crol_用來控制左移
delay(1100); //調用演示程序,設置延時時間
P1=temp;
}
}
void delay(ulong z) //延謹譽時函數
{
ulong x,y;
for(x=100;x>襲中0;x--)
for(y=z;y>0;y--);
}
I. 用單片機來寫5S 延時程序.怎麼做
LOOP3:MOV R6,#4:
LOOP2:MOV R5,#250:
LOOP1:MOV R4,#250:
DJNZ R4,LOOP1
DJNZ R5,LOOP2
DJNZ R6,LOOP3
RET
這是皮斗族1S的延燃弊時程序
調用1S的:MOV R0,#05H
LOOP1:LCALL DELAY
DJNZ R0,LOOP1
.
.
這就銷梁是5S 延時程序
J. 設計一個由51單片機控制的一到五秒的程序延時程序!再加個數碼管顯示延時的秒數。
#include <reg51.h> //調用51單片機的頭文件
#define uchar unsigned char
#define uint unsigned int
unsigned char code LED[]=
{ //定義表格一定要使用code,這樣會做到程序存儲區中
0x3F, //"0"的字形表,0B00111111
0x06, //"1"的字形表,0B00000110
0x5B, //"2"的字形表,0B01011011
0x4F, //"3"的字形表,0B01001111
0x66, //"4"的字形表,0B01100110
0x6D, //"5"的字形表,0B01101101
0x7D, //"6"的字形表,桐族0B01111101
0x07, //"7"的字形表,0B00000111
0x7F, //"8"的激輪桐字形表,0B01111111
0x6F, //"9"的字形表,0B01101111
0x00,
};
uchar num;
uint fz1,fz2,xs1,xs2;
uint ms,fz,xs,kg;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
void delayms(uint xms) // 延時函數
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void sjcl() // 時鍾函數
{
if(num==20)
{ num=0;
led5=0;
ms++;
if(ms>=60)
{
ms=0;
fz++;
}
if(fz>=60)
{
fz=0;
xs++;
}
if(xs>=12)
{
xs=0;
}
}
if(num==10)
{ led5=1;
}
}
void smgxs() // 顯示函數
{
if(kg==0)
{
fz1=xs/明坦10;
fz2=xs%10;
xs1=fz/10;
xs2=fz%10;
}
else if(kg==1)
{
fz1=11;
fz2=11;
xs1=fz/10;
xs2=fz%10;
}
else if(kg==2)
{
fz1=xs/10;
fz2=xs%10;
xs1=11;
xs2=11;
}
led1=0;
P0=LED[fz1];
delayms(5);
led1=1;
led2=0;
P0=LED[fz2];
delayms(5);
led2=1;
led3=0;
P0=LED[xs1];
delayms(5);
led3=1;
led4=0;
P0=LED[xs2];
delayms(5);
led4=1;
}
void ajcl()
{
if(key1==0)
{
delayms(10);
if(key1==0)
{
TR0=0;
kg++;
while(!key1);
}
if(kg==3)
{
kg=0;
TR0=1;
}
}
if(kg!=0)
if(kg==1)
{
smgxs();
if(key2==0)
delayms(10);
if(key2==0)
{
fz=fz+1;
while(!key2);
smgxs();
}
if(key3==0)
delayms(10);
if(key3==0)
{
fz=fz-1;
while(!key3);
smgxs();
}
}
if(kg==2)
{
smgxs();
if(key2==0)
delayms(10);
if(key2==0)
{
xs=xs+1;
while(!key2);
smgxs();
}
if(key3==0)
delayms(10);
if(key3==0)
{
xs=xs-1;
while(!key3);
smgxs();
}
}
}
void main() // 主函數
{ TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
sjcl();
smgxs();
ajcl();
}
}
void T0time()interrupt 1 //中斷函數
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}
改一下就ok