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

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

?? adc0_temp.c

?? BTF020實(shí)驗(yàn)程序-2 btf020開發(fā)板自帶
?? C
字號(hào):
/***************************************************************
功能:實(shí)現(xiàn)ADC0采樣芯片溫度,通過LCD顯示,并通過串口0(J13)發(fā)送到PC機(jī)
     注:試驗(yàn)時(shí)把ADC0的工作基準(zhǔn)VREF0(J7_5和J7_6或J7_2和J7_6)和LCD電源跳線(J18_1和J18_2)聯(lián)接好!
作者:ZDP
時(shí)間:2005-11-30
版本:V1.0
用外部基準(zhǔn):
				 J7
	NC			1	2	內(nèi)部VREF
	外部VREF	3	4	內(nèi)部DAC工作基準(zhǔn)輸入
	外部VREF	5---6	內(nèi)部ADC0工作基準(zhǔn)輸入
	外部VREF	7	8	內(nèi)部ADC1工作基準(zhǔn)輸入
或用內(nèi)部基準(zhǔn):
				 J7
	NC			1	2-	內(nèi)部VREF
	外部VREF	3	4 |	內(nèi)部DAC工作基準(zhǔn)輸入
	外部VREF	5	6-	內(nèi)部ADC0工作基準(zhǔn)輸入
	外部VREF	7	8	內(nèi)部ADC1工作基準(zhǔn)輸入
***************************************************************/
#include <c8051f020.h>                 // SFR declarations
#include <stdio.h>
#include <INTRINS.H>
//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------

sfr16 DP       = 0x82;                 // data pointer
sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
sfr16 TMR3     = 0x94;                 // Timer3 counter
sfr16 ADC0     = 0xbe;                 // ADC0 data
sfr16 ADC0GT   = 0xc4;                 // ADC0 greater than window
sfr16 ADC0LT   = 0xc6;                 // ADC0 less than window
sfr16 RCAP2    = 0xca;                 // Timer2 capture/reload
sfr16 T2       = 0xcc;                 // Timer2
sfr16 RCAP4    = 0xe4;                 // Timer4 capture/reload
sfr16 T4       = 0xf4;                 // Timer4
sfr16 DAC0     = 0xd2;                 // DAC0 data
sfr16 DAC1     = 0xd5;                 // DAC1 data

#define BAUDRATE     115200            // Baud rate of UART in bps
#define SYSCLK       22118400          // SYSCLK frequency in Hz
#define SAMPLE_RATE  50000             // Sample frequency in Hz
#define INT_DEC      256               // integrate and decimate ratio
#define	AMX0SL_AIN   8				   // 0=AIN0....7=AIN7,8=TEMP

void SYSCLK_Init (void);
void PORT_Init (void);
void UART0_Init (void);
void ADC0_Init (void);
void Timer3_Init (int counts);
void ADC0_ISR (void);
void LCD_Init(void);

unsigned char xdata NCDdata[6]={0x30,0x30,0x30,0x2e,0x30,0x30};
long result;
unsigned char *lcdpoint;        //指向 lcddata數(shù)組的指針
unsigned char lcd_data_count;   //要顯示的數(shù)據(jù)個(gè)數(shù) 

