谁能帮我翻译一下这个程序

如题所述

第1个回答  2017-04-08

谁能帮我把这个程序全部详细翻译一下啊?

//端口初始化:void Init_Port(void){P1DIR=0; //P1DIR什么意思?P1SEL=0; //P1SEL是什么意思?P1DIR |=BIT0; //P1DIR跟谁位逻辑或赋值给BIT0P1DIR |=BIT1;P1DIR |=BIT2;return;}//管脚高低电平产生程序:void SHCLK_Hi(void){P1OUT |=BIT2;return;}void SHCLK_Lo(void){P1OUT &=-(BIT2); //这个 -(BIT2)什么意思return;}void SHCLK_Hi(void){P1OUT |=BIT1;return;}void SHCLK_Lo(void){P1OUT &=-(BIT1);return;}/*上面的程序是通过相应的管教产生高低电平。*///数据显示程序:void DataOut(unsigned char nValue){int i;int j;for(i=0;i<8;i++){if((nvalue & 0x01)==1){P1OUT |=BIT0;}else{P1OUT &=-(BIT0);}SHCLU_HI();SHCLK_Lo();for(j=10;j>0;j++)nvalue>>=1;}return;}/*这部分程序通过P1.0管脚输出数据,zai输山数据的时候,产生相应的移位时钟信号。*///数据显示程序:void main(void){unsigned char nvalue;Init_CLK();Init_Port();STCLK_Lo();nvalue=0;DataOut(seg[nvalue]);nvalue=2;DataOut(seg[nvalue]);STCLK_Hi();return;}/*在上面的程序中,Init_CLK()为初始化时钟*/


看似C51系列单片机,我根据经验给你大致猜测一下。P1是并行口,每个比特可以设置为输入或输出。输入还是输出由方向控制寄存器(P1DIR)来控制,输出的值放在P1OUT中。P1DIR=0; //设置所有位为输入P1SEL=0; //普通IOP1DIR |=BIT0;//位0设为输出P1OUT |=BIT2;//位2输出‘1’P1OUT &=-(BIT2); //其实等价于P1OUT &=~(BIT2);位2输出‘0’DataOut()函数就是将一个字节数据串行从P0口的位0输出,LSB first. 另外一条线用来产生时钟信号。不过有两个SHCLK_Hi函数,不一致。

查一下吧,那个是你想要的。

相似回答