《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)人機(jī)接口模塊元器件選擇說(shuō)明
PIC單片機(jī)人機(jī)接口模塊元器件選擇說(shuō)明
摘要: PIC16CSX在一個(gè)芯片上生成了一個(gè)8位算術(shù)邏輯單元ALU和工作寄存器W;384bit~2KB的12位程序存儲(chǔ)器ROM;32~80個(gè)8行數(shù)據(jù)寄存器RAM;12~20個(gè)I/O口端:8位計(jì)數(shù)器及預(yù)分頻器;時(shí)鐘、復(fù)位及看門狗計(jì)數(shù)器等,內(nèi)部結(jié)構(gòu)如圖2所示。
關(guān)鍵詞: PIC 人機(jī)接口
Abstract:
Key words :

PIC單片機(jī)人機(jī)接口模塊元器件選擇說(shuō)明:  

(1)芯片引腳。

  12~20根為PIC16C5X的雙向可獨(dú)立編程I/O口,每根I/O口都可由程序來(lái)編程決定其輸入/輸出方向。PIC16C5X有5種型號(hào),如表1所示

  表一  PIC16C5X管腳

  PIC16C5X管腳圖如圖1所示

  圖1  PIC16C5X管腳圖

  各引腳的功能描述如表2所示

  表2  各引腳的功能

  (2)內(nèi)部結(jié)構(gòu)。

  PIC16CSX在一個(gè)芯片上生成了一個(gè)8位算術(shù)邏輯單元ALU和工作寄存器W;384bit~2KB的12位程序存儲(chǔ)器ROM;32~80個(gè)8行數(shù)據(jù)寄存器RAM;12~20個(gè)I/O口端:8位計(jì)數(shù)器及預(yù)分頻器;時(shí)鐘、復(fù)位及看門狗計(jì)數(shù)器等,內(nèi)部結(jié)構(gòu)如圖2所示。

  圖2  PIC16C5X的內(nèi)部結(jié)構(gòu)

  如圖2所示,PIC16C5X有個(gè)特點(diǎn),就是把數(shù)據(jù)存儲(chǔ)器RAM當(dāng)作寄存器來(lái)尋址以方便編程。寄存器組按功能分為兩部分,即特殊寄存器組和通用寄存器組。特殊寄存器組包括實(shí)時(shí)鐘計(jì)數(shù)器RTCC、程序計(jì)數(shù)器PC、狀態(tài)寄存器Status、I/O口寄存器以及存儲(chǔ)體選擇寄存器FSR。PIC總線結(jié)構(gòu)采取數(shù)據(jù)線(8位)和指令線(2位)獨(dú)立分離的哈佛(Harvard)結(jié)構(gòu),這樣可使單片機(jī)的指令速度得到提高。當(dāng)一條指令在ALU中執(zhí)行時(shí),下一條指令己經(jīng)被取出放到指令寄存器等待執(zhí)行了。算術(shù)邏輯單元ALU和工作寄存器(W)承擔(dān)算術(shù)邏輯操作任務(wù)。

 

  PIC16C5X提供二級(jí)堆棧(Stack),所以子程序調(diào)用只有兩層,使用時(shí)一定要注意這點(diǎn),否則程序運(yùn)行時(shí)將失去控制。PICIGC5X內(nèi)部有384bit~2KB的只讀程序存儲(chǔ)器,下面介紹其結(jié)構(gòu)和堆棧,PICIGC5X程序存儲(chǔ)器結(jié)構(gòu)如圖3所示。

  圖3  PIC16C5X程序存儲(chǔ)器結(jié)構(gòu)

  從圖3可以看出,PIC程序存儲(chǔ)器采用分頁(yè)結(jié)構(gòu),每頁(yè)長(zhǎng)0.5KB,因此PIC16C52程序存儲(chǔ)器在1頁(yè)之內(nèi),而PIC16C54和PICISC55程序存儲(chǔ)器容量為1頁(yè),PICI6C56和PICI6C57的容量則分別為2頁(yè)和4頁(yè)。頁(yè)面地址由狀態(tài)寄存器B的第5位和第6位(PA0、PA1)確定。

  程序轉(zhuǎn)移時(shí),在本頁(yè)內(nèi)可直接進(jìn)行,在需跨頁(yè)跳轉(zhuǎn)時(shí)(GOTO、CALL指令),則必須根據(jù)將要跳轉(zhuǎn)去的頁(yè)面,把f3中的PA0、PA1位置成相應(yīng)的值。

  (3)相關(guān)指令。

  堆棧PICIGC5X設(shè)有兩層堆棧,堆棧1和堆棧2,供子程序調(diào)用。涉及堆棧操作的指令有兩條。

  ①CALL。

  在主程序中第一次執(zhí)行CALL指令時(shí),將PC值加1后推入堆棧1,堆棧1原有的內(nèi)容則被推入堆棧2中。這時(shí)子程序中還可再做一次子程序嵌套,即再執(zhí)行一次CALL指令。如果子程序調(diào)用多于二層時(shí),堆棧中只存放最近的兩個(gè)返回地址。

  當(dāng)執(zhí)行一條CALL指令時(shí),狀態(tài)寄存器F3中將頁(yè)面尋址位PA1、PA0置入PC的最高兩位(第11位和第10位),而PC的第9位總是被置為0,如圖4所示。

