導航:首頁 > 操作系統 > rc充放電測溫單片機

rc充放電測溫單片機

發布時間:2022-07-25 08:56:33

1. 誰用過51單片機做過RC測溫的能分享一下嗎

給你個網站
你去看一下
有什麼問題你在問我
我現在也在做用RC測溫
http://www.sinochip.net/TechSheet/67.htm

本程序工作過程如下:

;1、開機後首先進行初始化,初始化後顯示「P」1秒,提示系統進入測試工作狀態,顯

; 示完成後,進行溫度測試。

;2、溫度測試的過程是這樣的:

; * T0置為計數方式,對T0腳(即P3.5)的脈沖計數,工作方式2,初值為255

; * 將T1置為定時方式,工作方式2,初值為0

; * 從P3.4口送單穩觸發脈沖,使555輸出單穩脈沖(正脈沖),該脈沖寬度隨熱敏

; 電阻阻值而變化。

; * 開T0、T1中斷,啟動T0、T1。此時T1自動對內部機器周期計數,當TL1溢

; 出時,產生T1中斷。在T1中斷處理程序中,將RAM 21H單元加1(即21H單

; 元存放脈沖寬計數值高位)後返回主程序。

; * 當來自P3.5的單穩脈沖結束(即下降沿到來)時,TL0計數器加1並溢出,產

; 生T0中斷。在T0中斷處理程序中,關T0、T1中斷,並將TL1中的的內容讀

; 到RAM 20H單元(20H單元存放脈寬計數值的低位)。

; * 查表求溫度值

; NTTAB是脈寬計數值與溫度的對照表,按低溫到高溫的次序存放,即第一、第

; 二單元存放-100C時的脈寬計數值,依此類推,第121和122單元則存放+500C

; 時的脈寬計數值。

; 將20H、21H中的計數值與NTTAB中的計數值依次進行比較,直至20H、21H

; 中的值小於NTTAB中的計數值為止。而比較的次數就對應溫度的整數值,二計

; 數值之差與對照表相鄰兩計數值的商即為小數位。

;3、程序中除了對-100C到+500C進行測試外,還有開路(計數值過大)、短路檢測(計

; 數值過小)、負超溫檢測、正超溫檢測,並有相應的顯示。

;4、將檢測值(溫度值或其他結果)顯示1秒,然後再重復溫度檢測。

;需要說明的是:本程序雖包括了測溫的全過程,但未考慮軟硬體的自檢,軟體濾波等部

;分。

;電容C4、熱敏電阻RT的參數決定單穩脈沖的寬度,而最終的計數值除了與單穩

; 脈沖的寬度有關外,還與晶振頻率有關,因而在RT的型號確定後要根據系統對精

; 度和解析度等的要求選擇C4的值。本程序中NTTAB脈寬計數值與溫度對照表是在

; 熱敏電阻為MF53-1型負溫熱敏電阻加12K精密電阻與之並聯,C4為1μ,晶振為

; 4MHz的條件下得到的。數據不十分准,僅做參考。你可以在元件參數定了後,可在

; 調試程序時用可變電阻箱代替熱敏電阻,在程序測出計數值處設斷點,讀出每個標

; 准阻值所對應的計數值(即20H、21H中的內容),自己將NTTAB建立起來。

; * * * * * * * * * * * * * * * * * * * * * * * * * *

; * 用89C2051控制的數字測溫儀 *

; * 源程序清單 *

; * * * * * * * * * * * * * * * * * * * * * * * * * *

ORG 0000H

AJMP MAIN ;轉主程序

ORG 000BH

AJMP WT0 ;T0中斷入口

ORG 001BH

AJMP WT1 ;T1中斷入口

;主程序

ORG 030H

MAIN: MOV IE,#00H ;關中斷

MOV SP,#40H ;設堆棧指針SP為40H

SETB P3.5 ;將P3.5口置」1」

MOV 30H,#0CH ;「P3 」送顯示緩沖區30H~33H

MOV 31H,#0EH

MOV 32H,#0EH

MOV 33H,#0EH

MAIN0: ACALL D1S ;調顯示1秒子程序

MOV P1,#0FFH ;關顯示

CLR 20H ;清脈寬計數值存放區20H~21H

CLR 21H

CLR 22H ;清單穩脈沖結束標志22H

MOV TH0,#0FFH ;置T0計數初值255

MOV TL0,#0FFH

MOV TH1,#00H ;置T1的計數初值0

MOV TL1,#00H

MOV TMOD,#26H ;置T0為計數方式,方式2;T1為定時方式。方式2

SETB EA ;允許T0、T1中斷

SETB ET0

SETB ET1

SETB TR0 ;開T0中斷

CLR P3.5 ;送單穩觸發脈沖

NOP

NOP

NOP

NOP

SETB P3.5

SETB TR1 ;開T1中斷

MAIN1: CJNE 22H,#01H,MAIN2 ;單穩脈沖未結束,轉檢查是否超時

AJMP MAIN3 ;單穩脈沖結束,轉取脈寬計數值

MAIN2: CJINE 21H,#08H,MAIN1 ;未超時,轉等待單穩脈沖結束

CLR EA

CLR ET0

CLR ET1

CLR TR0

CLR TR1

MOV 30H,#0DH ;開路提示「E1」送顯示緩沖區,轉顯示

MOV 31H,#01H

MOV 32H,#0EH

MOV 33H,#0EH

AJMP MAIN0

MAIN3: CJNE 21H,#00H,MAIN4 ;單穩脈沖結束,先判斷是否短路。不是,轉查表程序。

MOV 30H,#0DH ;短路,短路提示「E2」送顯示緩沖區,轉顯示

MOV 31H,#02H

MOV 32H,#0EH

MOV 33H,#0EH

AJMP MAIN0

MAIN4: ACALL NTTR ;調查表子程序

AJMP MAIN0

;查表求溫度值子程序

NTTR: MOV R2,#00H ;清計數與溫度對照表偏移量寄存器R2

MOV DPTR,NTTAB ;DPTR指向計數與溫度對照表首址

NTTR1: CLR C ;20H、21H中的內容與NTTRB相減,並將差值存23H、24H

MOV R3,#02H

MOV R0,#20H

MOV R1,#23H

NTTR2: MOV A,R2

MOVC A,@A+DPTR

SUBB A,@R0

MOV @R1,A

INC R0

INC R1

INC R2

CJNE R2,#122,NTTR3 ;若未到NTAB表尾,繼續比較

POVER:JC NTTR30 ;到表尾,查到對應溫度,轉求溫度值

MOV 30,#0EH ;到表尾,查到對應溫度,正超溫提示「UUU」送顯緩區

MOV 31H,#0BH

MOV 32H,#0BH

MOV 33H,#0BH

RET ;返回主程序

NTTR3: DJNZ R3,NTTR2

JNC NTTR1 ;未查到對應溫度值,繼續查表

NTTR30:MOV A,R2 ;已查到對應溫度,由偏移量求出整數部分,暫存R4

CLR C

SUBB A,#02H

RR A

MOV R4,A

MOV R1,#23H ;求溫度值的小數部分:+X/2送B

MOV A,@R1

CPL A

INC A

RR A

MOV B,A

NTTR4: DEC R2 ;Ni+1送20H、21H

MOV R0,#21H

MOV A,R2

MOVC A,@A+DPTR

MOV @R0, A

DEC R0

DEC R2

MOV A, R2

MOVC A,@A+DPTR

MOV @R0, A

DEC R2 ;求+i/2從A

DEC R2

MOV R3,#02H

CLR C

NTTR5: MOV A,R2

MOVC A,@A+DPTR

SUBB A,@R0

JNC NTTR50

CLP A

INC A

NTTR50:RR A

MOV R5,A

MOV A,B ;+x/2*10/+i得到溫度值的小數部分

JZ NTTR6

MOV B, #05H

MUL AB

MOV B,R5

DIV AB

MOV 20H,A ;小數部分送20H

AJMP NTTR7

NTTR6: MOV 20H,#00H

NTTR7: MOV A,#0AH ;判整數部分為正還是負

CLR C

SUBB A,R4

JC PTEMP

NTEMP:CJNE A,#0AH,NTEMP1 ;為負

MOV 30H,#0EH ;「-X」送顯示緩沖區高三位

MOV 31H,#0AH

MOV 32H,A

AJMP NTEMP2

NTEMP1:MOV 30H,#0AH ;「-10」 送顯示緩沖區高三位

MOV 31H,#01H

MOV 32H,#00H

NTEMP2:MOV A,#0AH ;修正小數部分後,將小數部分送顯緩低三位

CLR C

SUBB A,20H

MOV 33H,A

RET ;返回主程序

PTEMP: MOV 30H,#0EH ;為正。「 」送顯緩最高位

MOV A,R4 ;溫度值整數部分送顯緩中間兩位

MOV B,#0AH

DIV AB

JNZ PTEMP1

] MOV 31H,#0EH

JMP PTEMP2

PTEMP1:MOV 31H,A

PTEMP2:MOV 32H,B

MOV 33H,20H ;小數部分送顯緩最低位

RET ;返回主程序

;顯示子程序(將顯緩區的內容循環顯示一遍,每位顯示1ms後,關顯示返回主程序)

DSP: MOV R2,#01H

MOV R0,#30H

MOV DPTR,#TAB

DSP1: MOV A,@R0

MOVC A,@A+DPTR

MOV P1,A

ORL P3,R2

ACALL D1MS

MOV A,R2

RL A

MOV R2,A

CJNE R2,#10H,DSP2

ANL P3,#0F0H

RET

DSP2: INC R0

AJMP DSP1

;延時1ms子程序

D1MS: MOV R7,#166

D1MS1: DJNZ R7,D1MS1

RET

;顯示1秒子程序

D1S: MOV R6,#04H

D1S1: MOV R5,#250

D1S2: ACALL DSP

DJNZ R5,D1S2

DJNZ R6,D1S1

RET

;段碼表

TAB: DB 40H,79H,24H,30H,19H :0.,1.,2.,3.,4.

DB 12H,02H,78H,00H,10H :5.,6.,7.,8.,9.

DB 3FH,41H,0CH,06H,0FFH :-.,U.,P.,E.,滅

;T0中斷處理程序

WT0: MOV A,TL1 ;將T1計數值送20H

MOV 20H,A

CLR EA ;關中斷

CLR TR0 ;T0停止計數

CLR TR1 ;T1停止計數

MOV 22H,#01H ;置單穩脈沖結束標志

RETI ;返回主程序

;T1中斷處理程序

WT1: INC 21H ;脈寬計數值高位加1

RETI ;返回主程序

;脈寬計數與溫度對照表

NTTBL: DB 0D0H,05H,0B2H,05H,96H,05H,72H,05H

DB 52H,05H,35H,05H,15H,05H,0F6H,04H

DB 0D8H,04H,0B9H,04H,9CH,04H,81H,04H

DB 65H,04H,4AH,04H,30H,04H,14H,04H

DB 0FAH,03H,0E0H,03H,0C6H,03H,0ADH,03H

DB 95H,03H,7CH,03H,64H,03H,4CH,03H

2. STC系列單片機用RC充放電實現檢測外部電壓電路中,輸入電壓接哪裡

你好,輸入電壓接在P3.2口。
開始時,P3.2置低電平,會將此處電壓拉低至0.
然後P3.2置高電平,同時計數並打開中斷,當充電電壓達到2v時,產生中斷,停止計數,此時的計數值與輸入電壓大小有關。

