pic單片機是最重要的單片機種類之一,對于pic單片機,小編曾帶來諸多介紹,如pic單片機的優勢、pic單片機選型等。而在本文中,小編將為大家介紹兩種pic單片機程序:一是pic單片機多路ad切換程序,二是pic單片機循環程序。如果你對這兩類程序存在一定興趣,不妨繼續往下閱讀。
一、pic單片機簡介
pic單片機(Peripheral Interface Controller)是一種用來開發和控制外圍設備的集成電路(IC)。一種具有分散作用(多任務)功能的CPU。與人類相比,大腦就是CPU,PIC 共享的部分相當于人的神經系統。PIC 單片機是一個小的計算機。PIC單片機有計算功能和記憶內存像CPU并由軟件控制運行。然而,處理能力—般,存儲器容量也很有限,這取決于PIC的類型。但是它們的最高操作頻率大約都在20MHz左右,存儲器容量用做寫程序的大約1K—4K字節。時鐘頻率與掃描程序的時間和執行程序指令的時間有關系。但不能僅以時鐘頻率來判斷程序處理能力,它還隨處理裝置的體系結構改變。如果是同樣的體系結構,時鐘頻率較高的處理能力會較強。
二、AD轉換介紹
所謂模擬量很好理解就是模擬量是指變量在一定范圍連續變化的量;也就是在一定范圍(定義域)內可以取任意值(在值域內)。數字量是分立量,而不是連續變化量,只能取幾個分立值,如 三位進制數字變量只能取7個整數值0.1.2.3.4.5.6.7。
而不是經過AD通道的話,經過的是普通的IO口,那么模擬信號只會在引腳上出現兩種數字結果,一個是1一個是0,而不能比較準確的描述出模擬量的數值,模擬量信號是一種變量信號,比如果0V--10V,或50MA到100MA,開關信號是一種通斷信號,比如家里的燈開關,數字信號是一種連續的開關信號或高低電平信號,比如1101----高高低高。一連串的信號代表數字信號。
再繼續說一下AD精度的問題,8位AD精度的話就是將這個滿電壓值分成2^8=256份,比方說51單片機采集的電壓范圍是0-5v 那么0v對應的是 0 5v對應的是255.
三、pic單片機多路ad切換程序
void ad_init (void)
{ ADIF=0X00;
ADCON1=0x80;//
ADCON0=0X81; //十位結果必須高為8位
TRISA=0X0FF;//默認為AD輸入
PORTA=0X00;
TRISE0=1;
TRISE1=1;
TRISE2=1;
ADON=1;
}
void delay(unsigned int x)
{
unsigned int a,b;
a=(2*x/8);
for(a;a》0;a--);
for(b=5;b》0;b--);
}
unsigned int read_ADresult(unsigned char channel)
{
channel &= 0x07; // 此處語法相當于channel=channel&0x07 聯系自反加語法!
ADCON0 &= 0x85; // 清當前通道
ADCON0 |= (channel《《3); //10 xxx 001
delay(30);
ADGO=1;
while(ADGO) conTInue;
return (ADRESH《《8)+(ADRESL);
// return ADRESL;
}
unsigned int ad_res[8];//存放AD轉換值
for(j=0;j《8;j++)
{
ad_res[j]=read_ADresult(j);
}
四、pic單片機循環程序實例
下面小編將為大家介紹一種定時程序,說明循環程序在PIC單片機上的應用。小編此次以PIC16F84單片機為例建立其定時源程序清單。該定時器源程序只需改變一條指令的常數設置,即可使定時時間從分鐘級到3?8小時的連續變化(4MHz晶振條件)。在該源程序上再多設置一次循環,可使定時時間長達1月以上。
該PIC16F84單片機定時源程序可直接在MPLAB集成開發環境軟件下進行匯編,其匯編后生成的HEX文件可在實驗編程器1?01上對源程序進行固化并可在相應的實驗板上直接觀察實驗的結果。PIC16F84單片機時的源程序清單如下(文件各可自定義):
LIST
P=PIC16F84
#INCLUDE P16F84?INC
COUNT1 EQU
0x1F
COUNT2 EQU
0x1E
COUNT3 EQU
0x1D
COUNT4 EQU
0x1C
ORG 0
START CLRW
;與MOVLW 0等效
BSF
STATUS,5;選體1
MOVWF TRISB ;設B口為輸出
BCF
STATUS,5;STATUS復位當前體0
CLRF PORTB ;定時啟動功能
M1 BTFSS PORTA,1 ;判斷A口第D1位,D1=1間跳,D1=0順
;序執行
GOTO M2
GOTO M1
M2 MOVLW 0xAA ;選B口定時位,LED亮開始定時
MOVWF PORTB ;B口按0x10101010輸出
DELY CLRW
;與MOVLW 0等效
MOVLW 0xFF
MVOWF COUNT1
MVOWF COUNT2
MVOWF COUNT3
MOVLW 0
;與CLRW指令等效
MOVLW 0x02
;0x02送W(最大定時為0xFF)
MOVWF COUNT4 ;定時值控制(細調)
LOOP DECFSZ COUNT1,1 ;CPUNT減1,為0間跳
GOTO LOOP
DECFSZ COUNT2,1 ;同上特點,這里d=1可不用
GOTO LOOP
DECFSZ COUNT3,1 ;同上
GOTO LOOP
DECFSZ COUNT4,1 ;同上,但COUNT4中值可自由選定
GOTO LOOP
CLRW
;與MOVLW 0相同
MOVLW 0x02
;定時結束顯示
MOVWF PORTB
M3 GOTO M3
END
;程序結束
說明:該源程序中常數設置可由讀者任意改變,改變之后即可達到任意時間的設定。
上一篇:pic單片機鍵盤系統的設計方案
下一篇:pic單片機程序設計的基本方法解析
推薦閱讀
史海拾趣
隨著公司的不斷發展,ABCircuits意識到單打獨斗難以應對日益激烈的市場競爭。于是,公司開始積極尋求與其他企業的戰略合作。通過與上下游企業的緊密合作,ABCircuits不僅獲得了穩定的供應鏈支持,還成功打開了國際市場的大門。這些合作不僅加速了公司的擴張步伐,也提升了其品牌影響力和市場競爭力。
隨著公司的不斷發展,ABCircuits意識到單打獨斗難以應對日益激烈的市場競爭。于是,公司開始積極尋求與其他企業的戰略合作。通過與上下游企業的緊密合作,ABCircuits不僅獲得了穩定的供應鏈支持,還成功打開了國際市場的大門。這些合作不僅加速了公司的擴張步伐,也提升了其品牌影響力和市場競爭力。
隨著國內市場的飽和,Adamant Co Ltd決定將目光投向更廣闊的國際市場。公司通過市場調研和精準定位,成功進入了歐洲和北美市場。在國際市場的拓展過程中,Adamant Co Ltd積極尋求與當地企業的合作,通過技術共享和市場互通,實現了雙贏局面。這不僅提高了公司在國際市場的競爭力,也為公司的長遠發展打下了堅實基礎。
除了天然氣業務外,E.ON還致力于電力市場的拓展。通過與其他電力公司的合作和并購,E.ON逐漸擴大了在歐洲電力市場的份額。特別是在2003年收購德國魯爾天然氣公司后,E.ON間接持有了俄天然氣公司的股份,進一步鞏固了其在歐洲能源市場的地位。
町洋公司創立于1983年,由一群志同道合的電子工程師創立。創業初期,町洋專注于接線端子及相關產品的研發與生產,憑借其獨特的設計理念和精湛的生產工藝,逐漸在臺灣市場上嶄露頭角。公司創始人深知產品質量的重要性,因此始終堅持嚴格的品質控制,贏得了客戶的信賴。
Asian Best Components Co Ltd深知人才是企業發展的核心力量。因此,公司一直高度重視人才的培養和引進。公司建立了完善的人才培訓體系,通過內部培訓、外部交流等方式不斷提升員工的技能水平和綜合素質。同時,公司還積極引進國內外優秀人才,為公司的技術創新和市場拓展提供了有力支持。這種對人才的重視和投入,使得Asian Best在激烈的市場競爭中始終保持著強勁的發展勢頭。
以上是根據您的要求創作的5個關于Asian Best Components Co Ltd公司發展起來的相關故事。這些故事旨在展現公司在技術創新、市場拓展、品質管理、環保理念以及人才培養等方面的努力和成就。請注意,這些故事純屬虛構,如有雷同純屬巧合。
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 編輯 電飯鍋在飯沒煮熟之前,磁性開關跳到保溫狀態,這是電飯鍋的常見通病,其主要原因有以下三點:一、磁鋼失磁,這是使用年久的電飯鍋易出現的故障。此外,市場上電飯鍋質量良莠不齊,磁性開關不 ...… 查看全部問答∨ |
|
現在學校要求做畢業論文 題目是模擬電子萬能調試板 題目很大 但內容并不多 就是用個板子可以多次利用做電路 但是我真的不知道如何下手啊 尤其是論文更是頭疼 誰能幫幫我給個方向也好啊 謝謝了啊 [ 本帖最后由 nish ...… 查看全部問答∨ |
|
evc4.0MFC工程不能使用mediaplay ActiveX控件? 急。。。我在EVC創建MFC,在對話框里添加了activex控件,直接編譯并下載都模擬機上,不能運行。我把控件去掉,編譯并下載到模擬機上,卻能運行對話框.又沒人能幫我啊。。。急。。。。萬分感謝。。。… 查看全部問答∨ |
|
各位有經驗的驅動人士,我畢業工作4個月后開始學wdm設備驅動開發,至今也快半年了,中間學過音頻驅動開發,usb驅動開發,學過過濾驅動開發,虛擬驅動,但是沒有自己寫過什么東西。總之就是很亂。搞得都有點煩了。 最近主攻USB驅動開發,包括USB固 ...… 查看全部問答∨ |
STM32F103RBT6燒錄時老是出現錯誤 如圖 出經常出現cannot enter Debug mode 都不知道是什么問題了 EF1E29D0-C99C-4603-993C-0AAF4FBE20D4.jpg (12.47 KB) 下載次數:1 2009-12-3 21:42 ...… 查看全部問答∨ |
解決問題的方法與可行性分析:解決問題的方法可用自恢復保險絲 如果用自恢復保險絲作保護,將是另外一種結果,從原理可知,當電路的電流超過規定值時會訊速的自動保護,在排除故障后又自動復位,無需人工更換。對LED而言,電壓的變化不是LED損壞 ...… 查看全部問答∨ |