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

📄 tongbuxianshi.c

📁 单片机采集数据
💻 C
字号:
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char 
#include <absacc.h>

sbit    Clk=P1^5;	//定义时钟端
sbit    RCK=P1^2;	//定义控制端
sbit    E=P1^3;
sbit    SRCK=P1^1;
sbit    SER=P1^0;

sbit  Dat=P1^4;	//定义串行数据输入端
sbit RDSG=0xD8^0;
sbit RDQB=0xD8^1;  
sbit PRE=0xD8^2;
sbit CLR=0xD8^3;

unsigned char a[4];
unsigned char  c,d,e,f;
unsigned char   *p,*q;
uchar code DispTab[]={0x3F,0x03,0x6D,0x67,0x53,0x76,0x7E,0x23,0x7F, 
0x73,0x00};//定义定形码表


void SendData(unsigned char SendDat)	//传送一个字节的数据数据
{	unsigned char i;
		for(i=0;i<8;i++)
		{	if((SendDat&0x80)==0)
				SER=0;
			else
				SER=1;
			_nop_();
		SRCK=0;
			_nop_();
        		SRCK=1;
			SendDat=SendDat<<1;
		}
}



void Disp()
{	uchar c;
	uchar i;
	RCK=0;						//关闭存储寄存器的输入
	for(i=0;i<3;i++)
	{
	unsigned char  g;
	c=a[i];
g=DispTab[c];
if(i==2)
{if(((e&0x80)==0x80)&&((e&0x40)==0))

g=DispTab[c]|0x80;
}
if(i==1)			
{if(((e&0x40)==0x40)&&((e&0x80)==0))

g=DispTab[c]|0x80;
}

SendData(g);	//送出字形码数据
	}
     SendData(a[3]);
	RCK=1;						//开启存储寄存器的输入
}




void main()
{for(;;)
{ RDSG=0;                      //锁存个十位数据                      //锁存百千位数据
RDQB=1;
*p=XBYTE[0x9000];
c=*p;
	d=c&0x0F;
	 switch(d)
{ case   0x00 : a[0]=0;break;
  case   0x01 : a[0]=1;break;
  case   0x02 : a[0]=2;break;
  case   0x03 : a[0]=3;break;
  case   0x04 : a[0]=4;break;
  case   0x05 : a[0]=5;break;
  case   0x06 : a[0]=6;break;
  case   0x07 : a[0]=7;break;
  case   0x08 : a[0]=8;break;
  case   0x09 : a[0]=9;
}
c=c&0xF0;
	 switch(c)
{ case   0x00 : a[1]=0;break;
  case   0x10 : a[1]=1;break;
  case   0x20 : a[1]=2;break;
  case   0x30 : a[1]=3;break;
  case   0x40 : a[1]=4;break;
  case   0x50 : a[1]=5;break;
  case   0x60 : a[1]=6;break;
  case   0x70 : a[1]=7;break;
  case   0x80 : a[1]=8;break;
  case   0x90 : a[1]=9;
}
RDSG=1;
RDQB=0;
*q=XBYTE[0x9001];
e=*q;
	f=e&0x0F;
	 switch(f)
{ case   0x00 : a[2]=0;break;
  case   0x01 : a[2]=1;break;
  case   0x02 : a[2]=2;break;
  case   0x03 : a[2]=3;break;
  case   0x04 : a[2]=4;break;
  case   0x05 : a[2]=5;break;
  case   0x06 : a[2]=6;break;
  case   0x07 : a[2]=7;break;
  case   0x08 : a[2]=8;break;
  case   0x09 : a[2]=9;
} 
f=e&0x30;
  switch(f)
{ case   0x00 : a[3]=0x3F;break;
  case   0x10 : a[3]=0x03;break;
  case   0x20 : a[3]=0x40;break;
  case   0x30 : a[3]=0x43;
 
} 
	 E=0;
	Disp();

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -