📄 test._c
字号:
#include <iom16v.h>
#define CS 0
#define CLK 1
#define DIO 2
#define KEY 3
void SETB(unsigned char k)
{//这里的PORTB根据自己的程序修改
PORTB=PORTB|(1<<k);
}
void CLRS(unsigned char l)
{//这里的PORTB根据自己的程序修改
PORTB=PORTB&~(1<<l);
}
//初始化显示时Data=0xA4,position=0xFF
//Data为显示数据,position为数据显示位置
//Data为10进制或16进制数,只能一位一位发送
//position为1-8的数字
void Display(unsigned char Data,unsigned char position)
{
unsigned char DataPos=~0;
unsigned char num=~0;
unsigned char wait=~0;
unsigned char datanum=~0;
unsigned int transdata=~0;
unsigned int iToDIO=~0;
unsigned char cToDIO=~0;
DDRB=0xFF;
SETB(KEY);
SETB(CS);
SETB(DIO);
datanum=2;
CLRS(CS);
if(Data!=0xA4)
{
DataPos=0xC8+position-1;
transdata=DataPos;
transdata=transdata<<8;
transdata=transdata+Data;
while(datanum--)
{
wait=25;
while(wait--)
{;}
for(num=0;num<8;num++)
{
iToDIO=transdata&0x8000;
transdata=transdata<<1;
if(iToDIO==0x0000)
{
CLRS(DIO);
}
else
{
SETB(DIO);
}
SETB(CLK);
wait=4;
while(wait--)
{;}
CLRS(CLK);
wait=4;
while(wait--)
{;}
}
}
}
else
{
wait=25;
while(wait--);
for(num=0;num<8;num++)
{
cToDIO=Data&0x80;
Data=Data<<1;
if(cToDIO==0x00)
{
CLRS(DIO);
}
else
{
SETB(DIO);
}
SETB(CLK);
wait=4;
while(wait--);
CLRS(CLK);
wait=4;
while(wait--);
}
}
SETB(CS);
}
void main(void)
{
unsigned int count;
count=60000;
while(count--);
while(1)
{
Display(0xA4,0xFF);
count=60000;
while(count--);
Display(8,1);
count=60000;
while(count--);
Display(7,2);
count=60000;
while(count--);
Display(6,3);
count=60000;
while(count--);
Display(5,4);
count=60000;
while(count--);
Display(4,5);
count=60000;
while(count--);
Display(3,6);
count=60000;
while(count--);
Display(2,7);
count=60000;
while(count--);
Display(1,8);
count=60000;
while(count--);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -