王子卿
摘 要科學(xué)探測呈現(xiàn)出向深度智能化和三維方向發(fā)展的趨勢,智能傾角測量系統(tǒng)成為發(fā)展的關(guān)鍵。本文采用模塊化設(shè)計思想,以HMC1022傳感器、CS5550模數(shù)轉(zhuǎn)換器、AT89S52單片機(jī)以及顯示模塊等為基礎(chǔ),設(shè)計實現(xiàn)了智能傾角測量系統(tǒng),并基于uVision開發(fā)環(huán)境,采用C51語言編程實現(xiàn)了智能傾角測量系統(tǒng)的單片機(jī)軟件程序設(shè)計。
【關(guān)鍵詞】C51語言 智能傾角 電子羅盤 科學(xué)探測
隨著社會經(jīng)濟(jì)的高速發(fā)展,數(shù)字式電子羅盤在現(xiàn)代科學(xué)探測,以及工、農(nóng)業(yè)生產(chǎn)和日常生活中應(yīng)用越來越廣泛,并呈現(xiàn)出向深度智能化和三維方向發(fā)展的趨勢。這就需要大量高精度的方位及傾角的測量及處理,而要保證方向測量的高精度,需研制高精度電子羅盤。同時,隨著電子羅盤應(yīng)用的廣泛性,其系統(tǒng)本身的要求體現(xiàn)在抗干擾性好、設(shè)計靈活、方便、成本低,適合于比較惡劣的環(huán)境等方面。本文給出了智能傾角測量系統(tǒng)的設(shè)計方案,并給出了C51語言的實現(xiàn)方法。
1 智能傾角測量系統(tǒng)設(shè)計
本文智能傾角測量系統(tǒng)采用模塊化設(shè)計思想,為確保傾角數(shù)據(jù)采集的穩(wěn)定性和準(zhǔn)確性,采用HMC1022傳感器集成芯片,并通過模數(shù)轉(zhuǎn)換后,由單片機(jī)進(jìn)行控制和分析,實現(xiàn)傾角數(shù)據(jù)采集,傾角數(shù)據(jù)數(shù)字化的顯示等功能。整個數(shù)據(jù)采集模塊采用集成了測量傾角傳感器的HMC1022芯片,它是霍尼維爾公司的新產(chǎn)品之一,是一款高精度低成本型的磁通傳感器。模數(shù)轉(zhuǎn)換采用高精度低成本低功耗的CS5550芯片,它是一個包含兩個Δ-Σ模數(shù)轉(zhuǎn)換器(ADC)和一個串行接口的高度集成的Δ-Σ雙通道低成本模數(shù)轉(zhuǎn)換器。CS5550具有方便的片上AC/DC 偏移和增益校準(zhǔn)功能,包含一個可與控制器雙向通訊的串行接口、一個可用于增益補(bǔ)償?shù)钠蠝囟葌鞲衅?。而控制處理的單片機(jī)采用的是AT89S52單片機(jī),是一種低功耗、高性價比的8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,具有成本低、穩(wěn)定性好的優(yōu)點。
整個系統(tǒng)的硬件部分由HMC1022傳感器、CS5550模數(shù)轉(zhuǎn)換器、AT89S52單片機(jī)以及顯示模塊構(gòu)成。系統(tǒng)整體結(jié)構(gòu)圖如圖1所示。
HMC1022處于工作狀態(tài)之下的時候,當(dāng)其檢測到外部有傾角信號的時候,便進(jìn)行數(shù)據(jù)采集工作,并存儲在寄存器之中。HMC1022采集的信號是模擬信號,須經(jīng)過模數(shù)轉(zhuǎn)換后才能進(jìn)入單片機(jī)進(jìn)行處理及數(shù)字化顯示,CS5550是一款高精度低成本的模數(shù)轉(zhuǎn)換芯片,配合CS5550的軟件編程,對HMC1022所采集的模擬信號進(jìn)行模數(shù)轉(zhuǎn)換后,模擬信號變成了數(shù)字信號。數(shù)字信號送入AT89S52單片機(jī),利用軟件編程進(jìn)行分析處理,讓這些數(shù)字信號通過串口連接通信至計算機(jī),可以在計算機(jī)或是液晶顯示屏上把HMC1022所測得的傾角信號以數(shù)字化的形式顯示出來,給科學(xué)探測提供準(zhǔn)確有效的數(shù)據(jù)。
2 C51語言編程實現(xiàn)
本文給出了主程序方案,進(jìn)一步使用軟件編程C51語言在uVision編輯器中實現(xiàn)了主程序設(shè)計。
2.1 主程序方案
主程序先初始化各IO端口及各分立器件,如AT89S52單片機(jī)的管腳選用及定義,開外部中斷等。主程序主要調(diào)用了3個主要子程序,分別是HMC1022工作驅(qū)動程序,CS5550模數(shù)轉(zhuǎn)換程序、數(shù)據(jù)分析處理及顯示程序。
主程序流程如圖2所示。
2.2 主要程序設(shè)計
2.2.1 初始化定義程序
#include
#include
#include
#include
sbit AT P42=P1^0;//管腳端口位定義
sbit AT P41=P1^1;
sbit AT P40=P1^2;
sbit AT P43=P1^3;
sbit AT P44=P1^4;
sbit AT P1=P1^5;
sbit AT P2=P1^6;
sbit AT P5=P3^0;
sbit AT P7=P3^1;
#define clrclk AT P42=0
#define setclk AT P42=1
#define clrout AT P41=0
#define setout AT P41=1
#define setcs AT P40=1
#define clrcs AT P40=0
#define setled1 AT P44=1
#define clrled1 AT P44=0
#define setled2 AT P5=1
#define clrled2 AT P5=0
#define setAcgnd AT P7=1
#define clrAcgnd AT P7=0
#define uchar unsigned char
#define uint unsigned int
#define ulint unsigned long int
#define TR 1
unchar idata buf[16];
unchar pf;
uint min=11;
uint max=22;
uint dat1,dat2;
void cttx();
2.2.2 寫命令函數(shù)
void spiwrite_com(uchar Input) //寫命令函數(shù)
{
uchar i,j;
setcs;
clrclk;
shortdelay();
clrcs;
for (i=0;i<8;i++)
{
clrclk;
if (0x80 == (Input & 0x80)){setout;}
else clrout;
for(j=0;j<10;j++);
setclk;
for(j=0;j<8;j++);
Input = Input<<1 ;
}
clrclk;
for(j=0;j<5;j++);
setcs;
clrout;
clrcs;
}
2.2.3 CS5550轉(zhuǎn)換部分程序
void cs5550initial() //初始化
{
uchar i,data0=0;
spiwrite_com(0x80);
for(i=0;i<50;i++);
for(i=0;i<15;i++){spiwrite_com(0x0ff);}
spiwrite_com(0xfe);
spiwrite_com(0x80);
}
void cs5550adjust(void) //校準(zhǔn)函數(shù)
{ uchar i,j,k;
setAcgnd;
spiwrite_com(0x0dd); //AIN1,AIN2通道AC偏移校準(zhǔn)
spiwrite_dat(0xffffff);
spiwrite_com(0x0CD);
for(i=0;i<200;i++)
{for(k=0;k<200;k++)
{for(j=0;j<100;j++);}
}
spiwrite_dat(0xffffff);
spiwrite_com(0x0d9); //DC偏移校準(zhǔn)
for(i=0;i<200;i++)
{for(k=0;k<200;k++)
{for(j=0;j<50;j++);}
}
clrAcgnd;
}
void cs5550start(void)
{
spiwrite_com(0x40); //寫配置寄存器,增益10,下降沿有效采樣率1KHz;
spiwrite_dat(0x1074);
spiwrite_com(0x5e); //寫狀態(tài)寄存器
spiwrite_dat(0xffffff);
spiwrite_com(0x74);
spiwrite_dat(0x836019); //寫中斷屏蔽寄存器
spiwrite_com(0x4A); //寫轉(zhuǎn)換次數(shù)計數(shù)器,更新頻率100hz;
spiwrite_dat(0x10);
spiwrite_com(0xE8); //開啟轉(zhuǎn)換
3 結(jié)論
本文采用模塊化設(shè)計思想設(shè)計了智能傾角測量系統(tǒng),整個系統(tǒng)的硬件部分由HMC1022傳感器、CS5550模數(shù)轉(zhuǎn)換器、AT89S52單片機(jī)以及顯示模塊構(gòu)成。本文給出了主程序方案,進(jìn)一步使用軟件編程C51語言實現(xiàn)了包含HMC1022工作驅(qū)動程序,CS5550模數(shù)轉(zhuǎn)換程序、數(shù)據(jù)分析處理及顯示程序3個子程序的設(shè)計。本文為科學(xué)探測工程中對方位傾角數(shù)據(jù)采集模塊的實現(xiàn)提供了一種可以應(yīng)用的解決方案。
參考文獻(xiàn)
[1]Honeywell HMC1022 Data Book.2000.
[2]CirrusLogic,Inc.CS5550 Datasheet [EB/OL].2008.http://www.cirrus.com/en/pubs/proDatasheet/CS5550_F1.pdf.
[3]ATMEL公司.AT89S52芯片資料[S].http://www.atmel.com,2007.
[4]Keil uVision2入門教程(英文版)[DB/OL].2001.
作者單位
華北電力大學(xué)國際教育學(xué)院 北京市 102206