PIC16C5X系列是PIC系列的基礎(chǔ)級產(chǎn)品,現(xiàn)在,介紹該系列的典型芯片PIC16C54。
一、PIC16C54概述:
1)結(jié)構(gòu)圖:
| 程序存儲器EPROM | |
| 定時器 | 數(shù)據(jù)存儲器RAM |
| CPU | 輸入輸出接口 |
圖1
PIC16C54主要資源:
* 512×12位EPROM
* 25字節(jié)通用RAM
* 12根雙向I/O線
* TMR0定時器/計數(shù)器
* 上電復(fù)位POR電路
* 復(fù)位定時器
* 自振式看門狗WDT.
2)指令周期:
PIC16C54采用8位寬的數(shù)據(jù)總線和12位寬指令總線相互獨立的哈佛(Harvard)結(jié)構(gòu),與其它一些單片機相比,程序代碼更加緊湊,指令執(zhí)行速度更快。圖(2) 所示的是 時鐘/指令時序圖

圖2
[NextPage]
如圖2所示,從引腳OSC1輸入或振蕩電路產(chǎn)生的時鐘信號在內(nèi)部經(jīng)四分頻產(chǎn)生四個不重疊的時鐘 Q1,Q2,Q3,Q4。程序計數(shù)器PC在每個Q1節(jié)拍間加1,指令在Q4節(jié)拍從程序存儲器中取出并鎖存于指令寄存器中,在下一指令周期被譯碼并執(zhí)行。因此,在程序執(zhí)行過程中,取指令與執(zhí)行指令可重迭進行,即當一條指令被執(zhí)行時,下一條指令已從程序存儲器中讀出。
3)引腳功能說明

RA0-RA3:可位控4位雙向I/O口,輸入為TTL電平
RB0-RB7:可位控8位雙向I/O口,輸入為TTL電平
TOCKI:定時器/計數(shù)器TMR0的外部觸發(fā)計數(shù)信號輸入端。軟件定義TMR0為計數(shù)器時,此引腳上的信號上升沿或下降沿用于計數(shù),可通過軟件設(shè)置OPTION寄存器相應(yīng)的控制位選擇觸發(fā)邊沿,當TMR0為內(nèi)部時鐘源時,該引腳當接VDD或VSS,以減少功耗。
MCLR:當為低電平時,單片機復(fù)位
VSS:地端
VDD:電源電壓
OSC1:振蕩信號輸入端
OSC2:振蕩信號輸出端
二.應(yīng)用實例
|
如圖4所示,PIC16C54芯片處于睡眠狀態(tài),當任一按鍵按下,將喚醒PIC16C54進行鍵盤處理。本例中,按下SW1,點亮綠燈,按下SW2,點亮紅燈。 進入睡眠時,應(yīng)將鍵掃描輸出線SCAN1,SCAN2置為低電平,進入睡眠后,電容C被充分充電,使MCLR保持高電平。當有按鍵按下時,電容C經(jīng)電阻R2或R3放電,其兩端電壓迅速下降(下降時間約為1ms),從而使MCLR下拉為低電平,進入復(fù)位。喚醒PIC16C54的復(fù)位時間(大約為18ms),也應(yīng)更小于鍵按下的最小時間(大約為50-100ms)。 每次掃描即SCAN1,SCAN2為低電平的時間大約為10ms,當鍵處理程序完成后,程序?qū)︽I盤循環(huán)掃描直至鍵釋放,然后將SCAN1,SCNA2輸出置為低電平,單片機重新進入睡眠。圖中所示的電阻R4-R8用來防止電容C放電產(chǎn)生的大電流,保護芯片。
程序清單: ORG 0 |
![]() 圖5 |












