????M051???????GPIO?????ú???
????????????????????????????????M051????????????M0??????M051??????????????????????????????????????M0+51?????????,???,????????????8λ???г?????,??????????8051??????????.????????.avr????????, ??????????????????:????-??????????:
LCD_CLK
LCD_DAT
???????,????????C,PORTA|=(1<<LCD_CLK_BIT);??????, ??????????λ??+????,??????51?±????????????.??????:
#define LCD_CLK PORT(A,7)
#define LCD_DAT PORT(A,6)
????PORT(m,n) ???????ú?????????,?????????????????????avr?????io?????????
????,?????51?????????????. LCD_CLK =1; ???????.51??????巽???sbit LCD_CLK = Px.y; ??M0??????????M0???????????????:????YES
???,?????ЩGPIO,????????io???,????????????趨??GPIO??,????????????????,????ad ????,????pwm ???? ????п???.????????MFP?????:??????????????????????????????IO??,
void LED_Init(void)
{
/* Configure P4.0 - P4.5 as GPIO mode */
_SYS_P40_MFP(SYS_MFP_P40_GPIO);
_SYS_P41_MFP(SYS_MFP_P41_GPIO);
_SYS_P42_MFP(SYS_MFP_P42_GPIO);
_SYS_P43_MFP(SYS_MFP_P43_GPIO);
_SYS_P44_MFP(SYS_MFP_P44_GPIO);
_SYS_P45_MFP(SYS_MFP_P45_GPIO);
/* Configure P3.2 - P3.7 as GPIO mode */
_SYS_P32_MFP(SYS_MFP_P32_GPIO);
_SYS_P33_MFP(SYS_MFP_P33_GPIO);
_SYS_P34_MFP(SYS_MFP_P34_GPIO);
_SYS_P35_MFP(SYS_MFP_P35_GPIO);
_SYS_P36_MFP(SYS_MFP_P36_GPIO);
_SYS_P37_MFP(SYS_MFP_P37_GPIO);
/* Configure P4.0 - P4.5 as Output mode */
_GPIO_SET_PIN_MODE(P4, 0, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 1, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 2, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 3, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 4, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 5, GPIO_PMD_OUTPUT);
/* Configure P3.2 - P3.7 as Output mode */
_GPIO_SET_PIN_MODE(P3, 2, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P3, 3, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P3, 4, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P3, 5, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P3, 6, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P3, 7, GPIO_PMD_OUTPUT);
/* Configure P4.0 - P4.5 as HIGH */
P40=P41=P42=P43=P44=P45=1;
/* Configure P3.2 - P3.7 as HIGH */
P32=P33=P34=P35=P36=P37=1;
}
1,????,????MFP?GPIO
2,???,?趨GPIO??PIN??,????????????????,???????,??????;
3,??????????????в?????.??????51;
???????????,???????2????,??????????????????????е?IO????,????????Pmn?е?m??n ,??????2??:
_SYS_P40_MFP(SYS_MFP_P40_GPIO);
_SYS_P41_MFP(SYS_MFP_P41_GPIO);
???????д??,???????????????????,?????????,???е?40???41,???????MFP???????,?????
_GPIO_SET_PIN_MODE(P4, 0, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 1, GPIO_PMD_OUTPUT);
??????????. ???IO???? ?????鷳,????,??????????????C??????????????????????Щ,???????????,?о??????????.
/* 1--Configure P0.1\P0.2\P0.3\P0.4\P0.5\ as GPIO mode
* meanwhile, set the PIN mode:
*/
SET_MFP_GPIO(0,1,GPIO_PMD_QUASI);
SET_MFP_GPIO(0,2,GPIO_PMD_QUASI );
SET_MFP_GPIO(0,3,GPIO_PMD_QUASI);
SET_MFP_GPIO(0,4,GPIO_PMD_INPUT);
SET_MFP_GPIO(0,5,GPIO_PMD_INPUT);
,?????д??,?????,?????1-2???????????.???????,???PIN???????????,?????????GPIO_PMD_QUASI,????????????????.????????????????.SET_MFP_GPIO(m,n,mode) ?????????????. ????????????????????????Bsp ,???????????????.???????????????:
/** ????Pm.n??MFP?GPIO,?????IO??
* 1,Setting port_m?? pin_n?????GPIO
* 2,setting port_m?? pin_n??????????????pin mode
*/
#define SET_MFP_GPIO(port_m,pin_n,PINmode) _SYS_P##port_m##pin_n##_MFP(SYS_MFP_P##port_m##pin_n##_GPIO); \
_GPIO_SET_PIN_MODE(P##port_m, pin_n, PINmode)
?????????????????,##, ??????????????????.????????.??????????. ??λ??,????????.???? ??????.?????????,??????????????.

????admin ?????????2018-12-27