新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 霍爾傳感器應用于采集與顯示信號系統中的設計方案

        霍爾傳感器應用于采集與顯示信號系統中的設計方案

        作者: 時間:2016-12-01 來源:網絡 收藏

          經過與標準量比較處理后的模擬量轉化成以二進制數值表示的離散信號的轉換器,簡稱A/D轉換器。轉換器的輸入量一般為直流電流或電壓,輸出量為二進制數碼的數字量。該設計中使用ADC0809轉換器。過程如下:首先它可以將其看成由一個8位A/D轉換器和一個8通道模擬多路開關組合而成,INO~IN7分別對應8路模擬量輸人,由引腳ADDA,ADDB和ADDC決定具體是哪一條模擬量來進行轉化。在引腳START和ALE上加1個正脈沖后,通道選擇碼立即鎖定并同時ADC轉換啟動。轉換開始后OE引腳加1個正脈沖,將輸出緩沖器的三態門打開,使轉換后的數字量能夠傳送至數據總線。

          2.3 數據采集和顯示

          放大處理后的電壓信號,雖然在幅值上達到了可以處理的范圍,但模/數電壓轉換的范圍是0~5 V,而傳感器輸出的電壓存在負值,為了使電壓匹配,信號電壓在接人模/數轉換器前可以加一級加法電路,將電壓信號全部轉換為正值。放大電路、濾波電路和加法電路均使用LM324實現,硬件電路如圖4所示。

          

          數據顯示電路分為數碼管顯示電路和PC機顯示 部分。數碼管顯示用于單片機上,單片機分別通過段顯 碼和位顯碼對數碼管上顯示的數據進行控制。段顯碼 控制顯示的數據內容,位顯碼則控制數碼管亮或滅。段 顯碼是單片機通過可編程通用并行接口8155逐位傳到 8位移位寄存器74LSl64中去,再由它將串行傳輸數據 變為并行數據傳給數碼管顯示。而位顯碼是單片機 通過8155一次性送到數據鎖存器74L$244中鎖存,再 去驅動數碼管并控制其亮或滅。

          2.4 串行通信

          該設計中采用異步串行通信的方式。而AT89C51 單片機的串行口,當工作于方式1,2和3時,UART(通用異步接收和發送)可以實現單片機系統與PC機之間的串行通信。PC機串行通信主要是通過串行口芯片8251實現的。8251有10個寄存器,端口地址從3F8H~3FEH(c0M1),可以通過對8251編程來指定通信協議即通信的波特率、數據位數、奇偶類型和停止位長度。另外由于Pc機串口的電平是RS 232電平,不與單片機串口的TTL電平兼容,因此需要在它們之間進行電平轉換。傳統的方法是使用MCl488將TTL電平轉換成RS 232電平,用MCl488實現反向轉換,由于MCl488需要±12 V電壓,使用中非常不便,故該設計采用MAXIM公司的產品片MAX232來實現,由單+5 V的電壓供電,既可實現TTL到RS 232的電平轉換,也可實現RS 232到TTL電平的轉換,使用十分方便,具體的線路如圖5所示。

          

          3 軟件實現部分

          3.1 單片機部分

          AT89C51系列單片機的串行口可工作于4種不同的方式。在該程序中,單片機串行口工作設定為方式1,即數據經TxD端發送,RxD端接收,波特率2 400 b/s,10位構成一幀,l位起始位,8位數據位,1位停止位,初值0F3H,SMOD=1。

          由于單片機多應用于實時性較強的控制場合,為了盡量少占用CPU的時間,充分發揮CPU的功能。該系統在單片機程序設計中采用中斷方式與PC機進行通信。主程序只進行串行通信、數碼管實時顯示、模/數轉換結果的初始化和循環等待串行中斷工作,當接收到PC機發來的信號時,就轉人中斷服務程序,進行A/D轉換,并向Pc機發送數據。中斷服務子程序流程圖如圖6所示。

          

          以下僅給出串行通信初始化和中斷服務子程序代碼:

          串行通信初始化程序為:

          

          3.2 PC機部分

          在Windows中,串行口的硬件設備通過通信驅動程序comm.drv與windows進行連接,通過使用標準的windows API函數發送和接收數據。而MSComm控件通信功能的實現,是調用windows API函數,并通過設置其屬性和事件,來定義windows通信驅動程序的API函數接口,為應用程序提供了通過串行接口收發數據的簡便方法。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 屏边| 临潭县| 措美县| 滕州市| 额尔古纳市| 文昌市| 泰州市| 韩城市| 安溪县| 墨竹工卡县| 黑河市| 团风县| 商都县| 旌德县| 北碚区| 邯郸市| 潜山县| 祥云县| 嘉义县| 和田县| 拜城县| 黄龙县| 华池县| 静宁县| 庆阳市| 武汉市| 北票市| 刚察县| 吉首市| 武乡县| 呼图壁县| 兴文县| 乌拉特中旗| 永胜县| 固始县| 商洛市| 阿拉善左旗| 洱源县| 东乌| 中阳县| 宁津县|