亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pc1490.c

?? 用C51單片機做的防盜報警器測試程序,主要實現AC/DC電壓測試,頻率測試,電流測試,正弦信號發生,數字IN/OUT等功能!
?? C
?? 第 1 頁 / 共 5 頁
字號:
 _nop_ ();
 _nop_ ();
 _nop_ (); 

}

void Port1A8255_write(uchar OpA1)
{
  CS1_8255=0;
  CS2_8255=1;       
  A0_8255=0;   //寫1A口;
  A1_8255=0;
  PA8255=OpA1;
 }

void Port1B8255_write(uchar OpB1)
{ 
  CS1_8255=0;
  CS2_8255=1;       
  A0_8255=1;	 //寫1B口;
  A1_8255=0;
  PB8255=OpB1;
 }

uchar Port1C8255_read(void)
{ 
  uchar PC1=0;
  CS1_8255=0;
  CS2_8255=1;       //讀完1C口;
  A0_8255=0;
  A1_8255=1;
  PC1 = 0xff&PC8255;
  return PC1;
}

/*
void Port1C8255_write(uchar OpC1)
{ 
  CS1_8255=0;
  CS2_8255=1;       
  A0_8255=0;	 //寫1C口;
  A1_8255=1;
  PC8255=OpC1;
  Timer100ms=3;
  while(Timer100ms);
}

*/
void Port2A8255_write(uchar OpA2)
{
  CS1_8255=1;
  CS2_8255=0;       
  A0_8255=0;   //寫2A口;
  A1_8255=0;
  PA8255=OpA2;
}

void Port2B8255_write(uchar OpB2)
{ 
  CS1_8255=1;
  CS2_8255=0;       
  A0_8255=1;	 //寫2B口;
  A1_8255=0;
  PB8255=OpB2;

}

uchar Port2C8255_read(void)
{ 
  uchar PC2=0;
  CS1_8255=1;
  CS2_8255=0;       
  A0_8255=0;   //讀完2C口。
  A1_8255=1;
  PC2 = 0xff&PC8255;
  return PC2;

}
/*

void Port2C8255_write(uchar OpC2)
{ 
  CS1_8255=1;
  CS2_8255=0;       
  A0_8255=0;	 //寫2C口;
  A1_8255=1;
  PC8255=OpC2;
  Timer100ms=5;
  while(Timer100ms);
}

*/

/**************************************************************************/
/*																		  */
/*                   TMP106read and write                                 */
/**************************************************************************/

/***************************************************************************/			
/*    函數原型: void ads_start (void)      			         			   */
/*    功    能: 提供I2C總線工作時序中的起始位。                            */  
/***************************************************************************/	    
void ads_start (void) //在SCL高的情況下,SDA由高到低的變化造成START。
  {
	SDA=1;
	_nop_();
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	SDA=0;
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
  }
/**************************************************************************/
/*    函數原型: void ads_stop(void)      							      */
/*    功    能: 提供I2C總線工作時序中的停止位。						      */
/**************************************************************************/
void ads_stop(void) //在SCL高的情況下,SDA由低到高的變化造成STOP。
  {

	SDA=0;
	_nop_();
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	SDA=1;
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
  }
/*****************************************************************************/
/*    函數原型: uchar ack_check(void)     								     */
/*    功    能: 提供I2C總線的時鐘信號, 并返回在時鐘電平為高期間SDA 信號線上狀*/
/*              態。本函數可用于數據發送, 也可用于數據接收。 				 */
/*****************************************************************************/
uchar ack_check(void) // 檢查應答信號
  {

	SCL=0;
	SCL=1;
	_nop_();
	if (SDA )
	{
	 ACK = 1;
	}
	else
	{
	 ACK = 0;
	}
	SCL=0;
	return(ACK);  // 如果收到ACK應答則返回0, 否則返回1。 		
  }