3. RC復位電路在單片機中 這個電容和電阻分別什麼作用 再告訴我下如何選擇電容容值和電阻阻值

復位電路的原理:上電瞬間,5V電壓經C3電容(此時電容作用,通交隔直,瞬間的電壓變化會經C3耦合,此時C3視為理想中短路狀態),過R1到地迴路,RST腳瞬間變為高電平,CPU進入復位狀態,5V經C3,R1到地進行充電迴路,根據RC串聯充電公式,當C3充飽電後,C3兩端壓降為5V,此時RST腳為低電平,C3充電時間T大於CPU復位時間時,CPU復位成功。

4. 沒有ADC的MCU怎麼檢測電壓,除了RC充放電方法

可以選擇外接並口或串口ADC,還有一種方法是用V/F轉換晶元將電壓轉換為頻率,然後用單片機測量頻率獲取電壓。

5. 單片機使用外部晶振和使用內部RC振盪,哪個的功耗更低些為什麼大概高多少(可以舉例說明一種單片機)

單片機的功耗跟使用何種晶振方式沒有太大關系。從頻率上來說,影響單片機功耗的因素主要有兩個:

第一個是,單片機的晶振頻率。一般來說,單片機的晶振頻率越高,所需功耗越大。這個晶振頻率跟是使用外部晶振還是內部震盪沒有關系;

第二個是,單片機所使用的功能模塊。如使用一個ADC模塊和一個DAC模塊比單獨使用一個ADC模塊的功耗要高。

具體來說,單片機的每一個功能模塊都有一個大概的功耗范圍。如下圖給出了單片機在不同晶振頻率下所需電流功耗。

6. 基於STC89C52RC單片機和DS18B20完成簡易現場測溫系統製作

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}
/********************** DS18B20 指令*********************/
#define ds18B20_READ_ROM 0x33 // 讀 ROM 指令
#define ds18B20_MATCH_ROM 0x55 // 匹配 ROM 指令
#define ds18B20_SKIP_ROM 0xCC // 跳過 ROM 指令
#define ds18B20_SEARCH_ROM 0xF0 // 搜索 ROM 指令
#define ds18B20_ALARM_SEARCH 0xEC // 報警搜索指令
#define ds18B20_WRITE_SCRATCHPAD 0x4E // 寫暫存寄存器指令
#define ds18B20_READ_SCRATCHPAD 0xBE // 讀暫存寄存器指令
#define ds18B20_COPY_SCRATCHPAD 0x48 // 復制暫存寄存器指令
#define ds18B20_CONVERT_T 0x44 // 啟動溫度轉換指令
#define ds18B20_RECALL_E2 0xB8 // 重新調出 E2PROM 的數據
#define ds18B20_READ_POWER_SUPPLY 0xB4 // 讀電源
#define LCD_Data P1 //定義數據指令埠
sbit ds18B20_data = P3^3; //溫度探頭(DQ)數據埠對應的單片機引腳
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;

uchar Minus_Flag=0;
uchar code Temp_Disp_Title[]={"Current Temp : "};
uchar Current_Temp_Display_Buffer[]={"TEMP: "};
uchar Temp_Value[]={0x00,0x00};
uchar Display_Digit[]={0,0,0};

void Delay(uint x)
{
while(--x);
}
/****************************延時10us*************************/
//先執行一個LCALL指令(2 μs),然後執行6個_NOP_( )語句(6 μs),最後執行了一個RET指令(2 μs)
void Delay_10us(void)
{ _nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/***************************延時 time*15us******************** */
void delay_15us(uint time)
{
uint i;
for (i=0;i<time;i++);
}
void DelayXus(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<200;i++);
}
}

bit LCD_Busy_Check()
{
bit result;
LCD_RS = 0; // ling
LCD_RW = 1; // zhuang tai
LCD_EN = 1;
delayNOP();
result = (bit)(LCD_Data&0x80);
LCD_EN=0;
return result;
}

void Write_LCD_Command(uchar cmd)
{
while(LCD_Busy_Check()); //bu mang lu
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
_nop_();
_nop_();
LCD_Data = cmd;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}

void Write_LCD_Data(uchar dat)
{
while(LCD_Busy_Check());
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
LCD_Data = dat;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}

void LCD_Initialise()
{
Write_LCD_Command(0x01); //清屏
DelayXus(5);
Write_LCD_Command(0x38); //設置16*2顯示,5*7點陣,8位數據介面
DelayXus(5);
Write_LCD_Command(0x0c); //畫面開,禁止游標顯示閃爍
DelayXus(5);
Write_LCD_Command(0x06);

//當讀寫一個位元組後,游標自動加1
DelayXus(5);
}

void Set_LCD_POS(uchar pos)
{
Write_LCD_Command(pos|0x80);
}

/************************溫度探頭程序************************/
bit Rstds18B20(void); // DS18B20 復位程序, 返回 0-有設備連接,1-無設
void Writeds18B20(uchar ); // 寫一個位元組 ds18B20 數據、命令子程序
uchar Readds18B20(void); // 讀一個位元組ds18B20 數據子程序
uint GetTempValue(void); // 啟動 ds18B20 溫度轉換程序
/***********************ds18B20 復位程序**********************/
bit Rstds18B20(void) // 返回,0-有設備連接;1-無設備連接
{
uchar i;
bit RstFlag;
RstFlag = 1;
ds18B20_data = 1;
_nop_();
ds18B20_data=0; // 發送復位脈沖,時間>480us
delay_15us(40); // 延時 480--960us
ds18B20_data = 1; // 拉高匯流排,延時 15us-60us 後等待ds18B20 響應
delay_15us(2); // 15us-60us
for (i=0;i<6;i++) // 60us-240us
{
delay_15us(1);
if (ds18B20_data==0)
RstFlag=0; // 接收 ds18B20 的存在信號
}
delay_15us(20); // 240us
return RstFlag;
}

/***************寫一個位元組 ds18B20 數據、命令子程序******************
功能:向 ds18B20 寫入數據或命令
入口:待寫入 ds18B20 的數據或命令
出口:無
******************************************************************/
void Writeds18B20(uchar ch)
{
uchar i;
ds18B20_data = 1; // 拉高匯流排,延時 1us,准備啟動
_nop_();
for (i=0;i<8;i++)
{
ds18B20_data = 0; // 拉低匯流排
Delay_10us(); // 延時10us
ds18B20_data = ch&0x1; // 發送待寫入的數據, 「1」或「0」
delay_15us(2); // 保持寫入數據時間 45us
ds18B20_data = 1; // 拉高匯流排,延時 1us 後准備下一位傳輸
ch = ch>>1; //先寫低位,後寫高位
_nop_();
}
}

/******************讀一個位元組 ds18B20 數據子程序********************
功能:從 ds18B20 讀出數據
入口:無
出口:讀出的 ds18B20 的數據
******************************************************************/
uchar Readds18B20(void)
{
uchar i,ch;
ch = 0;
ds18B20_data = 1; // 拉高匯流排,延時 1us,准備啟動
_nop_();
for (i=0;i<8;i++)
{
ds18B20_data = 0; // 拉低匯流排
Delay_10us(); // 延時10us
ds18B20_data = 1; // 拉高匯流排,准備接收數據
_nop_();
ch = ch>>1;
if (ds18B20_data == 1) // 接收 ds18B20 的數據
ch = ch+0x80;
delay_15us(2); // 延時 45us,保證整個讀命令有 60us
}
return ch;
}
/*******************啟動

ds18B20 溫度轉換程序*******************
功能:讀取 18B20 的溫度值
入口:無
出口:0xffff-18B20 不正常
0x8000-溫度低於零度
0~1250-攝氏溫度(0~125)
**************************************************************/

uint GetTempValue(void)
{
uchar temp1=0,temp2=0;
uint T=0;
float TC; //TC(浮點數)實際溫度
if(!Rstds18B20()) //如果探頭連接正常
{
Rstds18B20(); // 復位 ds18B20
Writeds18B20(ds18B20_SKIP_ROM); // 跳過 ROM 操作
Writeds18B20(ds18B20_CONVERT_T); // 啟動 ds18B20 溫度轉換
if(!Rstds18B20()) // 如果探頭連接正常
{
Rstds18B20(); // 復位 ds18B20
Writeds18B20(ds18B20_SKIP_ROM); // 跳過 ROM 操作
Writeds18B20(ds18B20_READ_SCRATCHPAD); /* 發讀 ds18B20 數據, 前兩位是溫度值 */
temp1 = Readds18B20(); // 溫度值的低位數據
temp2 = Readds18B20(); // 溫度值的高位數據
// temp1=0x56;
// temp2=0x05;
T = temp1+(temp2<<8);
if((temp2&0xfc)==0xfc)
{
Minus_Flag=1;
TC=~T+1;
}
else
{
Minus_Flag=0;
TC=T;
}
// TC=T*0.0625; //將測量的數據轉換成實際溫度
// TC=0x0556;
return (TC*0.625); //返回 TC
}
else
{
return 0xffff;
}
}
else
{
return 0xffff;
}
}

void Display_Temperature(uint num)
{
uchar m,n,q,i;
m=num/100; //得到十位
n=num%100/10; //得到個位
q=num%10; //對上述整數求余得到小數點後第一位
Display_Digit[2] = m;
Display_Digit[1] = n;
Display_Digit[0] = q;
if(Minus_Flag)
{
Current_Temp_Display_Buffer[7] = '-';
}
else Current_Temp_Display_Buffer[7] = ' ';
Current_Temp_Display_Buffer[11] = Display_Digit[0] + '0';
Current_Temp_Display_Buffer[10] = '.';
Current_Temp_Display_Buffer[9] = Display_Digit[1] + '0';
Current_Temp_Display_Buffer[8] = Display_Digit[2] + '0';
if(Display_Digit[2] == 0)
Current_Temp_Display_Buffer[8] = ' ';
Set_LCD_POS(0x00);
for(i=0;i<16;i++)
{
Write_LCD_Data(Temp_Disp_Title[i]);
}
Set_LCD_POS(0x40);
for(i=0;i<16;i++)
{
Write_LCD_Data(Current_Temp_Display_Buffer[i]);
}
// Set_LCD_POS(0x4d);
// Write_LCD_Data(0x00);
Set_LCD_POS(0x4d);
Write_LCD_Data('C');
}

void main()
{
uint Temperature;
LCD_Initialise();
Delay(50000);
while(1)
{
Temperature=GetTempValue();
Display_Temperature(Temperature);
// Display_Temperature(865);
DelayXus(100);
}

}

7. 要用單片機測量一階RC電路常數,給RC電路輸入的是方波,怎麼確定其電路時間常數

當電容兩端電壓達到最大並趨於穩定時,完成充電,之後電壓降到最大值的0.632倍時,開始定時
完成放電後定時器停止計時,這段時間就是時間常數T=RC。
讀取定時器的定時時間,顯示在數碼管上,就是時間常數T的時間。

呵呵 趕快去試試吧
滿意就選滿意回答哦

8. 單片機測溫原理

這需要溫度感應頭與單片機配合的,感應頭把溫度信號轉換成電信號在轉換成二進制數,輸入單片機,單片機與儲存的溫度記錄相比較,得出當前溫度,輸出。總得來說就是需要有外部原件把溫度換成二進制信號(有的單片機可以直接識別電壓信號,內部自動轉換二進制信號),單片機識別與存儲的數據進行比較得出溫度。

