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

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

?? adc0_temp.c

?? 16進制轉壓縮型BCD碼的C語言實現
?? C
字號:
/***************************************************************
功能:實現ADC0采樣芯片溫度,通過LCD顯示,并通過串口0(J13)發送到PC機
     注:試驗時把ADC0的工作基準VREF0(J7_5和J7_6或J7_2和J7_6)和LCD電源跳線(J18_1和J18_2)聯接好!
作者:ZDP
時間:2005-11-30
版本:V1.0
用外部基準:
				 J7
	NC			1	2	內部VREF
	外部VREF	3	4	內部DAC工作基準輸入
	外部VREF	5---6	內部ADC0工作基準輸入
	外部VREF	7	8	內部ADC1工作基準輸入
或用內部基準:
				 J7
	NC			1	2-	內部VREF
	外部VREF	3	4 |	內部DAC工作基準輸入
	外部VREF	5	6-	內部ADC0工作基準輸入
	外部VREF	7	8	內部ADC1工作基準輸入
***************************************************************/
#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數組的指針
unsigned char lcd_data_count;   //要顯示的數據個數 

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,則等待                     
	while (1) {
      EA = 0;                          // 關中斷
      temperature = result;
      EA = 1;                          //開中斷
      //轉換為實際溫度數據
      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);//把溫度數據通過串口發送至PC機
	  //在LCD上顯示溫度
	  //LCD顯示數據處理

	  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;                         	//準備送數據
	  lcdpoint=&NCDdata;					//取地址
	  for(lcd_data_count=6;lcd_data_count>0;lcd_data_count--)
	  { 
	  		data1=*lcdpoint;				//讀出數據				
		    P3 = data1; 					//寫數據到端口
			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配置
//-----------------------------------------------------------------------------
// 配置系統時鐘使用外部晶振22.1184MHz
void SYSCLK_Init(void)
{
   int i;                              // delay counter
   OSCXCN=0x67;                        // 啟動外部振蕩器用22.1184MHz晶體
   for(i=0;i<256;i++);                 // 最少等待>1ms
   while (!(OSCXCN & 0x80));           // 等待晶體穩定
   OSCICN=0x88;                        // 選擇外部振蕩器作為系統時鐘源,使能丟失時鐘檢測器
}

//-----------------------------------------------------------------------------
// 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口設為推挽方式
   P3MDOUT  = 0xff;                    // P2口設為推挽方式
}
//-----------------------------------------------------------------------------
// 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定時啟動ADC
//-----------------------------------------------------------------------------
void ADC0_Init (void)
{
   ADC0CN = 0x05;                      // T3定時到點時啟動采樣,左對齊
   REF0CN = 0x07;                      // 啟用內部基準源
   AMX0SL = AMX0SL_AIN;                // 選擇采樣輸入源
   ADC0CF = (SYSCLK/2500000) << 3;     // ADC conversion clock = 2.5MHz
   ADC0CF |= 0x01;                     // PGA gain = 2
   EIE2 |= 0x02;                       // 啟用 ADC 中斷
}

//-----------------------------------------------------------------------------
// Timer3配置,T3定時啟動ADC
//-----------------------------------------------------------------------------
void Timer3_Init (int counts)
{
   TMR3CN = 0x02;
   TMR3RL  = -counts;
   TMR3    = 0xffff;
   EIE2   &= ~0x01;//使能T3標志位有效,允許作中斷申請
   TMR3CN |= 0x04;
}

//-----------------------------------------------------------------------------
// ADC0采樣中斷
//-----------------------------------------------------------------------------
void ADC0_ISR (void) interrupt 15      //實現256次采樣結果的求平均
{
   static unsigned int_dec=INT_DEC;    
   static long accumulator=0L;                     

   AD0INT = 0;						   // 清 ADC 中斷標志位
   accumulator += ADC0;                // 累加ADC采樣數據
   int_dec--;                          // 指針減1
   if (int_dec == 0) {                 // 累加完了嗎?
      int_dec = INT_DEC;               // 指針復位
      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++);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxx老人做受| 亚洲午夜精品在线| 亚洲免费视频成人| 另类欧美日韩国产在线| av一二三不卡影片| 欧美一区二区三区视频| 亚洲精品视频观看| 国产传媒欧美日韩成人| 91麻豆精品国产| 亚洲精品国产无套在线观| 国产一区二区三区美女| 欧美日产国产精品| 亚洲一区在线视频观看| 成人av资源在线| 久久久五月婷婷| 日韩国产欧美在线视频| 欧美体内she精高潮| 亚洲三级电影全部在线观看高清| 久久99深爱久久99精品| 欧美久久高跟鞋激| 亚洲国产视频一区二区| 91毛片在线观看| 中文字幕欧美一| 成人黄色大片在线观看| 中文一区二区在线观看| 国产在线不卡一卡二卡三卡四卡| 91在线精品一区二区三区| 国产精品久久久久一区| 国产福利一区二区| 久久亚洲影视婷婷| 国内成+人亚洲+欧美+综合在线 | 亚洲午夜激情av| av在线一区二区| 亚洲久本草在线中文字幕| 99re热这里只有精品免费视频| 国产欧美精品日韩区二区麻豆天美| 美女一区二区三区| 久久综合九色综合久久久精品综合| 免费不卡在线观看| 精品美女在线观看| 国产在线国偷精品产拍免费yy| 久久综合九色综合欧美98 | bt7086福利一区国产| 国产欧美一区二区精品秋霞影院 | 蜜臀久久99精品久久久画质超高清 | 国产成人精品综合在线观看| 26uuu精品一区二区在线观看| 黑人巨大精品欧美黑白配亚洲| 欧美精品一区二区蜜臀亚洲| 国产一区二区三区免费观看| 国产精品女同互慰在线看| 成人涩涩免费视频| 亚洲激情在线激情| 欧美精品日韩一本| 久久精品国产免费| 国产精品美日韩| 欧美视频一区二| 国内偷窥港台综合视频在线播放| 国产精品丝袜在线| 欧美在线观看一区二区| 美女在线观看视频一区二区| 国产亚洲一区字幕| 欧洲中文字幕精品| 久久99国产精品久久99| 亚洲日本欧美天堂| 884aa四虎影成人精品一区| 国模一区二区三区白浆| 亚洲人妖av一区二区| 7799精品视频| 99久久er热在这里只有精品66| 午夜欧美一区二区三区在线播放 | 欧美日韩一区二区在线观看| 激情综合一区二区三区| 亚洲欧美日韩国产成人精品影院 | 欧美韩国日本一区| 欧美午夜不卡视频| 国产999精品久久| 亚洲国产美国国产综合一区二区| 2014亚洲片线观看视频免费| 日本精品一级二级| 国产在线麻豆精品观看| 亚洲成av人片在线| 国产精品伦一区| 亚洲精品在线观看网站| 在线观看日韩电影| 国产a级毛片一区| 日本va欧美va欧美va精品| 中文字幕欧美一区| 久久久精品中文字幕麻豆发布| 欧美主播一区二区三区| 成人午夜激情片| 久久电影网站中文字幕| 首页国产欧美久久| 亚洲欧美视频在线观看视频| 久久久蜜桃精品| 日韩精品一区二区在线观看| 欧美影片第一页| 色综合天天综合色综合av| 国产.欧美.日韩| 韩国成人在线视频| 美女视频黄久久| 日韩国产精品久久| 日韩国产一区二| 奇米色777欧美一区二区| 夜夜夜精品看看| 一区二区久久久| 亚洲综合av网| 亚洲自拍偷拍网站| 亚洲电影一级黄| 亚洲国产欧美日韩另类综合| 亚洲狠狠丁香婷婷综合久久久| 国产精品三级视频| 久久精品人人爽人人爽| 久久久久成人黄色影片| 国产三级欧美三级日产三级99 | 欧美色爱综合网| 欧美亚洲精品一区| 欧美性猛交xxxx黑人交| 91九色最新地址| 91福利视频网站| 欧美探花视频资源| 欧美美女喷水视频| 这里只有精品电影| 欧美xxxx老人做受| 国产日韩视频一区二区三区| 中文字幕中文字幕在线一区| 国产精品免费观看视频| 国产精品电影一区二区三区| 一区精品在线播放| 亚洲综合视频网| 毛片一区二区三区| 成人综合婷婷国产精品久久| voyeur盗摄精品| 欧美性大战久久久久久久| 91精品国产综合久久久久久久久久 | 欧美激情艳妇裸体舞| 国产精品传媒在线| 亚洲国产精品一区二区久久恐怖片 | 亚洲激情第一区| 三级在线观看一区二区| 精品在线播放午夜| 成人午夜电影久久影院| 色一情一乱一乱一91av| 91麻豆精品国产91久久久 | 日韩一区二区三区四区 | 亚洲精品水蜜桃| 蜜臀va亚洲va欧美va天堂| 国产二区国产一区在线观看| 91在线无精精品入口| 精品1区2区3区| 久久久三级国产网站| 亚洲欧美激情视频在线观看一区二区三区| 亚洲成人久久影院| 国产成人精品一区二| 欧美日韩亚洲不卡| 亚洲国产成人在线| 日韩电影在线观看电影| a亚洲天堂av| 日韩视频免费直播| 亚洲婷婷在线视频| 麻豆一区二区三| 日本高清免费不卡视频| 欧美精品一区二区三区四区 | 91.com视频| 国产精品免费网站在线观看| 视频在线观看91| 97se亚洲国产综合自在线观| 精品裸体舞一区二区三区| 亚洲主播在线播放| 成人在线综合网站| 日韩免费电影网站| 性做久久久久久久久| 97久久精品人人做人人爽| 久久五月婷婷丁香社区| 日韩电影在线一区| 欧美亚一区二区| 自拍偷拍国产精品| 国产成人免费视频网站 | 4hu四虎永久在线影院成人| 国产精品久久久一本精品| 久久激情五月激情| 欧美日韩不卡在线| 亚洲综合色噜噜狠狠| 94-欧美-setu| 国产精品全国免费观看高清| 精品一区二区三区在线视频| 欧美日韩一卡二卡| 亚洲综合小说图片| 日本道精品一区二区三区| 中文字幕乱码久久午夜不卡| 韩国理伦片一区二区三区在线播放 | 在线视频观看一区| 最新国产の精品合集bt伙计| 国产乱码精品1区2区3区| 亚洲精品在线观看视频| 精品无码三级在线观看视频| 欧美一区二区精品| 精品一区二区久久久| 久久亚洲一区二区三区明星换脸| 开心九九激情九九欧美日韩精美视频电影|