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

📄 icl7135.c

📁 ICL7135 读写程序 在增强型单片机 C8051F040 上面调试通过
💻 C
字号:
//*********************************************************************************
//icl7135程序
#include  <C8051F200.h>	
#include  <intrins.h>	  // Register definition file.
#define   uchar unsigned char 
#define   uint unsigned int
#define   ulong unsigned long

/////////////////////////////////////////////
sbit 	BUSY = P0^2;

sbit 	LED = P2^4;
sbit 	KEY = P2^5;

uchar xdata test[10];
ulong xdata dat[5];
ulong xdata DAT1[10];

//*********************************************************************************

//*********************************************************************************
//选择外部晶振 2分频 系统频率5.5296MHZ
void external_osc(void)
{
  uchar i;              		       
  OSCXCN  = 0x77;                                               
  for(i=0;i<255;i++);           
  while((OSCXCN&0x80)==0){};                      
  OSCICN = 0x18;
}

/////////////////////////////////////////////
//IO口配置,与F040完全不同
void config_io(void)
{
	PRT0MX = 0x14;	
	PRT1MX = 0x00;	 
	PRT2MX = 0x00; 
	
	PRT0CF = 0xfb; 		//所有端口推挽输出
	PRT1CF = 0xff; 
	PRT2CF = 0xff; 
	PRT3CF = 0xff; 
	
	//TCON  = TCON | 0x00;
	TMOD  = 0x09;
	CKCON = CKCON & 0xf7;     			    						
}
//*********************************************************************************
/*void INT0_ISR (void) interrupt 0
{_nop_();}
/////////////////////////////////////////////
void T0_ISR (void) interrupt 1
{
	_nop_();
	test[i]   = TL0;
	test[i+1] = TH0;
	i++;
	i++;

}
*/
//*********************************************************************************
//主程序
void main(void)
{
	uint i,j,k;
	ulong temp=0;
	EA    = 0;
	WDTCN = 0x07;
	WDTCN = 0xde;
	WDTCN = 0xad;		//禁止看门狗

	external_osc();
	config_io();
	
	//test[i]   = TL0;
	//test[i+1] = TH0;
	for(k=0;k<10;k++)
	{
		for(i=0;i<10;i++)
		{
			while(BUSY==0){};	//BUSY 上升为高电平时开始计数

				TL0 = 0x00;
				TH0 = 0x00;
				TR0 = 1;	

			while(BUSY==1){};	//BUSY 下降为低电平时停止计数
	
				TR0 = 0;
				test[i]   = TL0;
				test[i+1] = TH0;
				i++;	
		 }

		for(i=0;i<5;i++)		
		{
			temp = test[i*2];
			dat[i] = temp<<8;
			dat[i] = dat[i] + test[i*2+1];
			dat[i] = dat[i]/2;
			dat[i] = dat[i]-10001;
		}

		for(i=0;i<4;i++)			//冒泡排序
		{
			for(j=0;j<=3-i;j++)
			{
				if(dat[j]>dat[j+1])
				{
					temp = dat[j];
					dat[j] = dat[j+1];
					dat[j+1] = temp;	
				}
			}
		}
		DAT1[k] = dat[2];
	}

	for(;;){}
}

⌨️ 快捷键说明

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