在mikroC PRO for PIC v.5.3.0中,點(diǎn)擊菜單file->new->new project。選擇器件PIC18F45K22,項(xiàng)目名MyLCD。Device Clock設(shè)為8MHz(因板上晶振為8MHz)。
Add file那步可以先跳過。Include Libraries選擇Include None(Advance)。Open Edit Project window to set configuration bits前打鉤,按Finish。
在彈出的Edit Project對話框中,
1、Oscillator selection選擇HS oscillator(medium power 4-16 MHz)因晶振為8MHz。
2、4X PLL Enable選擇Enable。這樣系統(tǒng)時鐘可達(dá)32MHz。
3、Primary clock enable bit選擇Enable??偸鞘鼓苤鲿r鐘。
4、Fail-Safe Clock Monitor選擇Disable。不用啟動故障保障時鐘監(jiān)視器。
5、Int/Ext Oscillator switchover選擇Disable。禁止振蕩器切換模式。
6、Power-up timer選擇Disable。禁止上電延時定時器(PWRT)。
7、Brown-out Reset選擇Brown-out Reset enabled in hardware only(SBOREN is disabled)。硬件使能欠壓復(fù)位,禁止用軟件控制欠壓復(fù)位。
SBOREN:BOR 軟件使能位(1)
如果BOREN<1:0> = 01:
1 = 使能BOR
0 = 禁止BOR
如果BOREN<1:0> = 00、10 或11:
該位被禁止并讀為0。
8、Brown-out Reset Voltage選擇VBOR set to 1.90V nominal。欠壓復(fù)位門限為1.90V。
9、Watchdog Timer選擇Disabled。禁用看門狗定時器。
10、Watchdog Timer Postscale選擇1:32768。因?yàn)榻昧丝撮T狗定時器,該設(shè)置沒實(shí)際意義。
11、CCP2 MUX bit選擇CCP2 input/output is multiplexed with RC1。CCP2(捕捉/比較/PWM模塊2)輸入輸出口為RC1。
12、PORTB A/D選擇Disabled。PORTB<4:0> 引腳在復(fù)位時被配置為數(shù)字I/O
13、P3A/CCP3 Mux bit選擇P3A/CCP3 input/output is multiplexed with RB5。P3A(增強(qiáng)型CCP3 PWM 輸出1)/CCP3輸入輸出口為RB5
14、HFINTOSC Fast Start-up選擇Enabled。HFINTOSC開始為CPU 提供時鐘而無需等待振蕩器穩(wěn)定下來
15、Timer3 Clock input mux選擇T3CKI is on RC0。計(jì)數(shù)/定時器3輸入口為RC0。
16、ECCP2 B output mux選擇P2B is on RD2。P2B(增強(qiáng)型CCP2 PWM 輸出2)輸出口為RD2。
17、MCLR Pin選擇MCLR pin enabled,RE3 input pin disabled。使能RE3輸入引腳;禁止MCLR。
18、Stack Full/Underflow Reset選擇Enabled。堆棧滿/下溢導(dǎo)致復(fù)位。
19、Low Voltage Program選擇Disabled。禁止單電源ICSP 編程。
LVP 配置位使能單電源ICSP 編程(原來稱為低電壓ICSP編程或LVP)。當(dāng)使能單電源編程時,單片機(jī)可以在無需對MCLR/VPP/RE3 引腳施加高電壓的情況下進(jìn)行編程。
注1:通過將VIHH 施加到MCLR 引腳,就可以進(jìn)行高電壓編程,與LVP 位的狀態(tài)無關(guān)。
2:默認(rèn)情況下,使能對未編程器件(如Microchip提供的)和已擦除器件進(jìn)行單電源ICSP 編程。
3:處于低電壓ICSP 模式時,MCLR 總是使能,與MCLRE 位無關(guān),并且RE3 引腳不能再用作通用輸入。
LVP 位僅可在使用標(biāo)準(zhǔn)高電壓編程時被置1 或清零(VIHH 被施加到MCLR/VPP/RE3 引腳)。一旦LVP 被禁止,只能使用標(biāo)準(zhǔn)高電壓編程來對器件進(jìn)行編程。不受代碼保護(hù)的存儲器可以使用塊擦除或逐行擦除進(jìn)行擦除,然后在任何的VDD 下進(jìn)行寫入。如果要擦除受代碼保護(hù)的存儲器,需要進(jìn)行塊擦除。
20、Extended Instruction Set選擇Disabled。禁止指令集擴(kuò)展和變址尋址模式(傳統(tǒng)模式)。
21、Background Debug選項(xiàng),在ICD Debug(在線調(diào)試)時選Enabled,否則選Disabled。
22、后面Code Protection Block的可選not code-protected。
23、之后的關(guān)于保護(hù)的都可選Disabled。
24、oscillator frequency[MHz]填32,000000。因8MHz(晶振)*4(4X PLL)=32MHz。
點(diǎn)擊菜單view->windows,選擇Library Manager。在Glcd與Glcd_Fonts前的框中打鉤,以包含Glcd庫。Glcd庫中有各種Glcd操作函數(shù)。
點(diǎn)擊菜單view->project manager。
打開項(xiàng)目管理器。
創(chuàng)建bitmaps.c與MyLCD.c文件,往source目錄添加這兩個*.c文件。
方法:右鍵“Souces”,點(diǎn)擊Add files to Project。
在MyLCD.c中寫入代碼模板。
char GLCD_DataPort at PORTD; //數(shù)據(jù)端配置
sbit GLCD_CS1 at LATB0_bit;
sbit GLCD_CS2 at LATB1_bit;
sbit GLCD_RS at LATB2_bit;
sbit GLCD_RW at LATB3_bit;
sbit GLCD_EN at LATB4_bit;
sbit GLCD_RST at LATB5_bit; //控制端配置
sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB3_bit;
sbit GLCD_EN_Direction at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB5_bit; //引腳方向
// End Glcd module connections 以上配置要與原理圖匹配。
void delay2S(){ // 2 seconds delay function
Delay_ms(2000);
}
void main() {
ANSELB = 0; // 配置PORTB為數(shù)字I/O
ANSELD = 0; // 配置PORTD為數(shù)字I/O
Glcd_Init(); // 初始化GLCD
Glcd_Fill(0x00); // 清屏GLCD
while(1) {
//自定義代碼
}
}
下圖是GLCD接線圖,請根據(jù)接線配置程序,如圖可知,portD作數(shù)據(jù)線,portB各位作控制端。
點(diǎn)擊tool->GLCD Bitmap Editor,打開該編輯器。選KS0108選項(xiàng)卡。Compiler選mikroC PRO。
按Load Bitmap,載入128*64的BMP圖像。
將generated code內(nèi)的代碼復(fù)制到bitmap.c文件中。
之后在MyLCD.c文件中進(jìn)行如下操作:
在文件開頭加:
const code char phone[1024]; //聲明外部數(shù)組
在循環(huán)體內(nèi)加入
while(1) {
//自定義代碼
Glcd_Image(phone); // 繪圖“phone”
Delay2s(); Delay2s(); // 延時4s
Glcd_fill(0x00); //清屏
}
注意:數(shù)組bitmap.c中的常量數(shù)組名、MyLCD.c中聲明外部數(shù)組名、Glcd_Image()函數(shù)參數(shù)名,這三個地方必須一致。
二、開發(fā)板設(shè)置:
1、開發(fā)芯片為PIC18F45K22,編程器跳線設(shè)置如下:
其原理圖:
如上圖:
mikroProg的MCU-VPP接至PIC芯片的MCLR-RE3腳。
mikroProg的MCU-PGC接至PIC芯片的RB6-MCU。
mikroProg的MCU-PGD接至PIC芯片的RB7-MCU。
mikroProg的BOARD-VPP接至復(fù)位電路的#RST。
mikroProg的BOARD-PGC接至板上RB6。
mikroProg的BOARD-PGD接至板上RB7。
mikroProg內(nèi)部結(jié)構(gòu)如下圖:
編程時,MCU-PGD、MCU-PGC、MCU-VPP分別接到PGD、PGC、MCLR。
當(dāng)編程完成時,MCU-PGD、MCU-PGC、MCU-VPP分別接到BOARD-PGD、BOARD-PGC、BOARD-VPP。
因此編程時,板上RB6與芯片RB6-MCU是斷開的,板上RB7與芯片RB7-MCU是斷開的,MCLR-RE3與復(fù)位電路的#RST是斷開的,編程器不影響板上其它外設(shè)。
編程完成后,板上RB6接至芯片RB6-MCU,板上RB7接至芯片RB7-MCU,MCLR-RE3接至復(fù)位電路的#RST。
2、電源跳線設(shè)置
選擇USB供電,選擇5V板上電壓。
原理圖如下:
mikroProg Suite for PIC編程軟件中,可設(shè)置有編程器提供板上電源,電壓值可選(1.8V-5V),我們選擇5V。
把SW4.6開關(guān)推向ON,開啟GLCD背光。
三、下載與調(diào)試
在線調(diào)試步驟:
點(diǎn)擊Project->edit project。
在build type框中,選擇ICD Debug。
點(diǎn)擊菜單Build->build and program。編譯器編譯程序,并自動開啟mikroProg Suite for PIC,并將程序燒入芯片。
點(diǎn)擊菜單run->start debugger
若不需要調(diào)試,則
點(diǎn)擊Project->edit project。
在build type框中,選擇Release。
點(diǎn)擊菜單Build->build and program。編譯器編譯程序,并自動開啟mikroProg Suite for PIC,并將程序燒入芯片。
免責(zé)聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
2025第21屆鄭州工業(yè)自動化展
展會城市:鄭州市展會時間:2025-05-09