����M051�������GPIO�����O(sh��)�ú꺯��(sh��)
������鹤���Ŀ�_ʼ������ʹ��������M051���_ʼ�I(l��ng)��������M0������M051������������������˽�ٷ��������������w����M0+51�Ī�������,�]�e,�����Ǟ��˔���8λ�C�Ј�����,Ŀ��(bi��o)���dzɞ��8051�����Ć�Ƭ�C.��������.avr�r���ܶ���, �X�ö˿چΪ��xֵ������:�e��-�ɂ�Һ���˿�:
LCD_CLK
LCD_DAT
Ҫ���߸ߵ�,�ܶ����Ø�(bi��o)C,PORTA|=(1<<LCD_CLK_BIT);�@�N��ʽ, ���������λ��+�꺯��(sh��),���F(xi��n)�˺�51�±��^���ݵIJ�����(x��)�T.ֻҪ���x:
#define LCD_CLK PORT(A,7)
#define LCD_DAT PORT(A,6)
����PORT(m,n) ���Լ����ú꺯��(sh��)��(g��u)��ĺ�,���wҊ�P�ߵġ����ں궨�x�ij���avr��Ƭ�Cio�ڲ�������
�@��,���Ժ�51�r��һ�ӷ������. LCD_CLK =1; ��ͬ����.51�Ķ˿ڶ��x��ʽ��sbit LCD_CLK = Px.y; ��M0����������M0���Ԍ��F(xi��n)�@��Ŀ��(bi��o)��:����YES
��(d��ng)Ȼ,ʹ���@ЩGPIO,Ҳ������ͨio���X,���Ҫ�������O(sh��)����GPIOģʽ,���C��������������,����ad ����,����pwm ʲô�� ���]���_��.�@��Ҫ�O(sh��)��MFP�Ĵ���:һ���҂������@��һ�����E��������ͨ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,����,�O(sh��)��MFP��GPIO
2,���,�O(sh��)��GPIO��PINģʽ,������ݔ��߀��ݔ��,߀���p��,߀���_©;
3,��þ��ǿ��Ԍ��˿��M�в�����.�����51;
�����������,������ǰ2����,���ҪҪ�����Լ�ϵ�y(t��ng)��ԭ��D�е�IO���x,�������Pmn�е�m��n ,�����@2��:
_SYS_P40_MFP(SYS_MFP_P40_GPIO);
_SYS_P41_MFP(SYS_MFP_P41_GPIO);
����һ�䌑��,�����һ��ֱ�ӿ�ؐ�����,Ȼ����Z����,���е�40�ij�41,�����@��MFP�O(sh��)��Ҫ��,�����
_GPIO_SET_PIN_MODE(P4, 0, GPIO_PMD_OUTPUT);
_GPIO_SET_PIN_MODE(P4, 1, GPIO_PMD_OUTPUT);
ҲҪ��푑�(y��ng)�Ą�. ���IO���� �y���韩,����,�䌍��ȫ��������C�ď���ĺ�������҂�����@Щ,��������@��,���X���p�ɶ���.
/* 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����(sh��)�ֵ�����.�dz�����,��(d��ng)ȻPIN��ģʽҪ�ĵĕr��,���Ѻ����GPIO_PMD_QUASI,ģʽ���x�ij�������.�@�Ӳ����N�ܶ���.SET_MFP_GPIO(m,n,mode) �@������(sh��)���˴�æ. �@������(sh��)����߀�ǽ����ڹٷ���Bsp ,ֻ���^���˚w�{���Y(ji��).���w�ļ��g(sh��)����(ji��)����:
/** �O(sh��)��Pm.n��MFP��GPIO,���x��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)
��Ҫ�������˺�朽ӷ�,##, ��ԭ���ķ�ɢ�Եķֲ�����.��������.�y(t��ng)һ��������. ��λͬ�W(xu��),�X������.���� �ղ�һ��.�����Ӵ��a,��������˱�����.

����admin ����ĕr�g��2018-12-27