PIC單片機模/數(shù)轉換器ADC模塊的設計思路及電路設計
發(fā)布時間:2008/11/25 0:00:00 訪問次數(shù):1264
pic16f877單片機的adc內部結構如圖1所示。40引腳封裝芯片與28引腳封裝芯片的區(qū)別主要在于模擬口的數(shù)量不同,28引腳封裝芯片沒有an5~an7模擬量輸入通道,其他各部分的功能和組成關系相同。pic16f877單片機的adc內部結構圖如圖2所示。
圖1 主程序及中斷程序流程
圖2 pic16f877單片機的adc內部結構圖
pic16f877單片機內部嵌入的adc模塊具有10位數(shù)字量精度,共有8個模擬通道,與ado模塊有關的寄存器共有11個,其專用的4個寄存器分別為:adccon0、adccon1、adresh及adresl。
源阻抗(rs)和內部采樣開關(rss)阻抗直接影響所要求的充電電容chold的時間,采樣開關(rss)阻抗在單片機電壓上的變化,源阻抗在模擬輸入時影響偏移電壓(由于引腳漏電流)。所推薦的最大模擬源阻抗是101kω,在模塊輸入通道被選擇后轉換可以開始之前采集必須通過。
a/d轉換器時間每位定義為tad,a/d轉換器每10位轉換要求12tad,a/d轉換器時鐘源是可以通過軟件設定的,tad的4種可能選擇是:
· 2tosc;
· 8tosc;
· 32tosc;
· 內部rc振蕩器。
對于正確的a/d轉換,a/d轉換時鐘(tad)必須被選擇以保證1.6μs的最小tad時間。
adcon1、trisa和trise寄存器控制a/d端口引腳的操作。這個作為模擬輸入的端口引腳必須有它們的相應位tris置1(輸入)。如果tris位清0(輸出),數(shù)字輸出電平(voh或vol)將被轉換。a/d操作是獨立于(chs(2∶0))位和tris位的狀態(tài)之外的。
在睡眠期間a/d模塊可以工作,這種a/d時鐘要求對rc置1,(arcs(1:0)=11), 當選擇rc時鐘源時,a/d模塊在開始轉換之前等待一個指令周期。這種允許執(zhí)行的睡眠指令,可以消除在轉換中產(chǎn)生的所有數(shù)字開關噪聲。
當轉換完成時,go/done位將被清0,和轉換結果一塊裝入adres寄存器,如果a/d中斷使能,單片機將從睡眠中喚醒,如果a/d中斷不使能,盡管adon位仍保持置1,a/d模塊仍將被關閉。
如果a/d時鐘源是另一種時針選擇(不是rc),盡管adin位仍保持1,睡眠指令將導致目前的轉換中斷和a/d模塊被關閉。關閉a/d,把a/d模塊放到它的最低電流消耗狀態(tài)。
單片機復位強制所有寄存器復位到它們的復位狀態(tài),強制關閉a/d轉換模塊和進行的轉換。在adresh、adresl寄存器的值在上電復位時不變,adresh、adresl寄存器在上電復位之后將包含未知數(shù)據(jù)。
1. 設計思路
將ra2引腳作為模擬電壓輸入,模擬量為連接在ra2引腳上的微調電阻提供,借此可以提供一個連續(xù)變化的模擬電壓。端口d連接8個led作為數(shù)據(jù)輸出顯示,并設置一個報警值。
本程序中將報警值設為2.5v,經(jīng)a/d轉換后對應十六進制數(shù)值為0x200h,當a/d轉換的值未達到警戒值(0x200h)時,點亮8個發(fā)光二極管的低4個,表明系統(tǒng)運行正常;當a/d轉換的值達到或超過警戒值(0x200h)時,發(fā)出報警信號,點亮與d口相連的led顯示報警信息。
2. 電路設計
單片機與led的接口原理如圖3所示。
圖3 pic16f877與led的接線
歡迎轉載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)
pic16f877單片機的adc內部結構如圖1所示。40引腳封裝芯片與28引腳封裝芯片的區(qū)別主要在于模擬口的數(shù)量不同,28引腳封裝芯片沒有an5~an7模擬量輸入通道,其他各部分的功能和組成關系相同。pic16f877單片機的adc內部結構圖如圖2所示。
圖1 主程序及中斷程序流程
圖2 pic16f877單片機的adc內部結構圖
pic16f877單片機內部嵌入的adc模塊具有10位數(shù)字量精度,共有8個模擬通道,與ado模塊有關的寄存器共有11個,其專用的4個寄存器分別為:adccon0、adccon1、adresh及adresl。
源阻抗(rs)和內部采樣開關(rss)阻抗直接影響所要求的充電電容chold的時間,采樣開關(rss)阻抗在單片機電壓上的變化,源阻抗在模擬輸入時影響偏移電壓(由于引腳漏電流)。所推薦的最大模擬源阻抗是101kω,在模塊輸入通道被選擇后轉換可以開始之前采集必須通過。
a/d轉換器時間每位定義為tad,a/d轉換器每10位轉換要求12tad,a/d轉換器時鐘源是可以通過軟件設定的,tad的4種可能選擇是:
· 2tosc;
· 8tosc;
· 32tosc;
· 內部rc振蕩器。
對于正確的a/d轉換,a/d轉換時鐘(tad)必須被選擇以保證1.6μs的最小tad時間。
adcon1、trisa和trise寄存器控制a/d端口引腳的操作。這個作為模擬輸入的端口引腳必須有它們的相應位tris置1(輸入)。如果tris位清0(輸出),數(shù)字輸出電平(voh或vol)將被轉換。a/d操作是獨立于(chs(2∶0))位和tris位的狀態(tài)之外的。
在睡眠期間a/d模塊可以工作,這種a/d時鐘要求對rc置1,(arcs(1:0)=11), 當選擇rc時鐘源時,a/d模塊在開始轉換之前等待一個指令周期。這種允許執(zhí)行的睡眠指令,可以消除在轉換中產(chǎn)生的所有數(shù)字開關噪聲。
當轉換完成時,go/done位將被清0,和轉換結果一塊裝入adres寄存器,如果a/d中斷使能,單片機將從睡眠中喚醒,如果a/d中斷不使能,盡管adon位仍保持置1,a/d模塊仍將被關閉。
如果a/d時鐘源是另一種時針選擇(不是rc),盡管adin位仍保持1,睡眠指令將導致目前的轉換中斷和a/d模塊被關閉。關閉a/d,把a/d模塊放到它的最低電流消耗狀態(tài)。
單片機復位強制所有寄存器復位到它們的復位狀態(tài),強制關閉a/d轉換模塊和進行的轉換。在adresh、adresl寄存器的值在上電復位時不變,adresh、adresl寄存器在上電復位之后將包含未知數(shù)據(jù)。
1. 設計思路
將ra2引腳作為模擬電壓輸入,模擬量為連接在ra2引腳上的微調電阻提供,借此可以提供一個連續(xù)變化的模擬電壓。端口d連接8個led作為數(shù)據(jù)輸出顯示,并設置一個報警值。
本程序中將報警值設為2.5v,經(jīng)a/d轉換后對應十六進制數(shù)值為0x200h,當a/d轉換的值未達到警戒值(0x200h)時,點亮8個發(fā)光二極管的低4個,表明系統(tǒng)運行正常;當a/d轉換的值達到或超過警戒值(0x200h)時,發(fā)出報警信號,點亮與d口相連的led顯示報警信息。
2. 電路設計
單片機與led的接口原理如圖3所示。
圖3 pic16f877與led的接線
歡迎轉載,信息來源維庫電子市場網(wǎng)(www.dzsc.com)