/****************************************************************************/
/*    函數原型: void ads_sendBYTE(uch data)         					    */
/*    功    能: 向I2C總線發送8位數據。          						    */
/****************************************************************************/
void ads_sendBYTE(uchar snd_data) // 發送一個字節
  {
	uchar bitcount=8;         // 發送8位數據。
    do
    {
       if((snd_data&0x80)==0x80)  //   從左到右選送D7,屏蔽D0~D6。
         {
           SDA=1; 			  //寫 1
         }
       else
         {
           SDA=0; 		      //寫 0
         }
		SCL=0;                //在時鐘大于4u秒期間寫數據
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL=0;
		snd_data=snd_data<<1;	      //   待送數據左移一位.
		bitcount--;
	} 
    while(bitcount);
    SDA=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
  }
/***************************************************************************/
/*    函數原型: ads_reciveBYTE(void)        							   */
/*    功    能: 從I2C總線上接收8位數據信號, 并將接收到8位數據作為一個字節  */
/*              返回, 不回送應答信號ACK。主函數在調用本函數之前應保證SDA信 */
/*              號線處于浮置狀態, 即使8052的Px.x腳置1。 				   */
/***************************************************************************/
uchar ads_reciveBYTE(void) //接受一個字節
  {
	uchar in_data=0;
	uchar bitcount1=8;
	do
	{ 	SCL=0; //在時鐘大于4u秒期間讀數據
		SCL=1;
		_nop_();
		_nop_();
		if(SDA) //讀 1
		  {
			in_data=in_data|0x01;
	      }
		else //讀 0
		  {
			in_data=in_data&0xfe;
          }

		SCL=0;

		if(bitcount1-1)
		  {
			in_data=in_data<<1;
		  }
			bitcount1--;
	}
	while(bitcount1);
    return(in_data);
  }
/****************************************************************************/
/*    函數原型: void function send_Ack(void);							    */
/*    功    能: 向I2C總線發送一個應答信號ACK, 一般用于連續數據讀取時。	    */
/****************************************************************************/
void send_ack(void) // 發送連續讀信號
  {
	SDA=0;
	SCL=0;
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
  }

void send_nack(void) // 發送不連續讀信號
  {
	SDA=1;
	SCL=0;
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
  }
/****************************************************************************/
/*    函數原型: write_ads(uchar data)	         						    */
/*    功    能: 寫器件地址和配置字。	                                    */
/****************************************************************************/
void write_ads(uchar snd_data) 	//寫器件地址和配置字
  {
	ads_start();           	//開始寫
	ads_sendBYTE(0x90);    	//寫器件地址(寫) 1001000x:x=0,write;x=1,read;
	do
	{
	 ;
    }while(ack_check());   	//等待應答
	ads_sendBYTE(snd_data);    	//寫配置字
	do
	{
	 ;
	}while(ack_check());   	//等待應答
    ads_stop();             //結束寫
  }
/****************************************************************************/
/*    函數原型: read_ads(void)		                					    */
/*    功    能: 數據讀取。	                                                */
/****************************************************************************/
void read_ads(void)        	//從ADS1100中讀出數據
  {
//  uchar adc_hi;
//	uchar adc_lo;
//	uchar adc_cfg;
	ads_start();           	//開始讀
	ads_sendBYTE(0x91);    	//寫器件地址(讀)
	do
	{
	 ;
	}while(ack_check());     	//等待應答

	adc_hi = ads_reciveBYTE(); 	// 讀高8位
	send_ack();             	//連續讀
	adc_lo = ads_reciveBYTE(); 	//讀低8位
	send_ack();              	//連續讀
	adc_cfg = ads_reciveBYTE(); //讀配置字
	send_nack();
	ads_stop(); 				//結束讀
  }


/*****************************************************************************/
/*  		SST58 CPU初始化配置									             */
/*****************************************************************************/
/* 中斷配置:本系統僅使用串口中斷(高優先級),外部計數中斷T1和定時中斷0(低優先級),
/* BIT 7  6   5  4   3   2   1   0   
/* IE: EA -  ET2 ES ET1 EX1 ET0 EX0
/*     0  0   0  0   1   0   1   0	  0x0Ah

/* BIT 7  6   5  4   3   2   1   0
/* IP: -  -  PT2 PS PT1 PX1 PT0 PX0
/*     0  0   0  0   1   0   0   0	  0x08h

/* 設定串口模式為:8位波特率可編程單機模式,即模式1,置接收使能
/* BIT    7   6   5   4   3   2  1  0
/* SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI
/*        0   1   0   1   0   0  0   0	    0x50h

/* BIT    7   6   5   4   3   2  1  0
/* TMOD: GAT C/T M1  M0 GATE C/T M1 M0
/*        0   1   0   1   0   0  0  1	    0x51h

/* BIT    7   6   5   4   3   2   1   0
/* TCON  TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
/*        0   1   0   1   0   0   0   0	    0x50h

/* BIT    7   6    5    4     3    2   1    0
/* T2CON TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T CP/RL2
/*        0   0    1    1     0    1   0    0	   0x34h

/* BIT    7   6   5   4   3   2   1   0
/* T2MOD: -   -   -   -   -   - T2OE DCEN
/*        x   x   x   x   x   x   0   0	     0x00h
/*****************************************************************/
void Init()
{
  uchar i,j;
  for(i=0;i<200;i++) for(j=0;j<250;j++); //delay some time for stable
    
  P0=0xFF;	 	//I/O端口初始化
  P1=0xFF;	 	//
  P2=0xFF;	 	//
  P3=0xFF;	 	//  
  IE=0x0A;   	// TO 定時中斷,T1外部計數中斷,//串口中斷開。
  IP=0x08;   	// T1 prior
//  SCON=0x50; 	// 方式1,10bit發送,接收中斷使能。

  
  TMOD=0x51; 	// T1為16位外部計數,T0為16位軟件重載定時,MODE1。
  TH0=0xF7;	 	// 2.5ms=0.0025=Tosc*12*(65536-T0)==>T0=65536-0.0025*Fosc/12=0xF700(Fosc=11.0592)
  TL0=0x00;  	//T0用作2.5mm定時器,T0=0xF63C (Fosc=12Mhz)   //10ms TH0==0xF7;TL0=0x00;

  TH1=0x00;  	//T1用作外部計數測頻率。
  TL1=0x00;
	
  TCON=0x50;//0x50;	//使能T0/T1。
  PCON=0x00;	//SMOD=0,波特率不加倍。
  
//  T2CON=0x34;   //波特率收發使用相同的發生率,開T2時鐘。
//  T2MOD=0x00;
//  RCAP2L=0xD9;  //波特率9600,12M晶振,12時鐘模式。
//  RCAP2H=0xFF;  
//  TL2=0xD9;
//  TH2=0xFF;     //T=Fosc/{n*[65536-(RCAP2H*RCAP2L)]},N=2 /6時鐘;N=4 //12時鐘,T2用作9600bps的波特率發生器
  EA=1;
}

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


/********************************************************************/
/*                                                                  */
/*                          主程序                                  */
/*                                                                  */
/********************************************************************/
void main()
{   uchar i;
	MsgOk=0x00;
	w100msf=0;
	w25msf=0;
	Fre_val=0;
	temp=0;
 	temp1=0;
	T1flow=0;
	Init();
	Init1_8255();         /*8255 初始化 */
	P0=LCDON;   //Bklight=0;    // On LCD backligh
	Latch=1;     //74HC373 enable
	delay(255);
	Latch=0;	 //74HC373 dis_enable
	lcd_delay(10);                 //延時
    lcd_init();                //初始化LCD 
    lcd_pos(0);               //設置顯示位置為第一行的第1個字符
    i = 0;
    while(dis0[i] != '\0')
     {                         //顯示字符"Model:PC520-1-B"
       lcd_wdat(dis0[i]);
       i++;
     }

	lcd_pos(0x40);               //設置顯示位置為第一行的第1個字符
    i = 0;
    while(dis1[i] != '\0')
     {                         //顯示字符"Start Testing..."
       lcd_wdat(dis1[i]);
       i++;
     } 
	
   	while(1)
	   {
		if (!Start)  //治具壓下
		{ Timer2500us=10;	 //20
       	  while(Timer2500us);
	      if (Start) 
		  {	MsgOk=0x00;
			w100msf=0;
			Fre_val=0;
			temp=0;
 			temp1=0;
			T1flow=0;
		    P0=0xf6;  //Power On/+12V
			Latch=1;     //74HC373 enable
			delay(255);
			Latch=0;	 //74HC373 dis_enable
			Timer1s=2;
			while(Timer1s); 
		
/****************************************************************************/
/*																		    */
/*	            第一組:電壓測試, Voltage Test!!!			 			    */
/****************************************************************************/
			Init2_8255();
			Port2B8255_write(16);  //T293
			Init1_8255();
			Port1B8255_write(0);  //CD4514BC,4-16譯碼器控制CD4066第一通道ON。
  		    Timer100ms=10;		  //,T8 test +11.5V
			while(Timer100ms);
			write_ads(0x8c);
			read_ads();
			temp1=adc_hi;
			temp1=temp1<<8;
			temp1+=adc_lo;
		  	temp=(float)temp1/32768*2.048;
			temp*=1.01; //1.9
		  	temp*=1000;
			if ((temp>=Limit[0])&&(temp<=Limit[1]))
		     {
				lcd_pos(0x00);               //設置顯示位置為第一行的第1個字符
    			i = 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品影视| 久久国产成人午夜av影院| 亚洲成人一二三| 国产成人综合网站| 欧美人与禽zozo性伦| 国产精品传媒入口麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 不卡一卡二卡三乱码免费网站| 在线综合视频播放| 亚洲欧美日韩系列| 高清国产一区二区| 91精品国产色综合久久| 亚洲品质自拍视频| 成人激情校园春色| 中文字幕 久热精品 视频在线| 婷婷中文字幕综合| 欧美影院精品一区| 一区二区激情视频| 国产成人精品一区二区三区四区| 日韩一区二区不卡| 性感美女久久精品| 在线观看视频一区二区欧美日韩| 中文字幕精品一区二区精品绿巨人| 奇米色一区二区| 欧美日韩一区二区三区在线| 亚洲欧美另类久久久精品2019| 成人小视频免费在线观看| 国产亚洲一区二区三区在线观看| 男人的天堂亚洲一区| 4438成人网| 水蜜桃久久夜色精品一区的特点| 欧美日韩在线播放三区| 亚洲香蕉伊在人在线观| 色婷婷久久久亚洲一区二区三区| 中文字幕一区二区在线播放| www.99精品| 亚洲乱码国产乱码精品精98午夜| 色视频一区二区| 一区二区三区成人| 欧美日韩一区二区三区四区五区| 亚洲图片一区二区| 欧美精品vⅰdeose4hd| 日韩精品福利网| 日韩欧美一区二区视频| 九九国产精品视频| 国产欧美日韩视频一区二区| av在线不卡电影| 亚洲精选免费视频| 4438x亚洲最大成人网| 蜜桃一区二区三区在线| 337p粉嫩大胆噜噜噜噜噜91av| 国产在线视频一区二区三区| 欧美国产日产图区| 99国产精品99久久久久久| 一区二区三区欧美| 日韩片之四级片| 国产风韵犹存在线视精品| 国产精品国产馆在线真实露脸| 色av综合在线| 狠狠狠色丁香婷婷综合激情 | 欧美三级中文字幕| 免费观看在线色综合| 国产欧美一区二区精品久导航 | 欧美蜜桃一区二区三区| 精品一区二区三区在线播放视频| 欧美激情中文不卡| 欧美日韩免费在线视频| 国产精品1024久久| 亚洲成a人片在线不卡一二三区| 日韩一区二区视频| 91视频91自| 黑人精品欧美一区二区蜜桃| 亚洲免费av在线| 精品国产乱码久久久久久影片| 99热这里都是精品| 老司机免费视频一区二区 | 亚洲成a人v欧美综合天堂| 久久精品水蜜桃av综合天堂| 欧美怡红院视频| 成人手机电影网| 日韩高清一区在线| 伊人开心综合网| 久久精品视频在线免费观看| 欧美久久久久久蜜桃| 99麻豆久久久国产精品免费| 精品亚洲porn| 青青草97国产精品免费观看无弹窗版| 中文字幕中文字幕一区二区| 日韩精品中文字幕在线不卡尤物 | 亚洲一区二区高清| 欧美国产精品中文字幕| 日韩欧美国产高清| 欧美日韩国产影片| 91污片在线观看| 国产成人av福利| 国产一区二区免费看| 日韩不卡手机在线v区| 一区二区免费在线播放| 国产精品久久夜| 国产午夜亚洲精品午夜鲁丝片| 欧美精品aⅴ在线视频| 欧美色欧美亚洲另类二区| gogo大胆日本视频一区| 国产高清成人在线| 国产一区在线精品| 国产一区激情在线| 久久99日本精品| 精品影院一区二区久久久| 日本人妖一区二区| 日产国产欧美视频一区精品| 亚洲成a天堂v人片| 亚洲国产毛片aaaaa无费看| 一区二区三区av电影| 亚洲视频一区在线观看| 亚洲视频一区二区在线| 一区二区三区免费在线观看| 一区二区激情小说| 午夜精品视频一区| 首页国产丝袜综合| 久久超级碰视频| 国产精品99久久久| 成人动漫一区二区在线| av在线免费不卡| 色噜噜狠狠成人网p站| 欧美日韩中文另类| 欧美一区国产二区| 精品国产乱码91久久久久久网站| 精品国一区二区三区| 久久久久久久久久久99999| 中文字幕国产一区| 一区二区三区欧美视频| 日韩成人av影视| 国产高清不卡一区二区| 91视视频在线直接观看在线看网页在线看| av电影天堂一区二区在线观看| 色94色欧美sute亚洲线路一久 | 亚洲成在线观看| 久久电影网站中文字幕| aaa国产一区| 欧美日韩国产123区| 久久久久亚洲蜜桃| 日韩一区欧美小说| 午夜精品国产更新| 国产成人午夜精品影院观看视频 | 夜色激情一区二区| 麻豆精品一区二区三区| 成人激情文学综合网| 欧美精品乱码久久久久久| 久久综合久色欧美综合狠狠| 国产精品盗摄一区二区三区| 午夜天堂影视香蕉久久| 国产精品一线二线三线| 欧美午夜在线一二页| xnxx国产精品| 亚洲电影在线免费观看| 福利电影一区二区三区| 51精品秘密在线观看| 国产精品色哟哟| 喷白浆一区二区| 99视频精品全部免费在线| 日韩视频在线观看一区二区| 亚洲美女精品一区| 国产麻豆视频一区| 制服丝袜av成人在线看| 亚洲男人电影天堂| 国产一区中文字幕| 91精品久久久久久蜜臀| 综合久久国产九一剧情麻豆| 久久99国内精品| 欧美在线观看你懂的| 亚洲国产精品高清| 蜜臀av亚洲一区中文字幕| 欧美中文字幕久久| 成人免费在线播放视频| 国产一区高清在线| 日韩欧美在线不卡| 亚洲成人三级小说| 91久久免费观看| 国产精品美女久久久久久久网站| 蜜桃免费网站一区二区三区| 欧美丝袜丝交足nylons| 亚洲三级电影网站| 高清日韩电视剧大全免费| 精品国产一区二区三区av性色 | 国产精品不卡视频| 国产成人一区二区精品非洲| 精品99999| 国产成人免费在线观看| 精品欧美一区二区三区精品久久 | 亚洲美女免费在线| 99综合影院在线| 亚洲欧洲三级电影| av激情亚洲男人天堂| 国产精品国产精品国产专区不片| 国产v日产∨综合v精品视频| 久久网站热最新地址| 国产精品1区2区3区| 国产亚洲精品bt天堂精选| 久久99精品久久久久婷婷| 日韩欧美国产精品|