圖4  PC值對(duì)應(yīng)圖

  這意味著在PIC16C5X中,子程序起始地址只能放在每個(gè)程序存儲(chǔ)頁(yè)面的上半頁(yè),即低地址的那一半(000~0FF、200~2FF、400~4FF、600~6FF)。

  調(diào)用子程序前必須先把F3中的PA0、PA1設(shè)置成該子程序所在的頁(yè)面地址,返回后再將其恢復(fù)成當(dāng)前的頁(yè)面值,但如果這時(shí)子程序是在同一頁(yè)面,則可省去這一過(guò)程。

  ②RETLW。

  該指令把堆棧1的值寫入PC,同時(shí)還把堆棧2的值拷貝到堆棧1去。子程序總是返回到調(diào)用它時(shí)所在的位置,不管它處在什么頁(yè)面,也不管F3寄存器中的PA0、PA1此時(shí)指在什么頁(yè)面。

  但是執(zhí)行RETLW(子程序返回)指令并不會(huì)改變F3中PA0、PA1的值,所以當(dāng)從一次跨頁(yè)面的子程序調(diào)用返回時(shí),不要忘了恢復(fù)F3中原先PA0和PA1值。

  由于堆棧和PC的寬度是相同的,所以可以在程序的任何位置執(zhí)行一條CALL指令來(lái)調(diào)用子程序。但是對(duì)于跨頁(yè)面的調(diào)用,要小心處理B中的頁(yè)面地址位PA0和PA1。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 强行扒开双腿猛烈进入| 最新版天堂中文在线| 午夜成人在线视频| 视频一区在线播放| 国产步兵社区视频在线观看| 99久久99久久久精品久久| 少妇人妻av无码专区| 丰满多毛的大隂户毛茸茸| 日韩免费中文字幕| 五月综合色婷婷| 欧美交换性一区二区三区| 亚洲永久精品ww47| 特级aa**毛片免费观看| 影音先锋成人资源| 久久久久久久久久久久久久久 | 欧美日本在线播放| 亚洲第一永久色| 爱情岛论坛亚洲永久入口口| 免费无码成人片| 精品国产亚洲一区二区三区| 后入内射欧美99二区视频| 色婷婷激婷婷深爱五月小蛇| 国产午夜精品一区二区三区不卡| 黑人video| 国产欧美日韩一区二区三区 | 在线|一区二区三区四区| a级毛片100部免费观看| 女人扒开腿让男人捅| 一区在线免费观看| 少妇愉情理伦片丰满丰满| 一级毛片在线播放| 岛国大片在线免费观看| 一本大道香蕉视频在线观看| 成人区人妻精品一区二区不卡网站| 丽玲老师高跟鞋调教小说| 无翼乌全彩本子lovelive摄影| 久久久久亚洲AV综合波多野结衣| 日本动态120秒免费| 久久久噜噜噜久久熟女AA片| 日本免费人成黄页网观看视频| 久久亚洲伊人中字综合精品|