很奇怪的一个问题。主循环内的语句只执行了一次。相同情况下,51单片机能一直循环执行,求大神指点!!是驱动74HC164芯片的一个小程序#include <msp430x14x.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#define CLK_SET P1OUT |= BIT0;//串行时钟
#define CLK_CLR P1OUT &= ~BIT0;
#define INPUT_SET P1OUT |= BIT1; //串行数据,接B或者A,这里我们接B
#define INPUT_CLR P1OUT &= ~BIT1;
#define A_SET P1OUT |= BIT2;//悬空的令一端(A或B),这里是A
#define A_CLR P1OUT &= ~BIT2;
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main(void)
{
unsigned char temp; //作为测试数据
unsigned char i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT;
P1DIR = 0XFF;
P1OUT = 0XFF;
A_SET;//悬空的一端要置高电平
for(;;)
{
temp=0x00; //初始值0
for(i=0;i<8;i++)
{
CLK_CLR; //上升沿作用
if(temp&0x01==1)//取最后一位赋值
INPUT_SET;
if(temp&0x01==0)
INPUT_CLR;
temp>>=1; //右移
delay(300);
CLK_SET;
delay(30000);
delay(30000); //演示有助于观察效果
}
}
}
|