#include
sbit SDO=P3^0; //定义端口
sbit SDI=P3^1;
sbit CS=P3^2;
sbit CLK=P3^3;
sbit EOC=P3^4;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
unsigned char code xiao[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共阳极数码管0-9的段码
//**********************************
//延时程序
//**********************************
void delay(unsigned char n)
{
unsigned char i,j;
for(i=0;i
for(j=0;j<125;j++);
}
//**********************************
//向TLC2543写命令及读转换后的数据
//**********************************
unsigned int read2543(unsigned char con_word)
{
unsigned int ad=0,i;
CLK=0; //时钟首先置低
CS=0; //片选为0,芯片工作
for(i=0;i<12;i++)
{
if(SDO) //首先读TLC2543的一位数据
ad=ad|0x01;
SDI=(bit)(con_word&0x80); //向TLC2543写一位数据
CLK=1; //时钟上升沿,TLC2543输出使能
delay(3);
CLK=0; //时钟下降沿,TLC2543输入使能
delay(3);
con_word<<=1;
ad<<=1;
}
CS=1;
ad>>=1;
return(ad);
}
void main()
{
unsigned int ad;
while(1)
{
ad=read2543(0x00);
P0=xiao[ad/1000];//千位数字的段码
P2_0=1; //显示千位
delay(3);
P2_0=0;
P0=xiao[(ad%1000)/100]; //百位数字的段码
P2_1=1; //显示百位
delay(3);
P2_1=0;
P0=xiao[(ad%100)/10]; //十位数字的段码
P2_2=1; //显示十位
…………限于本文篇幅 余下代码请从51黑下载附件…………