#include <pic.h>
__CONFIG(0x3194);//内部晶振,MCLR接上拉电阻
#define uchar unsigned char
#define uint unsigned int
#define din GPIO0
#define load GPIO1
#define clk GPIO4
uchar time1[8]={1,0,0,0,0,0,0,0};
void delayms(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void write(uchar addr,uchar dat)
{
uchar i;
load=0;
for(i=0;i<8;i++)
{
clk=0;addr<<=1;din=CARRY;
clk=1;NOP();NOP();
clk=0;
}
for(i=0;i<8;i++)
{
clk=0;dat<<=1;din=CARRY;
clk=1;NOP();NOP();
clk=0;
}
load=1;
}
void initialise()
{
write(0x09,0xff);
write(0x0a,0x07);
write(0x0b,0x07);
write(0x0c,0x01);
}
void main()
{
uchar i;
delayms(10);
// asm("bsf _STATUS,5");//晶振校准
// asm("call 3ffh");
// asm("movwf _OSCCAL");
// asm("bcf _STATUS,5");
ANSEL=0x00;
CMCON=0X0f;//关闭比较器
ADON = 0x00; //A/D转换关闭
TRISIO=0X00;//都设为输出
for(i=0;i<3;i++)
{
initialise();
delayms(1);
}
delayms(1);
for(i=0;i<7;i++)
{
write(i+1,time1[i]);
}
GPIO5=1;
while(1)
{
//测试单片机已经运行
GPIO2=1;
delayms(3000);
// GPIO5=0;
GPIO2=0;
delayms(3000);
}
}
max7219的驱动程序放在51单片机中可以,不知道为什么,有经常用PIC12f675单片机的高手请指教
|