霍爾傳感器信號(hào)采集與顯示系統(tǒng)設(shè)計(jì)
2.2 模/數(shù)轉(zhuǎn)換原理
該系統(tǒng)中的單片機(jī)是使用Atmel公司的AT89C51微控制器,與MCS一51單片機(jī)產(chǎn)品兼容,具有4 KB閃爍可編程可擦除只讀存儲(chǔ)器、1 000次擦寫周期、32個(gè)可編程I/O口線、2個(gè)16位定時(shí)器/計(jì)數(shù)器、5個(gè)中斷源、UART串行通道等特點(diǎn)。在設(shè)計(jì)中主要用它來控制傳感器信號(hào)發(fā)生裝置輸出的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),進(jìn)行數(shù)據(jù)采集和顯示以及串行通信。
經(jīng)過與標(biāo)準(zhǔn)量比較處理后的模擬量轉(zhuǎn)化成以二進(jìn)制數(shù)值表示的離散信號(hào)的轉(zhuǎn)換器,簡(jiǎn)稱A/D轉(zhuǎn)換器.轉(zhuǎn)換器的輸入量一般為直流電流或電壓,輸出量為二進(jìn)制數(shù)碼的數(shù)字量。該設(shè)計(jì)中使用ADC0809轉(zhuǎn)換器。過程如下:首先它可以將其看成由一個(gè)8位A/D轉(zhuǎn)換器和一個(gè)8通道模擬多路開關(guān)組合而成,INO~I(xiàn)N7分別對(duì)應(yīng)8路模擬量輸人,由引腳ADDA,ADDB和ADDC決定具體是哪一條模擬量來進(jìn)行轉(zhuǎn)化。在引腳START和ALE上加1個(gè)正脈沖后,通道選擇碼立即鎖定并同時(shí)ADC轉(zhuǎn)換啟動(dòng)。轉(zhuǎn)換開始后OE引腳加1個(gè)正脈沖,將輸出緩沖器的三態(tài)門打開,使轉(zhuǎn)換后的數(shù)字量能夠傳送至數(shù)據(jù)總線。
2.3 數(shù)據(jù)采集和顯示
放大處理后的電壓信號(hào),雖然在幅值上達(dá)到了可以處理的范圍,但模/數(shù)電壓轉(zhuǎn)換的范圍是0~5 V,而傳感器輸出的電壓存在負(fù)值,為了使電壓匹配,信號(hào)電壓在接人模/數(shù)轉(zhuǎn)換器前可以加一級(jí)加法電路,將電壓信號(hào)全部轉(zhuǎn)換為正值。放大電路、濾波電路和加法電路均使用LM324實(shí)現(xiàn),硬件電路如圖4所示。
數(shù)據(jù)顯示電路分為數(shù)碼管顯示電路和PC機(jī)顯示 部分。數(shù)碼管顯示用于單片機(jī)上,單片機(jī)分別通過段顯 碼和位顯碼對(duì)數(shù)碼管上顯示的數(shù)據(jù)進(jìn)行控制。段顯碼 控制顯示的數(shù)據(jù)內(nèi)容,位顯碼則控制數(shù)碼管亮或滅。段 顯碼是單片機(jī)通過可編程通用并行接口8155逐位傳到 8位移位寄存器74LSl64中去,再由它將串行傳輸數(shù)據(jù) 變?yōu)椴⑿袛?shù)據(jù)傳給數(shù)碼管顯示。而位顯碼是單片機(jī) 通過8155一次性送到數(shù)據(jù)鎖存器74L$244中鎖存,再 去驅(qū)動(dòng)數(shù)碼管并控制其亮或滅。
2.4 串行通信
該設(shè)計(jì)中采用異步串行通信的方式。而AT89C51 單片機(jī)的串行口,當(dāng)工作于方式1,2和3時(shí),UART(通用異步接收和發(fā)送)可以實(shí)現(xiàn)單片機(jī)系統(tǒng)與PC機(jī)之間的串行通信。PC機(jī)串行通信主要是通過串行口芯片8251實(shí)現(xiàn)的。8251有10個(gè)寄存器,端口地址從3F8H~3FEH(c0M1),可以通過對(duì)8251編程來指定通信協(xié)議即通信的波特率、數(shù)據(jù)位數(shù)、奇偶類型和停止位長(zhǎng)度。另外由于Pc機(jī)串口的電平是RS 232電平,不與單片機(jī)串口的TTL電平兼容,因此需要在它們之間進(jìn)行電平轉(zhuǎn)換。傳統(tǒng)的方法是使用MCl488將TTL電平轉(zhuǎn)換成RS 232電平,用MCl488實(shí)現(xiàn)反向轉(zhuǎn)換,由于MCl488需要±12 V電壓,使用中非常不便,故該設(shè)計(jì)采用MAXIM公司的產(chǎn)品片MAX232來實(shí)現(xiàn),由單+5 V的電壓供電,既可實(shí)現(xiàn)TTL到RS 232的電平轉(zhuǎn)換,也可實(shí)現(xiàn)RS 232到TTL電平的轉(zhuǎn)換,使用十分方便,具體的線路如圖5所示。
3 軟件實(shí)現(xiàn)部分
3.1 單片機(jī)部分
AT89C51系列單片機(jī)的串行口可工作于4種不同的方式。在該程序中,單片機(jī)串行口工作設(shè)定為方式1,即數(shù)據(jù)經(jīng)TxD端發(fā)送,RxD端接收,波特率2 400 b/s,10位構(gòu)成一幀,l位起始位,8位數(shù)據(jù)位,1位停止位,初值0F3H,SMOD=1。
由于單片機(jī)多應(yīng)用于實(shí)時(shí)性較強(qiáng)的控制場(chǎng)合,為了盡量少占用CPU的時(shí)間,充分發(fā)揮CPU的功能。該系統(tǒng)在單片機(jī)程序設(shè)計(jì)中采用中斷方式與PC機(jī)進(jìn)行通信。主程序只進(jìn)行串行通信、數(shù)碼管實(shí)時(shí)顯示、模/數(shù)轉(zhuǎn)換結(jié)果的初始化和循環(huán)等待串行中斷工作,當(dāng)接收到PC機(jī)發(fā)來的信號(hào)時(shí),就轉(zhuǎn)人中斷服務(wù)程序,進(jìn)行A/D轉(zhuǎn)換,并向Pc機(jī)發(fā)送數(shù)據(jù)。中斷服務(wù)子程序流程圖如圖6所示。
評(píng)論