void main (void) {
   long temperature,x;
   int temp_int, temp_frac;
   char data1;

   WDTCN = 0xde;                       // disable watchdog timer
   WDTCN = 0xad;

   SYSCLK_Init ();                     // initialize oscillator
   PORT_Init ();                       // initialize crossbar and GPIO
   UART0_Init ();                      // initialize UART0
   Timer3_Init (SYSCLK/SAMPLE_RATE);   // initialize Timer3 to overflow at
                                       // sample rate

   ADC0_Init ();                       // init ADC

	AD0EN = 1;                         // enable ADC

    EA = 1;  
	while(result==0);					//等于0,側(cè)等待                     
	while (1) {
      EA = 0;                          // 關(guān)中斷
      temperature = result;
      EA = 1;                          //開中斷
      //轉(zhuǎn)換為實(shí)際溫度數(shù)據(jù)
      temperature = temperature - 42380;
      temperature = (temperature * 100L) / 156;
      temp_int = temperature / 100;
      temp_frac = temperature - (temp_int * 100);
	  printf ("Temperature is %+02d.%02d\n", temp_int, temp_frac);//把溫度數(shù)據(jù)通過串口發(fā)送至PC機(jī)
	  //在LCD上顯示溫度
	  //LCD顯示數(shù)據(jù)處理

	  NCDdata[0]=temp_int/100+0x30;NCDdata[1]=(temp_int%100)/10+0x30;NCDdata[2]=(temp_int%100)%10+0x30;
	  NCDdata[4]=temp_frac/10+0x30;NCDdata[5]=temp_frac%10+0x30;


	  LCD_Init();                         	//LCD初始化
	  P2  = 0xA0;                         	//準(zhǔn)備送數(shù)據(jù)
	  lcdpoint=&NCDdata;					//取地址
	  for(lcd_data_count=6;lcd_data_count>0;lcd_data_count--)
	  { 
	  		data1=*lcdpoint;				//讀出數(shù)據(jù)				
		    P3 = data1; 					//寫數(shù)據(jù)到端口
			P2 = 0X20;
	        P2 = 0XA0;						//控制LCD	
	        lcdpoint++;
			for(x=0;x<0x5000;x++);
	  }
	  for(data1=0;data1<0x6;data1++)
	  {
			for(x=0;x<0xffff;x++)
	  		{_nop_();}
       }
	}
}

//-----------------------------------------------------------------------------
// SYSCLK配置
//-----------------------------------------------------------------------------
// 配置系統(tǒng)時(shí)鐘使用外部晶振22.1184MHz

void SYSCLK_Init (void)
{
   int i;                              // delay counter

   OSCXCN = 0x67;                      // start external oscillator with
                                       // 22.1184MHz crystal
   for (i=0; i < 256; i++) ;           // XTLVLD blanking interval (>1ms)

   while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle

   OSCICN = 0x88;                      // select external oscillator as SYSCLK
                                       // source and enable missing clock
                                       // detector
}

//-----------------------------------------------------------------------------
// PORT配置
//-----------------------------------------------------------------------------
void PORT_Init (void)
{
   XBR0    = 0x04;                     // Enable UART0
   XBR1    = 0x00;
   XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
   P0MDOUT |= 0x01;                    // enable TX0 as a push-pull output
   P2MDOUT  = 0xe0;                    // P2口設(shè)為推挽方式
   P3MDOUT  = 0xff;                    // P2口設(shè)為推挽方式
}

//-----------------------------------------------------------------------------
// UART0配置
//-----------------------------------------------------------------------------
// Configure the UART0 using Timer1, for <baudrate> and 8-N-1.
void UART0_Init (void)
{
   SCON0   = 0x50;                     // SCON0: mode 1, 8-bit UART, enable RX
   TMOD    = 0x20;                     // TMOD: timer 1, mode 2, 8-bit reload
   TH1    = -(SYSCLK/BAUDRATE/16);     // set Timer1 reload value for baudrate
   TR1    = 1;                         // start Timer1
   CKCON |= 0x10;                      // Timer1 uses SYSCLK as time base
   PCON  |= 0x80;                      // SMOD00 = 1
   TI0    = 1;                         // Indicate TX0 ready
}

//-----------------------------------------------------------------------------
// ADC0配置,T3定時(shí)啟動(dòng)ADC
//-----------------------------------------------------------------------------
void ADC0_Init (void)
{
   ADC0CN = 0x05;                      // ADC0 T3定時(shí)采樣,左對(duì)齊
   REF0CN = 0x07;                      // 啟用內(nèi)部基準(zhǔn)源
   AMX0SL = AMX0SL_AIN;                // 選擇采樣輸入源
   ADC0CF = (SYSCLK/2500000) << 3;     // ADC conversion clock = 2.5MHz
   ADC0CF |= 0x01;                     // PGA gain = 2

   EIE2 |= 0x02;                       // 啟用 ADC 中斷
}

//-----------------------------------------------------------------------------
// Timer3配置,T3定時(shí)啟動(dòng)ADC
//-----------------------------------------------------------------------------
void Timer3_Init (int counts)
{
   TMR3CN = 0x02;
   TMR3RL  = -counts;
   TMR3    = 0xffff;
   EIE2   &= ~0x01;
   TMR3CN |= 0x04;
}

