📄 test.c
字号:
#include "avr/io.h"
#include "delay.h"
//#define DS_CS0 cbi(PORTC,PC0)
//#define DS_CS1 sbi(PORTC,PC0)
#define DS_AS0 cbi(PORTC,PC1)
#define DS_AS1 sbi(PORTC,PC1)
#define DS_READ sbi(PORTC,PC2)
#define DS_WRITE cbi(PORTC,PC2)
#define DS_DS0 cbi(PORTC,PC3)
#define DS_DS1 sbi(PORTC,PC3)
// 控制引脚定义intel
#define DS_CS0 (PORTB&=0x7F)
#define DS_CS1 (PORTB|=0x80)
#define DS_ALE0 (PORTB&=0xBF)
#define DS_ALE1 (PORTB|=0x40)
#define DS_WR0 (PORTB&=0xDF)
#define DS_WR1 (PORTB|=0x20)
#define DS_RD0 (PORTB&=0xEF)
#define DS_RD1 (PORTB|=0x10)
//#define NOP() (asm("nop;"))
//#include "ds12887.h"
/*
void StartRT(void)
{
PORTB&=0x1F;
PORTA=0xAF;
PORTB|=0x40;
}
void SetTime(void)
{
}
void GetTime(void)
{
}
int main()
{
DDRA=0xff;
DDRB=0xff;
PORTB&=0xfe;
delay_nms(400);
PORTB|=0x01;
delay_nms(1);
StartRT();
while(1)
{
}
return 1;
}*/
//===== DS12C887 intel时序 ======
/***************************************
函数功能:用来写
***************************************/
void WriteAddrData(uint8_t dsaddress,uint8_t dsdata)
{
DS_ALE0;
DS_RD1;
DS_WR1;
DS_CS0; //选中时钟芯片
//NOP();
asm("nop");
//
DS_ALE1;
PORTA = dsaddress; //RAM地址
asm("nop");
asm("nop");
DS_ALE0;
asm("nop");
asm("nop");
//
PORTA = dsdata; //data
asm("nop");
DS_WR0;
asm("nop");
asm("nop");
asm("nop");
DS_ALE1;
DS_WR1;
DS_CS1; //关闭时钟芯片
}
/***************************************
函数功能:用来读
***************************************/
uint8_t ReadAddrData(uint8_t dsaddress)
{
uint8_t dsdata;
DS_ALE0;
DS_RD1;
DS_WR1;
DS_CS0; //选中时钟芯片
asm("nop");
//
DS_ALE1;
PORTA = dsaddress; //RAM地址
asm("nop");
asm("nop");
DS_ALE0;
asm("nop");
asm("nop");
//
DDRA=0x00; // PORTA in
DS_RD0;
asm("nop");
dsdata = PINA; //data
DS_ALE1;
DS_RD1;
DS_CS1; //关闭时钟芯片
DDRA=0xff; // PORTA out
return dsdata;
}
int main()
{
long a;
a=0;
a=17/10;
while(1)
a=0;
DDRA=0xff;
DDRB=0xff;
DDRD=0xff;
PORTB&=0xfe;
//delay_nms(400);
PORTB|=0x01;
delay_nms(1);
//StartRT();
unsigned int i;
unsigned int Test;
while(1)
{
for(i=0X2000;i<0X200D;i++)
{
WriteAddrData(i,i);
asm("nop");
asm("nop");asm("nop");
asm("nop");
asm("nop");
asm("nop");
Test=ReadAddrData(i);
if (Test==i)
{
PORTD=~PORTD;
//delay_nms(500);
}
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -