1. 求個PIC單片機補償演算法的c語言程序(單片機是PIC16F877)
郵件已發送,請查收!
2. c語言與16位單片機
天哪!
那就馬上買個16位單片機的學習班吧,同時也能提供豐富的程序供參考。
要是樓主以前沒有接觸過這東東,要是一月能搞定,樓主也算是天才了。
///////////////////////////////////////////////////////////////
那就學學所用單片機的一些基本功能:IO口基本操作/通訊格式/中斷/其它一些基本應用,所用的編程環境,還有一樓說的那些,本身的語言格式也很重要。總之很多。建議找個人帶帶。
即使學過C語言而沒有學過單片機,一月內能做設計也算非常厲害了。
3. 單片機的學習方法
從剛開始接觸單片機,到現在已經有3年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,LPC2138,PIC16F887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然後將其用於項目中的過程,對於如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是採用這樣的一個步驟進行學習的:
第一步(熟悉的過程):在網上找學習資料,在網上看了很多。印像最深的要數王雲老師的雲龍51單片機視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,邊講邊寫代碼,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,這時對51單片機也就沒有感到陌生了。通過視頻讓我知道了該怎樣學習單片機,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是C語言比匯編更好理解。
第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,買了一款51單片機開發板,然後就開始了我的學習之旅,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之後,後面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。圍繞單片機的LED燈進行控制,通過控制LED燈的亮、滅,熟悉了51單片機的內部的各種資源,這樣就能使我在很短的時間內,將51單片機內部的各個功能部件全部都使用到了。
第三步(項目實戰的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,並沒有起到綜合應用的目的,所以在這之後,我和另外一個學習硬體的同學一起組成了一個小的團隊,進行項目實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基於單片機的液體點滴監控系統。做這個系統時,就將以前單片機所學的知識,做了一個綜合的應用,包括有LCD1602控制,串口的控制等。
經過以上三個步驟的學習之後,對於51單片機的開發基本上就算入門了。而對於其他類型的單片機,如飛思卡爾單片機,LPC2148 ARM7單片機,PIC16F887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟體等差別,所以有了51單片機的開發基礎之後,學習其他單片機所採用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
4. 求大蝦幫忙看一下PIC單片機C語言程序.編譯不通過,不知道錯在哪了,求指導啊。。。。在線等
其實就是少了一句:
unsigned char i;
即主函數中的 i 沒定義,其他沒問題,我把單片機型號設置為PIC16F887.
但是,需要告訴你的是,現在只是沒有語法錯誤而已。實際有否錯你要根據硬體圖和你想做的什麼事來調試!
我是在PICC9.8的版本,MPLAB IDE是在8.63的版本下編譯的,就是在函數上加上那一句就沒有語法錯誤了!!!
5. 單片機c語言編程時會用到哪些常用的C語
關鍵字
用 途
說 明
auto
存儲種類說明
用以說明局部變數,預設值為此
break
程序語句
退出最內層循環
case
程序語句
Switch語句中的選擇項
char
數據類型說明
單位元組整型數或字元型數據
const
存儲類型說明
在程序執行過程中不可更改的常量值
continue
程序語句
轉向下一次循環
default
程序語句
Switch語句中的失敗選擇項
do
程序語句
構成do..while循環結構
double
數據類型說明
雙精度浮點數
else
程序語句
構成if..else選擇結構
enum
數據類型說明
枚舉
extern
存儲種類說明
在其他程序模塊中說明了的全局變數
flost
數據類型說明
單精度浮點數
for
程序語句
構成for循環結構
goto
程序語句
構成goto轉移結構
if
程序語句
構成if..else選擇結構
int
數據類型說明
基本整型數
long
數據類型說明
長整型數
register
存儲種類說明
使用CPU內部寄存的變數
return
程序語句
函數返回
short
數據類型說明
短整型數
signed
數據類型說明
有符號數,二進制數據的最高位為符號位
sizeof
運算符
計算表達式或數據類型的位元組數
static
存儲種類說明
靜態變數
struct
數據類型說明
結構類型數據
swicth
程序語句
構成switch選擇結構
typedef
數據類型說明
重新進行數據類型定義
union
數據類型說明
聯合類型數據
unsigned
數據類型說明
無符號數數據
void
數據類型說明
無類型數據
volatile
數據類型說明
該變數在程序執行中可被隱含地改變
while
程序語句
構成while和do..while循環結構
附表1-1 ANSIC標准關鍵字
關鍵字
用 途
說 明
bit
位標量聲明
聲明一個位標量或位類型的函數
sbit
位標量聲明
聲明一個可位定址變數
Sfr
特殊功能寄存器聲明
聲明一個特殊功能寄存器
Sfr16
特殊功能寄存器聲明
聲明一個16位的特殊功能寄存器
data
存儲器類型說明
直接定址的內部數據存儲器
bdata
存儲器類型說明
可位定址的內部數據存儲器
idata
存儲器類型說明
間接定址的內部數據存儲器
pdata
存儲器類型說明
分頁定址的外部數據存儲器
xdata
存儲器類型說明
外部數據存儲器
code
存儲器類型說明
程序存儲器
interrupt
中斷函數說明
定義一個中斷函數
reentrant
再入函數說明
定義一個再入函數
using
寄存器組定義
定義晶元的工作寄存器
附表1-2 C51編譯器的擴展關鍵字
附錄二 AT89C51特殊功能寄存器列表(適用於同一架構的晶元)
符 號
地 址
注 釋
*ACC
E0H
累加器
*B
F0H
乘法寄存器
*PSW
D0H
程序狀態字
SP
81H
堆棧指針
DPL
82H
數據存儲器指針低8位
DPH
83H
數據存儲器指針高8位
*IE
A8H
中斷允許控制器
*IP
D8H
中斷優先控制器
*P0
80H
埠0
*P1
90H
埠1
*P2
A0H
埠2
*P3
B0H
埠3
PCON
87H
電源控制及波特率選擇
*SCON
98H
串列口控制器
SBUF
99H
串列數據緩沖器
*TCON
88H
定時器控制
TMOD
89H
定時器方式選擇
TL0
8AH
定時器0低8位
TL1
8BH
定時器1低8位
TH0
8CH
定時器0低8位
TH1
8DH
定時器1高8位
帶*號的特殊功能寄存器都是可以位定址的寄存器
6. 16F887單片機和mems通過spi通信,求c語言程序
看看單片機有沒有spi介面,比較方便
也可以用IO口模擬,比較直觀
仔細看晶元手冊,就是幾個命令有用
7. 單片機PIC16F886可以用C語言編程嗎
PIC 系列 單片機都可以用 C語言 或者 匯編語言 編程,只是編譯時要用PIC編譯器。
(51系列 編譯 用 51編譯器)
8. 關於單片機16F887的ADC轉換速度的編程問題
信息不全,無法提供程序:1、LED接在單片機的哪個口;2、LED是高電平還是低電平點亮;3、如何控制流水燈的速度?外面接按鍵,還是每過段時間自動改變,或者其他方式
9. 請教各位大神,我用MCC18編譯MPLAB IDE V8.80的C語言時未能編譯成功,單片機型號是16F877。求解!如下:
MCC18 不支持PIC16,你用picc或者xc8或者
10. 繪制一單片機最小系統電路圖,編寫程序控制P1.7口輸出低電平,並點亮發光二極體。求大神解答哇😭
編程實現對 8 個 LED 的輸出控制 將實驗箱中的 8255 片選信號連接到 218H~21FH,將 8255 的 4 個寄存器地址(A、B、 C 埠及控制字寄存器埠)設置為 218H~21BH。將 8255 的埠 A 的 8 個引腳:PA0~PA7 與 8 個 LED 對應相連,然後打開實驗箱電源,最後編程對 8 個 LED 進行顯示控制。
程序清單:
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,21BH
MOV AL,80H
OUT DX,AL ;工作方式初始化
MOV DX,218H
MOV AL,0FEH ;設置輸出數據,即顯示模式
MOV CX,80 ;設置循環次數
LN: OUT DX,AL
ROL AL,1
CALL DELAY ;調用延遲程序
LOOP LN
MOV AH,4CH
INT 21H ;返回 dos
DELAY PROC ;延遲子程序
PUSH CX
MOV BX,2000
A0: MOV CX,3000
A1: LOOP A1
DEC BX
JNZ A0
POP CX
RET DELAY
ENDP
CODE ENDS
END START。吳鑒鷹單片機開發板。
從剛開始接觸單片機,到現在已經有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,LPC2138,PIC16F887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然後將其用於項目中的過程,對於如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是採用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發板,然後就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞單片機的LED燈進行控制,將51單片機內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制LED燈的亮、滅熟悉了51單片機的內部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是C語言。
第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之後,後面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。