9. 單片機外部rc振盪器原理

PIC系列單片機可工作於不同的振盪器方式。用戶可以根據其系統設計的需要,選擇下述四種振盪方式中的一種,其振盪的頻率范圍在DC~20/25MHz之間,如表1所示。

用戶可以根據不同的應用場合,從表1所示的四種振盪方式中選擇一種(使用PIC編程器時也需作這種選擇的操作),以獲得最佳的性能價格比。其中,LP振盪器方式可以降低系統功耗,RC振盪器方式可節省成本。

建立PIC源程序時,其振盪器方式由配置寄存器CONFIG的D1位和D0位來決定,如表2所示。

1內部晶體振盪器/陶瓷振盪器

在LP、XT和HS這三種方式下,需要在微控制器引腳OSC1/CLKIN和OSC2/CLKOUT的兩端接一石英晶體或陶瓷諧振器。如圖1中,只有在HS方式下才需要在振盪迴路中加入電阻Rs(100Ω<Rs<1kΩ)。

2外部時鍾源或外部晶體振盪器

在LP、XT和HS這三種振盪器方式下,各種PIC系列微控制器晶元既可以用集成在內部的振盪器,也可以接受外部輸入的時鍾源或外接晶體振盪器。若用外部時鍾源或外接晶體振盪器,可把外部振盪器輸出接晶元的OSC1/CLKIN引腳,此時OSC2/CLKOUT引腳開路即可。圖2是外接時鍾源的形式,外部晶體獨立的振盪器與圖2相似。

3外部RC振盪器

RC振盪器主要應用於對時間精度要求不太高的場合。

RC振盪器是在OSC1/CLKIN引腳接一串聯電阻電容,如圖3所示。廠家推薦電阻Rext取值在5kΩ~100kΩ之間。當Rext小於22kΩ時,振盪器的工作可能會變得不穩定或停振;當Rext取值大於1MΩ時,振盪器易受到干擾。RC振盪器產生的振盪頻率fosc,經內部4分頻電路分頻後從OSC2/CLKOUT輸出fosc/4振盪信號,此信號可以用作測試或作其它邏輯電路的同步信號。

表3給出了使用陶瓷或晶體振盪器時所需的電容器值。表4給出了使用RC振盪器的電阻器和電容器的值。此數據供設計時參考。

10. 用單片機檢測電路rc頻率需要哪些電子原件

用單片機檢測電路rc頻率,只需要一個有ADC的單片機最小系統就可以了。
如果你有現成的最好,沒有的話推薦STC15W401S系列,只需要一片單片機晶元,一個退耦電容,一個充放電試驗電容,一個充放電電阻就可以了。

閱讀全文

與rc充放電測溫單片機相關的資料

熱點內容
mac壓縮解壓視頻 瀏覽:904
這就是程序員魅力 瀏覽:294
京東java演算法筆試題 瀏覽:178
柱子加密箍筋不準有接頭 瀏覽:199
我的世界伺服器菜單插件如何使用 瀏覽:12
劉毅10000詞pdf 瀏覽:890
剛畢業的程序員會什麼 瀏覽:974
單片機控制64路開關量 瀏覽:982
win10截圖編程 瀏覽:420
怎樣把名字變成文件夾 瀏覽:203
文件怎麼搞成文件夾 瀏覽:730
多線程編程php 瀏覽:606
安卓機越用越卡有什麼辦法 瀏覽:17
高中生解壓操場適合做的游戲 瀏覽:395
程序員java招聘 瀏覽:462
未來之光手機雲伺服器 瀏覽:160
伺服器下載資料為什麼c盤滿了 瀏覽:265
怎麼清除空文件夾 瀏覽:544
如何查看派派伺服器 瀏覽:804
殺手6解壓畫面 瀏覽:671