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

📄 ad.c

📁 51单片机项目集
💻 C
字号:
#include <REGX51.H>
#include "intrins.h"
#define  uchar unsigned char
#define  uint	  unsigned int
uchar code  tb[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code seg_bit_scan[] = {0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //各个数码管对应的位选数据
sbit data_temp = P1^5;	 //数据线
sbit cs = P1^4;		 	//片选
sbit sclk = P1^1;		 //io口时钟
uchar qian,bai,shi,ge;
uint j;
void chuli(uint num)	  //显示程序
{
  
  qian=num/1000;	      //千,百,十,个处理
  bai=num/100%10;
  shi=num/10%10;
  ge=num%10;
} 
uint ad_549()		    //TLC549处理
{
  uchar i;
  uint data_ad = 0;
  cs = 1;				//初始化,启动
  sclk = 0;
  cs = 0;
  _nop_();		    
  for(i = 0;i < 8;i++)	//读取采集数据,读取的是上一次采集数据
    {
	  sclk = 1; 
	 
	  if(data_temp)data_ad |= 0x01;
	  sclk = 0;  
	  data_ad = data_ad << 1;  
	} 	
  cs = 1;
  data_ad = data_ad  * (500/ 256);   
  return(data_ad); 
}
void timer0_isr(void)  interrupt 1       			 // timer0中断服务函数
{
                         							//数码管的位选变量
	TR0 = 0;                       		 			//停止计数
	TL0 = (65536-10000)%256;
	TH0 = (65536-10000)/256; 
	j++;                                			//位循环变量加1
	if(j >= 4)
	j = 0;                          				//循环显示1次,j清零
   	TR0 = 1;
}
void timer0_init (void)            		// timer0中断初始化函数
{
	EA = 0;                      
	TMOD = 0x01;             
	TR0 = 0;                      
	TL0 = (65536-10000)%256;
	TH0 = (65536-10000)/256;                  
	PT0 = 1;                      
	ET0 = 1;                     
	EA = 1;                      
	TR0 = 1;                      
} 						
void main(void)				 //主程序
{  

	uint i;
	timer0_init ();
	while(1)
	{  
		
		i = ad_549();
		
	   	chuli(i);	  //显示最终结果
		P0=0xff;
		switch(j)
		{
			case 0: P0 = tb[ge]; break;   	
			case 1: P0 = tb[shi]; break;   	
			case 2: P0 = tb[bai]&0x7f; break;
			case 3: P0 = tb[qian]; break;  	
		} 
		P2 = seg_bit_scan[j];                    //与j对应,P2输出数码管的位选信号
		} 

	}

  

⌨️ 快捷键说明

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