版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.8位A/D轉(zhuǎn)換器ADC0809 (1)技術(shù)指標(biāo): 工作方式:逐次逼近式 轉(zhuǎn)換時(shí)間:100s 線性誤差:+/-1/2LSB 封裝形式:28腳雙列直插式 (2)簡(jiǎn)要說明 CMOS工藝,逐次比較式ADC,內(nèi)含8通道多路開關(guān),鎖存邏輯控制器,具有三態(tài)輸出緩沖器,能于微機(jī)兼容,輸出電平與TTL或CMOS兼容。 (3)引腳說明 (4)功能框圖(5)電器指標(biāo) (a)電源電壓
2、160; 65V (b)除輸入端的任意端電壓 -0.3 VDD+0.3V (c)控制輸入端電壓 -0.3+15V (d)工作溫度 -4085 民品 -55125 軍品 (e)儲(chǔ)存溫度 -65150 以
3、上的技術(shù)指標(biāo),我們都是要關(guān)心的,在使用時(shí)一定要注意。(6)時(shí)序圖(7)0809接口框圖 每一個(gè)部分的電路是獨(dú)立的,完成AD轉(zhuǎn)換首先地址選擇,其次啟動(dòng),等待,最后是讀數(shù),在完成AD轉(zhuǎn)換時(shí)是相關(guān)的的,但接口電路的設(shè)計(jì)是獨(dú)立的。(8)地址鎖存的時(shí)序:(9)啟動(dòng)(10)等待(11)讀數(shù) 設(shè)計(jì)此電路有兩種方法:一種是利用I/O端口設(shè)計(jì),另一種利用總線設(shè)計(jì).例:利用I/O口設(shè)計(jì)。 在8088中不提供I/O口,利用74LS273和74LS245擴(kuò)I/O端口。ALE,A0,A1,A2,START,OE要求CPU系統(tǒng)電路提供輸出
4、端口,EOC,D0,D1-D7要求CPU系統(tǒng)電路提供輸入端口。所以需要1片74LS273和兩片74LS245. 譯碼電路,采用一對(duì)多設(shè)計(jì): A15 A14 A13 A12 A0 CS0 CS1 CS2 0
5、 0 X X X 0 1 1 0 1
6、 X X X 1 0 1 1 0 X
7、 X X 1 1 0 CS0的地址為:0000-3FFFh CS1的地址為:4000-7FFFh CS0的地址為:8000-BFFFh
8、;輸出接口電路的設(shè)計(jì): 輸入電路接口電路的設(shè)計(jì):對(duì)于8031的結(jié)構(gòu)是:當(dāng)前的主流CPU的結(jié)構(gòu): 目前芯片的設(shè)計(jì)都是基于I/O端口的方式: 軟件編程的方法: 1、需求分析 2、算法 3、框圖 4、編寫代碼 5、調(diào)試 需求分析:此程序采集8路將數(shù)據(jù)存放到某個(gè)數(shù)組中。 算法:簡(jiǎn)單略。&
9、#160; 框圖: 初始化:硬件和變量為固定狀態(tài),硬件ALE為低,SATRT為高,OE為低,通道地址為第一個(gè)通道,存儲(chǔ)數(shù)據(jù)的數(shù)組清零。選擇通道:?jiǎn)?dòng):等待:讀數(shù): 編寫代碼 利用C語言編寫,C語言為中級(jí)語言,它具有低級(jí)語言和高級(jí)語言的特性,在利用C語言時(shí),一種是加操作系統(tǒng),另外是不加操作系統(tǒng)(操作系統(tǒng)的功能是內(nèi)存管理,進(jìn)程管理,設(shè)備管理,文件管理)。在單片機(jī)系統(tǒng)中這些功能都由我們自己來做。 所以變量的理解是關(guān)鍵。 變量
10、的理解第一是作用域(全局變量和局部變量)。 變量的理解第二是生存期(靜態(tài)和動(dòng)態(tài)變量)。 變量的理解第三是存儲(chǔ)的位置(對(duì)于8088系統(tǒng)寄存器,數(shù)據(jù)區(qū),堆棧區(qū)。其它還有更多的區(qū)域),這些都必須在程序中說明。 變量的理解第四變量的特點(diǎn),字節(jié)數(shù),具有地址的屬性,描述方法,存放形式。不管是多少位機(jī)一個(gè)字節(jié)對(duì)應(yīng)一個(gè)地址。 例如:int iii; 16位機(jī),字節(jié)數(shù)16位,兩個(gè)字節(jié)。低位字節(jié)存放在低位地址,高位字節(jié)存放高位地
11、址,以低位字節(jié)的地址代表所有單元的地址。描述方法,最高位為符號(hào)位,正數(shù)是以原碼形式存放,負(fù)數(shù)是以補(bǔ)碼形式存放。 在使用的時(shí)候降維,對(duì)于iii是個(gè)地址,常量。降維的含義是取地址的數(shù)據(jù)。如果取不到數(shù)據(jù)的話,返回這個(gè)單元的地址。如果取數(shù)據(jù)的話,返回?cái)?shù)據(jù),再不能降維。 例如:int S234; s+1,*s+1,*s+1,*s+1的理解,*的意思也是降維。 s由兩個(gè)元素組成,s0由三個(gè)元素組成,s00由四
12、個(gè)元素組成,s000由兩個(gè)字節(jié)組成。 s首先降維,取第一個(gè)元素,但取不到具體數(shù)據(jù),返回地址,那么就是S000的第一個(gè)字節(jié)存放的地址。1的維數(shù)和S相同,所以是加24。 對(duì)于語句和函數(shù)是復(fù)雜的動(dòng)詞。它一定是對(duì)變量的操作。理解變量就是名詞! 每個(gè)程序都有自己的框架!對(duì)C程序,是由庫(kù)函數(shù)和主函數(shù)構(gòu)建的。 書寫規(guī)范也可以說是習(xí)慣:常量和變量用名詞,函數(shù)用動(dòng)詞和操作的變量,常量用大寫字母和變量用小寫字母。一般動(dòng)詞的第一個(gè)字母大寫!
13、 #inlude "stdio.h" unsigned char ad_buf; unsigned char ad_adr; unsigned char buf; unsigned char out_0809_data; main()
14、; int i; Init();
15、for(i=0;i<8;i+) Set_ad0809_adr();
16、; ad_adr=i; Start_ad0809();
17、0; Delay_ad0809(); Read_ad0809();
18、60; Write_data(); &
19、#160; 以上是不是在寫作文! 功能:初始化硬件和變量 輸入?yún)?shù):空 輸出參數(shù):略 Init() &
20、#160; int i; for(i=0;i<8;i+)
21、0; ad_bufi=0; ad_adr=0; out_0809_data=00100000B; /start=1;ALE=0;OE=0;
22、60; /加這個(gè)變量的目的是,對(duì)某一個(gè)端口操作時(shí)不破壞其它口 outportb(0x0,out_0809_data); &
23、#160; 說明: 功能:設(shè)置通道 輸入?yún)?shù):ad_adr 輸出參數(shù):空 Set_ad0809_adr()
24、60; out_0809_data=out_0809_data|ad_adr; outportb(0x0,out_0809_data); out_0809_data=out_0809_data| 0x10; /ALE=1;
25、0; outportb(0x0,out_0809_data); out_0809_data=out_0809_data& 0xef; /ALE=0; outportb(0x0,out_0809_da
26、ta); 功能:?jiǎn)?dòng) 輸入?yún)?shù):空 輸出參數(shù):空 Start_ad0809()
27、0; out_0809_data=out_0809_data&0xdf; /START=0; outportb(0x0,out_0809_data); out_0809_data=out_0809_data|0x20; /SATRT
28、=1; outportb(0x0,out_0809_data); 功能:等待 輸入?yún)?shù):空 輸出參數(shù):空
29、0; Delay_ad0809() unsigned char ccc; ccc=inportb(0x8000); c
30、cc=ccc&0x01; while(ccc=1)
31、 ccc=inportb(0x8000); ccc=ccc&0x01;
32、60; ccc=inportb(0x8000); ccc=ccc&0x01; while(ccc=0)
33、0; ccc=inportb(0x8000);
34、 ccc=ccc&0x01; 功能:讀數(shù) 輸入?yún)?shù):空
35、; 輸出參數(shù):buf Read_ad0809() out_0809_data=out_0809_data&0x40;
36、0; /OE=0; outportb(0x0,out_0809_data); buf=inportb(0x4000); out_0809_data=out_0809_
37、data|0xbf; /OE=1; outportb(0x0,out_0809_data); 功能:存數(shù) 輸入?yún)?shù):空
38、160; 輸出參數(shù):ad_buf Write_data() ad_bufad_adr=buf;
39、60; 程序結(jié)束! 目前CPU的速度越來越快,絕大多數(shù)都已經(jīng)是50MHz, 那么執(zhí)行一條語句的速度也是越越來快,那么時(shí)間延時(shí)就不能忽略不計(jì)。 例如ALE的要求: 對(duì)于語句和函數(shù)是復(fù)雜的動(dòng)詞。它一定是對(duì)變量的操作。理解變量就是名詞! 每個(gè)程序都有自己的框架!對(duì)C程序,是由庫(kù)函數(shù)和主函數(shù)構(gòu)建的。 書寫規(guī)范也可以說是習(xí)慣:常量和變量用名詞,
40、函數(shù)用動(dòng)詞和操作的變量,常量用大寫字母和變量用小寫字母。一般動(dòng)詞的第一個(gè)字母大寫! #inlude "stdio.h" unsigned char ad_buf; unsigned char ad_adr; unsigned char buf; unsigned char out_0809_
41、data; main() int i; Init();
42、160; for(i=0;i<8;i+)
43、 Set_ad0809_adr(); ad_adr=i;
44、60; Start_ad0809(); Delay_ad0809(); Read_a
45、d0809(); Write_data();
46、160; 以上是不是在寫作文! 功能:初始化硬件和變量 輸入?yún)?shù):空 輸出參數(shù):略 Init()
47、60; int i; for(i=0;i<8;i+)
48、; ad_bufi=0; ad_adr=0; out_0809_data=00100
49、000B; /start=1;ALE=0;OE=0; /加這個(gè)變量的目的是,對(duì)某一個(gè)端口操作時(shí)不破壞其它口 &
50、#160; outportb(0x0,out_0809_data); 說明: 功能:設(shè)置通道 輸入?yún)?shù):ad_adr 輸出參數(shù):空 Set_ad0809_adr()
51、; out_0809_data=out_0809_data|ad_adr; outportb(0x0,out_0809_data); out_
52、0809_data=out_0809_data| 0x10; /ALE=1; outportb(0x0,out_0809_data); out_0809_data=out_0809_data& 0xef; /ALE=0;
53、160; outportb(0x0,out_0809_data); 功能:?jiǎn)?dòng) 輸入?yún)?shù):空 輸出參數(shù):空 Start_ad0809()
54、 out_0809_data=out_0809_data&0xdf; /START=0; outportb(0x0,out_0809_data);
55、 out_0809_data=out_0809_data|0x20; /SATRT=1; outportb(0x0,out_0809_data); 功能:等待 輸入?yún)?shù):空
56、; 輸出參數(shù):空 Delay_ad0809() unsigned char ccc; ccc=inportb(0x8000);
57、60; ccc=ccc&0x01; while(ccc=1) &
58、#160; ccc=inportb(0x8000); ccc=ccc&0x01;
59、0; ccc=inportb(0x8000); ccc=ccc&0x01; while(ccc=0)
60、; ccc=inportb(0x8000); &
61、#160; ccc=ccc&0x01;
62、; 功能:讀數(shù) 輸入?yún)?shù):空 輸出參數(shù):buf Read_ad0809() &
63、#160; out_0809_data=out_0809_data&0x40; /OE=0; outportb(0x0,out_0809_data); buf=inportb(0x4000); &
64、#160; out_0809_data=out_0809_data|0xbf; /OE=1; outportb(0x0,out_0809_data); 功能:存數(shù)
65、60; 輸入?yún)?shù):空 輸出參數(shù):ad_buf Write_data() ad_bufad_adr=buf;
66、0; 程序結(jié)束! 目前CPU的速度越來越快,絕大多數(shù)都已經(jīng)是50MHz, 那么執(zhí)行一條語句的速度也是越越來快,那么時(shí)間延時(shí)就不能忽略不計(jì)。 例如ALE的要求:例利用總線設(shè)計(jì): 以上論述了AD0809的接口電路分成通道選擇,啟動(dòng),等待,讀數(shù)四個(gè)獨(dú)立部分。利用總線設(shè)計(jì)的方法和以前講述的方法是一樣的。即利
67、用計(jì)算機(jī)的讀時(shí)序或者寫時(shí)序和芯片的邏輯設(shè)計(jì)控制電路。對(duì)于AD0809的接口電路的接口電路設(shè)計(jì)是一樣的。因?yàn)樾枰膫€(gè)單元,就需要設(shè)計(jì)4個(gè)片選信號(hào),假設(shè)設(shè)計(jì)的片選信號(hào)為CS0(40h-43H),CS1(80h-83H),CS2(A0H-A3H),CS3(B0H-B3h)。 整體設(shè)計(jì)如下:1、通道選擇設(shè)計(jì) 通道選擇是將總線上的信息輸出到0809。那么利用的就是計(jì)算機(jī)的讀的時(shí)序。
68、 計(jì)算機(jī)的寫時(shí)序 0809的通道選擇的時(shí)序: 寫和片選是當(dāng)且僅當(dāng),低有效,所以片選信號(hào)和寫信號(hào)是或的關(guān)系。所以設(shè)計(jì)如下: 通道選擇程序: MOV DX,40H MOV AL,通道號(hào)
69、; OUT DX,AL unsigned char adr,data_x; adr=0x40; data_x=0; 第一個(gè)通道 outportb(adr,data_x); 地址線包容地址線,如果片選C
70、S0包括8個(gè)地址(A0,A1,A2不參與譯碼),A,B,C也可以接地址線。 通道選擇程序: MOV DX,40H 第一個(gè)通道 OUT AL,DX unsigned char adr,data_x; adr=0x40;
71、 outportb(adr,data_x); 數(shù)據(jù)線無用。 2、啟動(dòng)設(shè)計(jì) 只要一個(gè)下降沿即可3、等待 可以通過IO口方式查詢低高平. 在這個(gè)時(shí)候是等待,為了省口可以利用延時(shí)的方法。 如果程序可以做其它事情就可以接到中斷上。4、讀數(shù) 計(jì)算機(jī)的讀時(shí)序如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)新聞媒體行業(yè)發(fā)展全景調(diào)研與投資趨勢(shì)預(yù)測(cè)研究報(bào)告
- 農(nóng)村電商行業(yè)可行性分析報(bào)告
- 睡眠監(jiān)測(cè)設(shè)備行業(yè)發(fā)展預(yù)測(cè)分析
- 冷凍冷藏集裝箱租賃行業(yè)市場(chǎng)發(fā)展分析及兼并重組機(jī)會(huì)研究報(bào)告
- 健身營(yíng)養(yǎng)咨詢與指導(dǎo)行業(yè)市場(chǎng)變化分析及未來五年行業(yè)預(yù)測(cè)報(bào)告
- 在線心理健康咨詢行業(yè)深度分析與戰(zhàn)略規(guī)劃研究報(bào)告
- 在線虛擬實(shí)驗(yàn)室行業(yè)市場(chǎng)特點(diǎn)分析
- 綠色包裝材料供應(yīng)鏈行業(yè)營(yíng)銷策略方案
- 數(shù)字保險(xiǎn)科技行業(yè)三年發(fā)展洞察報(bào)告
- 社交網(wǎng)絡(luò)廣告行業(yè)影響因素分析
- 中醫(yī)治療絕經(jīng)前后諸癥
- 2023年廣東省河源市暖通專業(yè)綜合試題及答案
- 大風(fēng)天氣應(yīng)急預(yù)案
- 《中小學(xué)生創(chuàng)意寫作課件》
- 2024年浙江杭州嘉潤(rùn)臨平供銷社有限公司招聘筆試參考題庫(kù)含答案解析
- 預(yù)防性侵害法制講座
- 外宣活動(dòng)方案
- 中外歷史綱要下冊(cè)歷史講義第20課社會(huì)主義國(guó)家的發(fā)展與變化
- 提高感染性休克集束化治療完成率工作方案
- 現(xiàn)在完成時(shí)練習(xí)(短暫性動(dòng)詞與延續(xù)性動(dòng)詞的轉(zhuǎn)換)
- 商場(chǎng)保安值班巡邏制度
評(píng)論
0/150
提交評(píng)論