//-----------------------------------------------------------------------------
// ADC0采樣中斷
//-----------------------------------------------------------------------------
void ADC0_ISR (void) interrupt 15
{
   static unsigned int_dec=INT_DEC;    
   static long accumulator=0L;                     

   AD0INT = 0;						   // 清 ADC 中斷標(biāo)志位


	accumulator += ADC0;               // 累加ADC采樣數(shù)據(jù)
   int_dec--;                          // 指針減1

   if (int_dec == 0) {                 // 累加完了嗎?
      int_dec = INT_DEC;               // 指針復(fù)位
      result = accumulator >> 8;
      accumulator = 0L;                // 累加和變量清0
   }
}
//LCD初始化
void LCD_Init(void)
{unsigned long x;
   P2 = 0X80;
   for(x=0;x<1000;x++);
   //P7 = 0x30;				/*一行顯示*/
   P3 = 0x38;				/*兩行顯示*/
   P2 = 0X00;//0x08;
   P2 = 0X80;//0x09; 
   for(x=0;x<1000;x++);
   P3 = 0x0e;
   P2 = 0x00;
   P2 = 0x80;
   for(x=0;x<1000;x++);
   P3=  0x06;
   P2 = 0x00;
   P2 = 0x80;
   for(x=0;x<5000;x++);
   P3 = 0x01;
   P2 = 0x00;
   P2 = 0x80; 
   for(x=0;x<5000;x++);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品视频在线观看免费| 麻豆精品国产91久久久久久| 欧美一级淫片007| 成人一二三区视频| 视频一区视频二区在线观看| 国产欧美一区二区在线| 日韩一级成人av| 日本道色综合久久| 国产黄色精品网站| 久久超碰97人人做人人爱| 亚洲一区二区欧美| 国产精品狼人久久影院观看方式| 91精品国产综合久久久久久| 色婷婷综合久久久中文一区二区| 国产精品12区| 经典三级视频一区| 捆绑变态av一区二区三区| 亚洲一二三专区| 亚洲人成精品久久久久| 久久久久国产精品人| 欧美一区二区黄色| 欧美日韩mp4| 欧美视频在线不卡| 一本一道久久a久久精品综合蜜臀| 韩国中文字幕2020精品| 日韩av在线播放中文字幕| 亚洲免费色视频| 亚洲天堂精品视频| 中文字幕亚洲一区二区av在线| 日韩精品一区二区三区四区视频 | 天堂影院一区二区| 亚洲精品欧美二区三区中文字幕| 欧美激情一区二区三区全黄| 久久久久高清精品| 久久亚洲精品小早川怜子| 日韩精品最新网址| 欧美videossexotv100| 欧美一级精品在线| 日韩视频国产视频| 日韩免费成人网| 欧美电视剧在线看免费| 日韩欧美一二三四区| 日韩一区二区三区免费看| 5566中文字幕一区二区电影| 欧美日韩高清在线播放| 9191国产精品| 91精品国产一区二区人妖| 91精品国产福利| 日韩欧美高清dvd碟片| 欧美大片在线观看一区| 精品福利视频一区二区三区| 欧美精品一区二区久久婷婷| 久久久91精品国产一区二区精品| 久久久久9999亚洲精品| 国产精品视频在线看| 自拍偷拍国产亚洲| 亚洲国产精品综合小说图片区| 午夜久久久影院| 美女视频免费一区| 国产乱人伦精品一区二区在线观看| 国产精品系列在线播放| 91在线视频在线| 欧美日韩激情一区| 日韩免费福利电影在线观看| 久久久久国产精品厨房| 亚洲欧美一区二区三区极速播放| 亚洲成a天堂v人片| 久久er99精品| 91在线一区二区三区| 欧美精品vⅰdeose4hd| 久久免费精品国产久精品久久久久| 欧美激情一区在线| 亚洲不卡av一区二区三区| 久久国产欧美日韩精品| 丁香六月综合激情| 欧美日韩亚洲高清一区二区| 日韩女优制服丝袜电影| 国产精品亲子伦对白| 一二三区精品福利视频| 精品一区二区三区在线观看国产| jiyouzz国产精品久久| 欧美日韩你懂得| 久久一区二区三区国产精品| 亚洲欧美国产毛片在线| 免费看欧美女人艹b| 成人小视频在线观看| 欧美日韩国产精品自在自线| 久久综合久久久久88| 一区二区国产盗摄色噜噜| 看电视剧不卡顿的网站| 91丨porny丨在线| 337p日本欧洲亚洲大胆色噜噜| 亚洲欧洲国产专区| 激情综合色播激情啊| 欧美性受极品xxxx喷水| 国产日韩精品一区二区浪潮av| 亚洲成人激情社区| 成人免费视频一区| 精品国产一区二区三区av性色| 亚洲三级在线免费| 国产美女视频一区| 欧美午夜一区二区| 国产精品国产三级国产普通话蜜臀 | 久久国产精品免费| 国产一区二区成人久久免费影院| 国产成人av影院| 91在线免费看| 国产女人aaa级久久久级 | 极品瑜伽女神91| 不卡视频免费播放| 亚洲乱码国产乱码精品精可以看| 国产精品国产三级国产普通话蜜臀 | 日韩网站在线看片你懂的| 亚洲婷婷国产精品电影人久久| 韩国视频一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 欧美性生活一区| 中文字幕一区二区三区视频 | 成人综合在线网站| 日韩精品一区二| 午夜精品久久久久久久久| 色婷婷av一区二区三区gif| 中文在线一区二区| 国产精品亚洲一区二区三区妖精| 91精品国产色综合久久ai换脸 | 日本一区二区成人在线| 韩日av一区二区| 久久先锋影音av鲁色资源网| 麻豆精品在线视频| 制服丝袜激情欧洲亚洲| 亚洲成人一区二区| 欧美色偷偷大香| 亚洲一区二区精品久久av| 一本久久精品一区二区| 日韩久久一区二区| 91视频免费播放| 亚洲美女屁股眼交| 日本高清免费不卡视频| 一区二区三区在线观看国产 | 久久久午夜电影| 国产乱码精品一区二区三| 久久亚洲综合av| 国产在线精品免费| 国产欧美视频一区二区三区| 欧美午夜精品久久久久久孕妇| 国产精品对白交换视频| 色香蕉久久蜜桃| 亚洲综合偷拍欧美一区色| 欧美伦理视频网站| 久久99这里只有精品| 日韩女优制服丝袜电影| 国产成人亚洲综合a∨猫咪| 久久久精品日韩欧美| 成人国产精品免费网站| 亚洲丝袜自拍清纯另类| 色呦呦一区二区三区| 亚洲第一综合色| 亚洲精品一区二区三区99| 国产精品一区二区x88av| 国产精品久久久99| 在线观看国产精品网站| 日日摸夜夜添夜夜添亚洲女人| 日韩一级黄色大片| 国产精品99久久久久久宅男| 中文字幕日韩一区| 欧美羞羞免费网站| 精品午夜一区二区三区在线观看| 国产三级精品三级| 91黄色激情网站| 奇米精品一区二区三区在线观看| 久久九九99视频| 色婷婷精品大视频在线蜜桃视频| 亚洲五月六月丁香激情| 日韩一区二区三| 99精品欧美一区二区三区小说| 亚洲国产日韩综合久久精品| 精品国产乱码久久久久久牛牛 | 欧美一区二区成人| 丁香婷婷综合五月| 亚洲动漫第一页| 国产视频911| 欧美日韩在线电影| 国内精品国产成人| 亚洲自拍偷拍九九九| 久久久欧美精品sm网站| 欧日韩精品视频| 国产一区二区主播在线| 亚洲午夜激情网站| 国产亚洲欧美日韩日本| 欧美日韩高清影院| 99久久99久久精品免费观看| 奇米精品一区二区三区在线观看 | 欧美日韩一区二区三区四区| 黄网站免费久久| 亚洲一区二区高清| 国产精品丝袜91| 精品久久久久香蕉网| 欧美私模裸体表演在线观看| 国产一区 二区 三区一级| 日韩国产在线观看|