跪求把这个51单片机代码改成MSP430 5529代码,小弟不才谢谢了

2019-07-15 15:59发布

#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define NOP() _nop_() sbit MOSIO=P3^3;sbit R_CLK=P3^5;sbit S_CLK=P3^6;   //74HC595芯片控制LED sbit G=P2^0;          //室外光敏传感器sbit S=P2^1;      //走廊声敏传感器sbit H=P2^2;          //室内楼层一,红外热释电传感器sbit H1=P2^3;     //室内一楼到二楼,楼梯,红外热释电传感器sbit led0=P1^5;   //走廊声控sbit led=P1^6;          //室内楼层一,灯泡控制sbit led1=P1^7;   //走廊灯泡控制 //变量定义 void ZL();void  EL();void delay(uint i);void HC595SendData(uchar SendVal);void Com_Init();void DJ();void ERL();//函数定义 void main(){                uchar Led=0xfe;        uint l=0;        uchar temp;        Com_Init();         temp=0x00;        //初始化串口通讯为方式0        led0=0;        led1=0;         TMOD=0x06;        TH0=1;        TL0=1;        EA=1;        ET0=1;        TR0=1;         if(S==0&&G==1)        {                led0=1;                delay(1000);          //走廊灯泡延时控制        }          else led0=0;         if(G==1&&H==1)                //触发条件        l=1;                          //楼层一,天黑且有人时,灯一直亮,最后一人离场关灯。                 while(l)        {                 led=0;           //楼层一,灯全亮                          ZL();            EL();                 //        if(G==0)        //        l=0;                ERL();                }        //led=1;//外面已经天亮了                                }//主函数 void HC595SendData(uchar SendVal){        uchar i;        for(i=0;i<8;i++)        {                if((SendVal<<i)&0x80)                        MOSIO=1;                 else                         MOSIO=0;                        S_CLK=0;                        NOP();                        NOP();                        S_CLK=1;        }        R_CLK=0;        NOP();        NOP();        R_CLK=1;}//灯泡驱动函数 1 void ZL(){                 if(S==0&&G==1)                                {                                        led0=1;                                        delay(1000);          //进入循环后的走廊灯泡延时控制                                 }                          else led0=0;                HC595SendData(0xff); }//走廊工作函数 void  EL(){        if(H1==1&&TL0>=3)        {                led1=1;                           //一楼人数积满,二楼楼梯感应到有人时灯亮                delay(1000);        }        else        led1=0;}//EL二楼楼梯工作函数 void T0_time() interrupt 1{        TL0++;                  //对外部脉冲的计数}//人数计数涵数 /*功能:对串行端口进行初始化为方式0**********************************/void Com_Init(void){     SCON = 0x00;                                                } void ERL(){                uchar temp;                temp=0x00;        //初始化串口通讯为方式0                temp=0xff;                     SBUF = temp;                                       while(!TI)          //如果发送完毕,硬件会置位TI                {                        _nop_();                        }                TI = 0; //软件清零TI        //        DJ();} void delay(uint i){        uint j;        for(i;i>0;i--)        for(j=300;j>0;j--);}//延时函数,1毫秒
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。