首頁 > 評測 > 引腳連錯了?沒關(guān)系重映射一下就好了——Holychip HC89F003評測

引腳連錯了?沒關(guān)系重映射一下就好了——Holychip HC89F003評測

Holychip   HC89F003   8位單片機(jī)   51   MCU   
  • 作者:杰杰
  • 來源:21ic
  • [導(dǎo)讀]
  • 雖然16位單片機(jī)已經(jīng)被超低功耗的32位單片機(jī)擠壓的幾乎要消失殆盡,而8位單片機(jī)卻一直憑借輕盈小巧和價格低廉的優(yōu)勢占據(jù)市場。目前8位單片機(jī)皆根據(jù)各種各種特定應(yīng)用而推出了不同的增強(qiáng)型,今天給大家評測的來自Holychip(芯圣)的HC89F003則是以引腳的重映射功能著稱。雖然很多MCU均有重映射的功能,不過像HC89F003這樣絕大多數(shù)引腳皆可重映射的并不多見。
* GPIO_PIN_4 //選擇端口4

* GPIO_PIN_5 //選擇端口5

* GPIO_PIN_6 //選擇端口6

* GPIO_PIN_7 //選擇端口7

* @參數(shù) GPIO_Mode : 初始化模式

* GPIO_MODE_IN //數(shù)字輸入

* GPIO_MODE_IN_PD //帶下拉輸入

* GPIO_MODE_IN_PU //帶上拉輸入

* GPIO_MODE_IN_AN //模擬輸入

* GPIO_MODE_IN_SMT //數(shù)字輸入 SMT

* GPIO_MODE_IN_PD_SMT //帶下拉輸入 SMT

* GPIO_MODE_IN_PU_SMT //帶上拉輸入 SMT

* GPIO_MODE_IN_AN_PU_PD //模擬輸入上下拉同時打開,B版以后芯片支持

* GPIO_MODE_OUT_PP //推挽輸出

* GPIO_MODE_OUT_OD //開漏輸出

* GPIO_MODE_OUT_OD_PU //開漏帶上拉輸出

* @返回值 無

* @注 無

*/

void GPIO_Init(GPIO_TypeDef GPIOx,GPIO_Pin_TypeDef GPIO_PIN,GPIO_Mode_TypeDef GPIO_Mode)

{

u8 i;

u8 xdata *gpioset;

gpioset = 0xFF00 | ((GPIOx - 1)<<3);

for(i=0;i<8;i++){

if((GPIOx == GPIOT1)&&(i>1))break;

if(GPIO_PIN&0x01){

*(gpioset+i/2) = ((*(gpioset+i/2)) & (0xF0 >> ((i%2)*0x04))) | (GPIO_Mode << ((i%2)*0x04));

}

GPIO_PIN >>= 1;

}

}

上面是void GPIO_Init(GPIO_TypeDef GPIOx,GPIO_Pin_TypeDef GPIO_PIN,GPIO_Mode_TypeDef GPIO_Mode)的原函數(shù)。。

有興趣的可以跳進(jìn)去看一下。不看也可以。

打開HC89F_GPIO.H

拉倒最下面。有g(shù)pio的函數(shù),可以直接調(diào)用。

holychip-16.png

比如我們需要點(diǎn)亮一個led燈,調(diào)用這個函數(shù)就可以了:

void GPIO_Write(GPIO_TypeDef GPIOx,u8 Value); //對一組端口賦值

看板子的原理圖:

holychip-17.png

holychip-18.png

LED1連在HC89F003的P11腳,那我們點(diǎn)亮他就是讓P11腳為低電平就行了。

void main(void)

{

System_init(); //系統(tǒng)初始化

GPIO_Init(GPIOT1,GPIO_PIN_1, GPIO_MODE_OUT_PP); //P00設(shè)置為推挽輸出模式

GPIO_Write(GPIOT1,0xFD); //設(shè)置P11腳為低電平

while(1);

}

holychip-19.png

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項(xiàng)目外包 more+