📄 main.c
字号:
#include"header.h"
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define led P0
sbit cs = P0^7; //片选
sbit dout= P2^4; //输出
sbit din = P2^3; //输入
sbit clk = P2^2; //时钟
uchar disbuf[8];
uchar an0;
void delayms(uint x)
{
uchar i;
while(x--)
for(i=0;i<125;i++)
;
}
void display(uchar *s)
{
WriteWord(Digit0,s[0]);
WriteWord(Digit1,s[1]);
WriteWord(Digit2,s[2]);
WriteWord(Digit3,s[3]);
WriteWord(Digit4,s[4]);
WriteWord(Digit5,s[5]);
WriteWord(Digit6,s[6]);
WriteWord(Digit7,s[7]);
}
void convert(unsigned long fr)
{
disbuf[2]=fr/100000;
disbuf[3]=fr/10000%10;
disbuf[4]=fr/1000%10;
disbuf[5]=fr/100%10;
disbuf[6]=fr/10%10;
disbuf[7]=fr%10;
disbuf[0]=1;
disbuf[1]=0;
}
//读tlc2543,12位输出,MSB在前,单极性数据
uint read2543(uchar port)
{
uint ad=0,i;
clk=0;
cs=0;
port<<=4; //只取高4位的通道地址位传送
for(i=0;i<12;i++)
{
if(dout) ad|=0x01;
din=(bit)(port&0x80);
clk=1;
_nop_();
_nop_();
clk=0;
_nop_();
_nop_();
port<<=1;
ad<<=1;
}
cs=1;
ad>>=1;
return(ad);
}
void main()
{
InitDisplay();
delayms(100);
display(disbuf);
while(1)
{
an0=read2543(0);
delayms(1000);
convert(an0);
display(disbuf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -