⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 关于MAX7219与TLC2543的数据采集系统
💻 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 + -