摘要:。
關(guān)鍵字:類別:顯示
作者:丁錦滔
下面以控制PIC16F84A單片機(jī)端口寄存器PORTB口外接的8只LED任一位的亮滅為例,介紹相關(guān)C語言程序的編寫。電路如下圖所示。
PIC16F84A單片機(jī)點(diǎn)燈電路圖PIC16F84A FLASH LED" height="350" src="http://files.chinaaet.com/images/2012/06/16/b9aafd01-964b-484f-b0fa-1d1a19031d9d.jpg" width="376" />
使用MPLABIDEV7.40集成開發(fā)環(huán)境及PICC編譯器所生成的C語言源程序又稱源文件。
在編寫C的源程序時(shí),需要定義硬件的標(biāo)志頭文件(也稱包含頭文件或頭文件)。因?yàn)橛脩艚?jīng)常使用的標(biāo)準(zhǔn)寄存器地址和其位地址都被定義在Pic.h標(biāo)志頭文件中。按C語言編譯器編譯源程序的語法規(guī)則,在編寫C語言程序時(shí),必須使用#include語句,把這個(gè)pic.h頭文件包含到自己的源程序中。即對于PIC中級產(chǎn)品的單片機(jī),C語言程序的開頭是固定格式#include。編譯器在編譯處理#include語句時(shí),會把pic.h的內(nèi)容,復(fù)制到你的源程序中,這樣PICC才認(rèn)為用戶使用的標(biāo)準(zhǔn)寄存器的端口地址和端口的位地址已經(jīng)被定義,源程序就會合法地使用這些標(biāo)準(zhǔn)寄存器及其對應(yīng)的位。
PIC16F84A單片機(jī)PORTB口外接8只LED間亮和位1、2、6外接的LED分別點(diǎn)亮的程序清單如下(源文件名PIC01.C):
說明:以上是一個(gè)完整的,可執(zhí)行上圖LED點(diǎn)燈的C程序,主要由端口寄存器PORTB口的位定義,延時(shí)函數(shù)delay()定義;主函數(shù)main()、延時(shí)函數(shù)voiddelay()及各種語句等組成。
該C程序第三行以符號“∥”開頭的說明文是一個(gè)注釋,它可在一行內(nèi)寫完,亦可分多行寫完。注釋可寫在程序的任何位置,用于幫助閱讀和理解程序,說明程序的相關(guān)功能、注意事項(xiàng),以及說明有關(guān)算法等。注釋應(yīng)盡可能簡捷。在編譯時(shí),注釋不產(chǎn)生代碼。C程序還可用“/#”開頭到“#/”結(jié)尾之間的內(nèi)容作注釋,與符號“∥”開頭的注釋是等效的。
上述程序的第一行,是引導(dǎo)程序開始的用#include語句的頭文件。
第二行是PIC單片機(jī)PORTB口的位定義,這里指8位,即(&add)*8。
第三行是第二行端口寄存器PORTB的位定義的注釋。
第四行~第六行是端口寄存器PORTB口的RB0、RB1、RB6三位的定義,以便在后續(xù)程序中對其賦值之用。
第七行是RB0、RB1、RB6三位的定義注釋。
第八行是延時(shí)函數(shù)的定義第九行到結(jié)尾的功能(參看相關(guān)注釋)。