📄 5628.c
字号:
#include "config.h"
#define DA_DAT 1<<17; //p1.17
#define DA_CLK 1<19; //p1.19
extern uint8 MSPI_SendData(uint8 data);
extern uint8 Hc595Dat;
//sbit DA_LD =P1^3; LD 和LC是由595产生的
//0 0/DRDY (0); RS2 (0); RS1 (0); RS0 (0); R/W (0); StBY (0); CH1 (0); CH0 (0);0x00
//1 MD1 (0) ; MD0 (0); G2 (0); G1 (0); G0 (0); B/U (0); BUF (0); FSYNC(1); 0x01
//2 ZERO (0) ZERO (0) ZERO (0) DA_CLKDIS (0) DA_CLKDIV (0) DA_CLK (1) FS1 (0) FS0 (1)
void Set5628Ld(uint8 Ld)
{
if(Ld==1)
{
Hc595Dat=Hc595Dat|0x20;
}
else
{
Hc595Dat=Hc595Dat&0xdf;
}
MSPI_SendData(Hc595Dat);
}
void da_5628(unsigned char channel,unsigned char num)
{
unsigned char i,j;
IO1SET=DA_CLK;
j=channel&0x04;
if(j!=0) //SEND A2
{
IO1SET = DA_DAT;
}
else
IO1CLR = DA_DAT;
IO1CLR = DA_CLK;
IO1CLR = DA_CLK;
IO1SET = DA_CLK;
j=channel&0x02;
if(j!=0) //SEND A1
{
IO1SET = DA_DAT;
}
else
IO1CLR = DA_DAT;
IO1CLR = DA_CLK;
IO1CLR = DA_CLK;
IO1SET = DA_CLK;
j=channel&0x01;
if(j!=0) //SEND A0
{
IO1SET = DA_DAT;
}
else
IO1CLR = DA_DAT;
IO1CLR = DA_CLK;
IO1CLR = DA_CLK;
IO1SET = DA_CLK;
IO1CLR = DA_DAT; //SEND RNG
IO1CLR = DA_CLK;
IO1CLR = DA_CLK;
IO1SET = DA_CLK;
for (i=0x10;i>0;i=i>>1)
{
j=num&i;
if(j!=0) //SEND A0
{
IO1SET = DA_DAT;
}
else
IO1CLR = DA_DAT;
IO1CLR = DA_CLK;
IO1CLR = DA_CLK;
IO1SET = DA_CLK;
}
IO1SET = DA_CLK;
Set5628Ld(0);//LD=0
Set5628Ld(0);//LD=0
Set5628Ld(1);//LD=1
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -