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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? AD7714的單片機(jī)接口程序,功能完善.有注釋
?? C
字號(hào):
#include <math.h>
#include <regxag49.sfr>
#include <stdio.h>
#include <cxa.h>
#include <string.h>
#include "main.h"

#define ch3  P1_3

void delay10ms(unsigned char );
void feeddog(void);   
extern void ChannelInit(void);
extern void Ad7714Init(unsigned char); 
extern void ad7714(unsigned char);
extern void ad_xs(void);
extern _asmfunc void init_val(void);
extern unsigned char wrong_occ;
extern void TMP_IIC_Initial(void);
extern void TMP_Read_Temp(void);
extern void Cal_Make_Fact(void);
extern unsigned char TMP_ErrFlg;
extern unsigned char channel_otc[8];
extern unsigned char chn_error[8];
extern unsigned char chn_adover[8];
extern unsigned char chn_mv[8];
extern unsigned char adbuf_idex;
unsigned char IN_A(void);
unsigned char IN_B(void);
void SENT_CLK_UP(void);
void SENT_CLK_DOWN(void);
void SENT_ADDRESS(unsigned char);
void SENT_DATA(unsigned char,unsigned char);
unsigned char READ_DATA(void);
//_edata char testeep; 
char readeep; 
int  time1;
int time2;
//char time1_bit;
unsigned char addr_io;
_near unsigned char com_status[2] _at(0x270);
_near unsigned char com_active _at(0x285);
_near unsigned char com_configact _at(0x286);
_near unsigned char com_config[4] _at(0x278);
unsigned char ChlOtcActv[8];
#define MV100  		0X01
#define MV60  		0X02
#define MV25  		0X03
_rom unsigned char ConfigToMvTab[16]={MV100,MV100,MV100,MV100,MV25,MV25,MV25,MV25,MV60,MV60,MV100,MV100,MV100,MV100,MV100,MV100};
    /****************************************/
/* Periodic interrupt timer used to     */
/* generate 1/1000th interrupt           */
/****************************************/
//_interrupt(0x20) _using(0x8f00) void int0_isr(void){

//	unsigned char* b;
//	unsigned int a;
//	P1_2=1;
//	IEL &= 0X7F;
	
//	a=P1;
//       	b=(char*)a;
       	
//       	P2=*b;
//	b=b+1;
//	P2=*b;
	
//	IEL |= 0X80;
//}
/**************nm*******************/
_rom unsigned long LampErrCtlTab[]={
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x10                      
    0xc2000000,//0b1100 0010 0000 0000 0000 0000對(duì)應(yīng) ErrState=0x11                      
    0xc2800000,//0b1100 0010 1000 0000 0000 0000對(duì)應(yīng) ErrState=0x12                      
    0xc2a00000,//0b1100 0010 1010 0000 0000 0000對(duì)應(yīng) ErrState=0x13                      
    0xc2a80000,//0b1100 0010 1010 1000 0000 0000對(duì)應(yīng) ErrState=0x14                      
    0xc2aa0000,//0b1100 0010 1010 1010 0000 0000對(duì)應(yīng) ErrState=0x15                      
    0xc2aa8000,//0b1100 0010 1010 1010 1000 0000對(duì)應(yīng) ErrState=0x16                      
    0xc2aaa000,//0b1100 0010 1010 1010 1010 0000對(duì)應(yīng) ErrState=0x17                      
    0xc2aaa800,//0b1100 0010 1010 1010 1010 1000對(duì)應(yīng) ErrState=0x18                      
    0xc2aaaa00,//0b1100 0010 1010 1010 1010 1010對(duì)應(yīng) ErrState=0x19                    
    0xcaaaaa00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1a  //nop                      
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1b  //nop                       
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1c  //nop                      
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1d  //nop                      
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1e  //nop                      
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x1f  //nop                      
    0xffffff00,//0b1111 1111 1111 1111 1111 1111對(duì)應(yīng) ErrState=0x20  //nop                     
    0xcc200000,//0b1100 1100 0010 0000 0000 0000對(duì)應(yīng) ErrState=0x21                      
    0xcc280000,//0b1100 1100 0010 1000 0000 0000對(duì)應(yīng) ErrState=0x22                      
    0xcc2a0000,//0b1100 1100 0010 1010 0000 0000對(duì)應(yīng) ErrState=0x23                      
    0xcc2a8000,//0b1100 1100 0010 1010 1000 0000對(duì)應(yīng) ErrState=0x24                      
    0xcc2aa000,//0b1100 1100 0010 1010 1010 0000對(duì)應(yīng) ErrState=0x25                      
    0xcc2aa800,//0b1100 1100 0010 1010 1010 1000對(duì)應(yīng) ErrState=0x26                      
    0xcc2aaa00,//0b1100 1100 0010 1010 1010 1010對(duì)應(yīng) ErrState=0x27                      
};
#define ROM_err 0x22;
unsigned char ErrState;//0x10---0x28
                       //0x10 noerr
                       
                       //0x12 ad_over
                       //0x13 tc_over
                       //0x14 ad_err
                       //0x15 cold_err
                       
                       //0x21 RAM_err
                       //0x22 ROM_err
                       //0x23 FPGA_err

typedef struct {
    unsigned char adover :1;
    unsigned char ad7714 :1;
    unsigned char tcover :1;
    unsigned char tmp100 :1;
    unsigned char        :1;    
    unsigned char ram    :1;    
    unsigned char rom    :1;    
    unsigned char fpga   :1;    
}strErrFlg;
strErrFlg ErrFlg;
unsigned char LampComFlg=0x80;
void delay10ms(unsigned char j)
{
    unsigned int i;
    for(;j>=1;j--)
    {
        for(i=0;i<10000;i++)//10ms
        {
            _nop();//3c
            _nop();//3c
        }
    }
}
#define BIT_LAMPERR P3_7
void Cnt100msPro(void)
{
    static unsigned long LampErrCtl = 0xffffff00;
    static unsigned char LampErrCnt = 0;
    static unsigned char LampComCnt = 0;
    unsigned char tempu8;
    if(LampErrCnt==0)
    {
        tempu8 = ErrState;
        if(tempu8<0x10 || tempu8>=0x28) tempu8 = 0x10;
        tempu8-=0x10;
        LampErrCtl = LampErrCtlTab[tempu8];
    }
    if((LampErrCtl & 0x80000000)==0) BIT_LAMPERR = 1;
    else                             BIT_LAMPERR = 0;
    LampErrCtl<<=1;
    LampErrCnt++;
    if(LampErrCnt>=24) LampErrCnt=0;
    
    LampComCnt++;
    if(LampComCnt>=10)
    {
        LampComCnt = 0;
        if(com_active!=0) LampComFlg=0x80;
        else                   LampComFlg^=0x80;
        com_active = 0;//清中斷服務(wù)程序標(biāo)志為0
    }
    
    time1++;//ad校驗(yàn)
    time2++;//TMP100奪取
}
            
        
        
