各位大虾,我写了一个74HC164 的代码,就想把0XF0 发到端口上去,但是一直不行,求指教,源码如下:
#include "C8051F320.h"
#include "intrins.h"
#define uint unsigned int
// ========BIT 位寻址定义==========
sbit bell = P1^2;
sbit a_138 = P1^3;
sbit b_138 = P1^4;
sbit c_138 = P1^5;
sbit ab_164 = P1^6;
sbit CLK_164= P1^7;
sbit clr_164= P2^0;
//==================================
//=========== 内部12M===========
void Oscillator_Init()
{
OSCICN = 0x83;
}
//=========== poart io init===========
void Port_IO_Init()
{
P1MDOUT = 0xff;
P2MDOUT = 0xff;
P1SKIP = 0x00;
P2SKIP = 0x00;
XBR1 = 0x40;
}
// Initialization function for device,
void Init_Device()
{
PCA0MD &= ~0x40; // 关闭看门狗
Port_IO_Init();
Oscillator_Init();
}
//=========delay===========================
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=10;b>0;b--);
// while(z--);
}
//=========================================
// ============ wirte LED data ============
sbit num0=ACC^0;
void led()
{
uint i=0,num=0xf0;
ACC=0xf0;
for(i=0;i<8;i++)
{
CLK_164=0; delay(10); ab_164=num0; delay(10); CLK_164=1; ACC=ACC>>1;delay(10);
_nop_();
}
}
//=========================================
//=========== main ========================
main()
{
Init_Device();
clr_164=1; // 一直拉高 164的清除端口
bell=0; // 关闭蜂鸣器
a_138=0; // 打开LED 电源
b_138=0;
c_138=0;
led();
while(1)
{
;
}
} |