《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > PIC单片机人机接口模块元器件选择说明
PIC单片机人机接口模块元器件选择说明
摘要: PIC16CSX在一个芯片上生成了一个8位算术逻辑单元ALU和工作寄存器W;384bit~2KB的12位程序存储器ROM;32~80个8行数据寄存器RAM;12~20个I/O口端:8位计数器及预分频器;时钟、复位及看门狗计数器等,内部结构如图2所示。
關鍵詞: PIC 人机接口
Abstract:
Key words :

PIC單片機人機接口模塊元器件選擇說明:  

(1)芯片引腳。

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

  表一  PIC16C5X管腳

  PIC16C5X管腳圖如圖1所示

  圖1  PIC16C5X管腳圖

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

  表2  各引腳的功能

  (2)內(nèi)部結構。

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

  圖2  PIC16C5X的內(nèi)部結構

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

 

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

  圖3  PIC16C5X程序存儲器結構

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

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

  (3)相關指令。

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

  ①CALL。

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

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

圖4  PC值對應圖

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

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

  ②RETLW。

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

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

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
主站蜘蛛池模板: 日本三级韩国三级久久| 欧美一区二区视频在线| 久久精品午夜福利| 国产精品乱码视频| 在线丝袜欧美日韩制服| 夜夜添无码一区二区三区| 日韩一级免费在线观看| 日本高清久久一区二区三区| 久久婷婷开心| 国产日韩在线视频| 国产精品高清在线| 欧美日韩精品免费在线观看视频| 日韩在线观看精品| 国产精品久久久久不卡| 久久精品99| 国产成人av一区二区三区| 高清av免费一区中文字幕| 色99中文字幕| 欧美日韩一区二区视频在线| 久久91亚洲精品中文字幕| 夜夜添无码一区二区三区| 亚洲一卡二卡| 色综合久久88| 午夜精品三级视频福利| 日韩精品福利片午夜免费观看| 欧美二区在线看| 国产麻豆一区二区三区在线观看| 亚洲综合在线播放| 久久波多野结衣| 色综合久久久久久久久五月| 午夜精品久久久久久久男人的天堂| 国产精品视频区1| 日韩有码免费视频| 亚洲欧洲精品一区| 91国产中文字幕| 国产精品美女网站| 亚洲精品中文字幕乱码三区不卡| 91成人国产在线观看| 欧美不卡视频一区发布| 日本亚洲欧洲精品| 91av中文字幕|