/****************************************/
/* Main function                        */
/****************************************/      
main()
{
	unsigned int a;
	unsigned char a1,temp_c,j;
	unsigned char  *p;
	PSWL = 0x0;
	PSWH = 0x80;
    delay10ms(10);//nm  100ms fpga_rest
/*nm
	     for (a1=0;a1<10;a1++)
	     {
	        for (a=0;a<64000;a++)
	        {
	            _nop();
	            _nop();
   	        }
	     }
*/	
	BCR = 0x16; //16 bit data ,16 bit address
	P0 = 0xff;
	P1 = 0xff;
	P2 = 0xff;
	P3 = 0xff;
	SCR=0x1;     // 0x9;	//0xd;	//tclk prescaler value is 64,page zero selected
	WDL=0x66;	//watchdog timer set 38	 ,500ms reset once
	WDCON=0xe0;     //prescaler value is 4096,
	WFEED1=0xa5;
	WFEED2=0x5a;
	TMOD=0x50;	//timer1 set as counter mode 1,timer0 set as timer mode 0 
	TL1=0;		//per value is 3.2um
	TH1=0;	
	TCON=1;
	 P0_0=1;
	P0_1=1;
	wrong_occ=0;
	ChannelInit();
	Ad7714Init(0);
    TMP_ErrFlg = 0;
    TMP_IIC_Initial();
    delay10ms(50);//nm  500ms for Ad7714Init & TMP_IIC_Initial
	
	time1=0;
	time2=0;
//	time1_bit=0;
	IPA0 = 0X03;	// ex0 interrupt level is 3
	IEL = 0x1;	// enable ex0
	WDRUN=0;
        //testeep=0xaa;
	CLR_SCLK;
	CLR_SIN;
	init_val();
	com_config[0] = 0xaa;
	com_config[1] = 0x00;
	com_config[2] = 0x00;
	com_config[3] = 0x00;
	com_active = 0;//intrupt init
	com_configact = 0;
	com_status[0] = 0x37;
	p = (unsigned char *)&ErrFlg;
	*p = 0;
	com_status[1] = 0;
	temp_c = 0x30;//bit7--4:0001=AI
	if(P3_4) temp_c |= 0x08;//  W._Flag=1?
	addr_io = IN_A();
	addr_io &= 0x03;
	addr_io ^= 0x03; 
	temp_c |= addr_io;
	com_status[0] = temp_c;
	Cal_Make_Fact(); //nm form Cal_Fact[4] & Cal_Ram_Zero[4]

	IEL |= 0X80;	// enable intrrupt
    while(1)
	{
	    j=0;
	    for(a1=0;a1<4;a1++)
	    {
	        temp_c = com_config[a1];
	        temp_c &= 0x0f;
	        chn_mv[j] = ConfigToMvTab[temp_c];
	        if(temp_c!=0) ChlOtcActv[j] = 0xff;
	        else ChlOtcActv[j] = 0x00;
	        j++;
	        temp_c = com_config[a1];
	        temp_c>>=4;
	        temp_c &= 0x0f;
	        chn_mv[j] = ConfigToMvTab[temp_c];
	        if(temp_c!=0) ChlOtcActv[j] = 0xff;
	        else ChlOtcActv[j] = 0x00;
	        j++;
	    }
	        
//struct {
//    unsigned char tcover :1;
//    unsigned char ad7714 :1;
//    unsigned char tmp100 :1;
//    unsigned char ram    :1;    
//    unsigned char rom    :1;    
//    unsigned char fpga   :1;    
//}ErrFlg;
//unsigned char ErrState;//0x10---0x28
                       //0x10 noerr
                       
                       //0x12 ad_over
                       //0x13 tc_over
                       //0x14 ad_err
                       //0x15 cold_err
                       
                       //0x21 RAM_err
                       //0x22 ROM_err
                       //0x23 FPGA_err
		if(ErrFlg.fpga == 1)     ErrState = 0x23;
		else if(ErrFlg.rom == 1) ErrState = 0x22;
		else if(ErrFlg.ram == 1) ErrState = 0x21;
		else if(ErrFlg.tmp100 == 1) ErrState = 0x15;
		else if(ErrFlg.ad7714 == 1) ErrState = 0x14;
		else if(ErrFlg.tcover == 1) ErrState = 0x13;
		else if(ErrFlg.adover == 1) ErrState = 0x12;
		else                        ErrState = 0x10;
		_nop();
		if (wrong_occ==0x00) feeddog(); 
 	    ChannelInit();
        temp_c = 0;
        for(a1=0;a1<8;a1++)
		{
	        temp_c |= (channel_otc[a1]&ChlOtcActv[a1]);
	        if(temp_c==0) ErrFlg.tcover = 0;
	        else          ErrFlg.tcover = 1;
	    }
        for(a1=0;a1<8;a1++)
		{
			ad7714(a1);
			if((a1 & 0x01)!=0) Cnt100msPro();
		}
        temp_c = 0;
        for(a1=0;a1<8;a1++)
		{
	        temp_c |= chn_error[a1];
	        if(temp_c==0) ErrFlg.ad7714 = 0;
	        else          ErrFlg.ad7714 = 1;
	    }
        temp_c = 0;
        for(a1=0;a1<8;a1++)
		{
	        temp_c |= chn_adover[a1];
	        if(temp_c==0) ErrFlg.adover = 0;
	        else          ErrFlg.adover = 1;
	    }
	    adbuf_idex++;
	    if(adbuf_idex>=3)adbuf_idex = 0;
//        delay10ms(1);
			for (a=0;a<3000;a++)
			{
				_nop();
				_nop();
			}
        
	    p = (unsigned char *)&ErrFlg;
	    com_status[1] = *p;
	    temp_c = 0x30;//bit7--4:0001=AI
	    if(P3_4) temp_c |= 0x08;//  W._Flag=1?
	    addr_io = IN_A();
	    addr_io &= 0x03;
	    addr_io ^= 0x03; 
	    temp_c |= addr_io;
	    if(com_configact!=0)temp_c &= 0xfb;
	    else                temp_c |= 0x04;
	    com_status[0] = temp_c;
	    
/*		temp_c = IN_A();
		addr_io=temp_c;
		addr_io=IN_B();
*/		
		//SENT_DATA(4,addr_io);

        if (time1>=6000)//30s
        {
            time1 = 0;
            Ad7714Init(0);
            delay10ms(10);//500ms
            Cnt100msPro();
            delay10ms(10);
            Cnt100msPro();
            delay10ms(10);
            Cnt100msPro();
            delay10ms(10);
            Cnt100msPro();
            delay10ms(10);
            Cnt100msPro();
        }
        if (time2>=30)//60s
        {
            time2 = 0;
            TMP_Read_Temp();
            if(TMP_ErrFlg==0)ErrFlg.tmp100 = 0;
            else             ErrFlg.tmp100 = 1;
        }
        
/*		//P0_0=0;
		//for (a1=0;a1<10;a1++)
		//{
			for (a=0;a<3000;a++)
			{
				_nop();
				_nop();
			}
		//}

		if(time1_bit==0)
		{
			if (time1<300)
				time1++;
			else
			{
				time1_bit=1;
				time1=0;
				Ad7714Init(0);
			}
		}
		if (time2<600) time2++;
		else
		{
		    time2=0;
		    TMP_Read_Temp();
		}
*/
	}
}
void feeddog() 
{
	_bit save_ea;
	
	save_ea = EA;
	EA = 0;
	WFEED1 = 0xa5;
	WFEED2 = 0x5a;
	EA = save_ea;
}      


unsigned char IN_A(void)
{
	unsigned char data;
	CLR_SENDS;
	SENT_ADDRESS(0);
	SET_SENDS;
	_nop();
	_nop();
	CLR_REVS;
	data=READ_DATA();
	SET_REVS;
	return data;
}
unsigned char IN_B(void)
{
	unsigned char data;
	CLR_SENDS;
	SENT_ADDRESS(1);
	SET_SENDS;
	_nop();
	_nop();
	CLR_REVS;
	data=READ_DATA();
	SET_REVS;
	return data;
}
void SENT_CLK_UP(void)
{
	SET_SCLK;
}
void SENT_CLK_DOWN(void)
{
	CLR_SCLK;
}
void SENT_ADDRESS(unsigned char addr)
{
	unsigned char a,data;
	//CLR_SENDS;
	data=addr;
	for(a=0;a<4;a++)
	{
	      data=_rorc8(data,1);
	      P2_4=C;
	      SENT_CLK_UP();
	      SENT_CLK_DOWN();	
	}
	//SET_SENDS;
}
void SENT_DATA(unsigned char addr,unsigned char dat)
{
	unsigned char a,data;
	CLR_SENDS;
	data=dat;
	for(a=0;a<8;a++)
	{
	      data=_rorc8(data,1);
	      P2_4=C;
	      SENT_CLK_UP();
	      SENT_CLK_DOWN();	
	}
	data=addr;
	SENT_ADDRESS(data);
	SET_SENDS;
}
unsigned char READ_DATA(void)
{
	unsigned char a,data;
	//CLR_SENDS;
	data=0;
	for(a=0;a<8;a++)
	{
	      SENT_CLK_UP();
	      SENT_CLK_DOWN();
	      C = G49_IN;	
	      data=_rorc8(data,1);
	}
	return data;//SET_SENDS;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产精品免费免费搜索| 91麻豆.com| 国产成人精品免费在线| 91丨porny丨蝌蚪视频| 国产欧美日韩一区二区三区在线观看| 亚洲一二三四在线| 懂色av中文字幕一区二区三区 | 欧美亚洲动漫制服丝袜| 欧美日韩日日摸| 欧美韩国一区二区| 午夜精品在线视频一区| 国产成人激情av| 91麻豆精品国产| 中文字幕亚洲一区二区av在线 | 日本一区二区在线不卡| 日韩精品三区四区| 91久久香蕉国产日韩欧美9色| 久久精品日韩一区二区三区| 午夜久久久久久| 色欧美日韩亚洲| 国产日韩欧美精品综合| 亚洲第四色夜色| 91色在线porny| 欧美性三三影院| 国产人久久人人人人爽| 欧美精品一卡两卡| 婷婷夜色潮精品综合在线| 91啪亚洲精品| 亚洲欧美激情插| 色天使色偷偷av一区二区| 欧美精品1区2区| 日韩中文字幕亚洲一区二区va在线| 成人性色生活片| 国产日本欧美一区二区| 久久99热狠狠色一区二区| 日韩一区二区三区视频在线 | 亚洲图片有声小说| 不卡视频一二三| 国产精品麻豆视频| 成人午夜在线播放| 国产精品久久久久久户外露出| 国产最新精品精品你懂的| 91麻豆精品久久久久蜜臀| 午夜天堂影视香蕉久久| 欧美日韩欧美一区二区| 日本欧美韩国一区三区| 日韩欧美国产小视频| 99国产精品国产精品久久| 亚洲伦在线观看| 欧美日韩国产在线观看| 亚洲v中文字幕| 欧美一级搡bbbb搡bbbb| 久久99热99| 久久综合给合久久狠狠狠97色69| 狠狠色丁香久久婷婷综| 中文在线资源观看网站视频免费不卡 | 欧美va亚洲va在线观看蝴蝶网| 日韩影院精彩在线| 91精品国产综合久久精品app | 成人听书哪个软件好| 国产精品色哟哟网站| 99久久综合狠狠综合久久| 亚洲乱码中文字幕| 欧美日韩国产免费一区二区| 午夜伦理一区二区| 亚洲精品在线免费观看视频| 国产乱码精品一区二区三区五月婷| 国产午夜精品久久| 欧美精品在线一区二区三区| 国产精品一区在线观看乱码| 亚洲丝袜另类动漫二区| 欧美探花视频资源| 狠狠色丁香婷综合久久| 国产精品成人免费| 欧美一区二区三区白人| 国产91露脸合集magnet| 亚洲精品国产精品乱码不99| 日韩午夜三级在线| 美女视频一区二区三区| 成人高清在线视频| 久久久国产午夜精品| 国产精品一区二区三区乱码| 亚洲已满18点击进入久久| 日韩欧美成人激情| 欧美日韩激情一区| 精品国内片67194| 国产精品小仙女| 亚洲视频免费在线观看| 97久久精品人人做人人爽| 偷拍亚洲欧洲综合| 另类欧美日韩国产在线| 5858s免费视频成人| 成人免费视频一区| 奇米888四色在线精品| 中文字幕一区二区三区蜜月| 精品三级在线看| 欧美日韩国产免费| 91在线视频免费观看| 精品一区二区三区在线观看 | 亚洲一区国产视频| 91同城在线观看| 国产麻豆成人精品| 日本欧洲一区二区| 一级做a爱片久久| 国产精品久久久久久一区二区三区 | 日韩美女视频一区二区在线观看| 99精品久久99久久久久| 色婷婷久久久综合中文字幕| 欧美日韩高清影院| 精品国产一区二区三区不卡 | 国产精品免费视频观看| 亚洲欧洲综合另类在线| 亚洲成人www| 免费成人美女在线观看.| 国产剧情一区二区| 91在线云播放| 欧美一级精品在线| 日韩一区在线免费观看| 午夜a成v人精品| 国产精品一区三区| 欧美午夜影院一区| 久久日一线二线三线suv| 亚洲日本成人在线观看| 欧美aaaaaa午夜精品| 不卡视频在线观看| 99精品在线观看视频| 国产精品天天看| 精品日韩欧美在线| 综合欧美亚洲日本| 老司机午夜精品99久久| 一本大道av一区二区在线播放| 91精品国产综合久久久久久| 亚洲天堂a在线| 久草中文综合在线| 欧美中文字幕久久| 欧美激情一区二区三区四区| 日韩精品久久理论片| 91在线看国产| 久久久天堂av| 日韩精品福利网| 色悠悠久久综合| 国产日产亚洲精品系列| 丝袜美腿亚洲一区| 91久久线看在观草草青青| 国产三级欧美三级日产三级99 | 日韩三级电影网址| 亚洲精品国产第一综合99久久| 美国毛片一区二区| 欧美性一级生活| 日日欢夜夜爽一区| 91在线观看地址| 国产精品69毛片高清亚洲| 精品久久久久久无| 日韩精品一区二区三区在线观看 | 日本不卡一二三区黄网| 9色porny自拍视频一区二区| www久久久久| 强制捆绑调教一区二区| 色8久久人人97超碰香蕉987| 日本一区二区免费在线观看视频 | 三级久久三级久久久| 91麻豆成人久久精品二区三区| 欧美国产成人精品| 国产成人午夜99999| 亚洲精品在线免费观看视频| 蜜桃久久精品一区二区| 欧美高清激情brazzers| 一区二区三区四区不卡在线| av午夜一区麻豆| 国产精品免费人成网站| 高清日韩电视剧大全免费| 亚洲精品在线电影| 国产麻豆精品95视频| 国产亚洲精品bt天堂精选| 国产一区二区三区免费观看| 精品盗摄一区二区三区| 激情五月播播久久久精品| 精品国产一区二区三区久久久蜜月| 蜜桃免费网站一区二区三区| 日韩免费视频一区二区| 免费视频最近日韩| 色呦呦日韩精品| 日本一区二区电影| 国产福利一区在线观看| 中文无字幕一区二区三区| 成人激情动漫在线观看| 成人免费在线视频观看| 色av一区二区| 久久99精品久久久久久久久久久久| 欧美美女一区二区三区| 美女精品自拍一二三四| 亚洲精品一区二区三区四区高清| 国内成人精品2018免费看| 国产婷婷色一区二区三区| 成人av在线观| 亚洲自拍偷拍图区| 日韩一区和二区| 国产激情视频一区二区三区欧美 | 亚洲成人精品影院| 日韩一级片网站|