0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機和編程軟件VB實現(xiàn)智能紅外邏輯分析儀的設計

電子設計 ? 來源:電子設計工程 ? 作者:牛余朋,成曙,蔡 ? 2020-06-02 07:51 ? 次閱讀

引言

紅外通信技術是一種點對點的數(shù)據(jù)傳輸協(xié)議,是傳統(tǒng)設備之間連接線纜的替代技術,是目前國際上普通采用的一種近程無線傳輸技術,常用于智能小區(qū)控制系統(tǒng)和電話教學交互式遠程控制系統(tǒng)中,但是目前的家電(如空調(diào)、錄像機、VCD機等)有各種不同的品牌和型號,其紅外遙控編碼及發(fā)送格式不盡相同。為了能夠用一臺通用控制器對多種不同型號的家電進行控制,本文利用功能強大的單片機編程軟件VB設計了一種基于計算機串口的通用型智能紅外邏輯分析儀,它可對各種電器的紅外遙控器所發(fā)射的控制信號進行識別、存貯和再現(xiàn)。還可通過紅外硬件接口識別出紅外信號并送入單片機處理,然后利用VB開發(fā)的虛擬軟件在電腦屏幕上實時顯示采集到的紅外信號波形,便于設計人員對各種調(diào)制方式的紅外信號進行“可視化”的分析與研究。

1、硬件設計

1.1 串行通信的基本原理

串行端口本質(zhì)上是計算機的CPU和外部串行設備間的編碼轉(zhuǎn)換器。當數(shù)據(jù)從CPU經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)被轉(zhuǎn)換為串行的俠。而在接收數(shù)據(jù)時,串行的位則被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。在Windows環(huán)境下,串行端口是Windows系統(tǒng)資源的一部分。如果要使用串口進行通信,應用程序必須在使用前向操作系統(tǒng)提出使用串口資源的申請(創(chuàng)建并打開串口),然后進行相應的串口參數(shù)配置,雙方的串口才可進行通信,通信完畢后,還必須釋放系統(tǒng)資源(關閉串口)。串口通信程序的流程如圖1所示。

基于單片機和編程軟件VB實現(xiàn)智能紅外邏輯分析儀的設計

1.2 89C51的串行口

89C51內(nèi)有一個全雙工的串行口,它有4種工作方式:方式0,串行接口為移位寄存器I/O方式;方式1,串行接口被控制為8位的異步通信接口,實際上,此時傳送一幀住處應為10位,其中1位為起始位,8位為數(shù)據(jù)位,1位為停止位,在該方式中,波特率可變;方式2和方式3被定義為9位的異步通信接口,此時傳送一幀信息為11位,其中1位起始位,8位數(shù)據(jù)位,1位可編程數(shù)據(jù)位,1位停止位,工作方式的選擇由芯片內(nèi)的特殊功能寄存器SCON(串行口控制寄存器)來設備。

1.3 接口電路

為了能使單片機與PC進行通信,必須使其遵循相同的通信協(xié)議。由于89C51的串行口輸入/輸出為TTL邏輯電平,高電平為3.8V左右,低電平為0.3V左右,因而這種以TTL電平傳送數(shù)據(jù)的方式的抗干擾性較差。而計算機內(nèi)部的RS-232C串行口用12V和-12V電平方式,這種方式中,信號0和信號1的電平差別增大,從而增強了抗干擾性。但是,為了解決這種電平不一致的矛盾,必須采用一個RS-232C電平轉(zhuǎn)換器,文中采用的MAX232自身帶有電源電壓變換器,可把+5V電壓變換成RS-232輸出電平所需的10V電壓,因而采用這種方式進行串行通信具有較好的性能和低廉的價格。如果通信距離較遠,還可以通過增加MAX485轉(zhuǎn)換器來連接MAX232以滿足要求。其硬件接口電路原理如圖2所示。

基于單片機和編程軟件VB實現(xiàn)智能紅外邏輯分析儀的設計

2、軟件設計

2.1 紅外遙控編碼及傳送格式

紅外通信的基本原理是在發(fā)送端將基帶二進制信號調(diào)制為一系列的脈沖串信號,然后通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM)和通過脈沖串之間的時間間隔來實現(xiàn)信號調(diào)制的脈沖調(diào)制(PPM)兩種方式。本系統(tǒng)采用的是脈時調(diào)制方法。在調(diào)制脈沖寬度編碼方式下,“0”是由時間間隔為T的一串38.5kHz載波脈沖后加時間間隔壁為T0的無載波脈沖的空閑狀態(tài)來表示;而“1”是由時間間隔壁為T的一串38.5kHz載波脈沖后加時間間隔為T1的無載波脈沖的空閑狀態(tài)來表示,其中T1大于T0。

為了提高抗干擾能力和通訊可靠性,多數(shù)紅外遙控發(fā)射器在發(fā)送二進制編碼前要插入各種引導碼,以便接收器識別。為了區(qū)分不同類型的遙控器,還需要發(fā)送地址碼和校驗碼,另外不同遙控器所發(fā)送的碼長也不相同。一般的傳送格式如圖3所示。

基于單片機和編程軟件VB實現(xiàn)智能紅外邏輯分析儀的設計

2.2 單片機的軟件編程

單片機(下位機)部分的編程主要是完成單片機和計算機之間的串行通訊。該軟件主要由串口初始化子函數(shù)、單片機內(nèi)部定時器T0中斷子函數(shù)、紅外信號發(fā)送子函數(shù)等3大模塊組成。其具體程序如下:

#include》at89x52.h)

#define byte unsigned char

#define WAR_0 P1_1 //定義接收引腳

#define LED_RECEIVE P1_0 //定義指示燈引腳

//晶振 22.1184MHz

//波特率=((xtal/12/t1_over_rate)/32)*2^pcon

byte bdata buffer=0;

sbit way0=buffer^0;

byte i=0;

bit start=0;

void send char(unsigned char word)//串口發(fā)送子函數(shù)

{

TI=0;

SBUF=word;

While(TI==0);

TI=0;

}

void t0_service(viod) interrupt 1 using 1//T0中斷子函數(shù)

{

way0=WAY_0;

I++;

If(I=8)

{

TI=0;

SBUF=buffer;

I=0;

}

buffer=buffer1;

}

void main(void) //主函數(shù)

{

SCON=0x40; //設置串口模式

TMOD=0x22; //設置定時器模式

TH1=0xff; //定時器加載初值

TH1=0xff;

PCON=0x80; //57600bps *2 22.1184M

115200bps

TR1=1; //開定時器

TH0=0xdb; //定時器0加載初值

TL0=0xfd;

EA=1;

WAY_0=1;

ET0=1; //以上是串行初始化

While(1) //主循環(huán)

{

if(! WAY_0)

{

TR0=1; //開定時器T0中斷

LED_RECEIVE=0;//LED指示燈點亮

}

}

}

2.3 上位機軟件設計

上位機(計算機)軟件的作用是實時采集由計算機串口接收的信號(即單片機發(fā)送的信號),同時通過VB軟件編程來實現(xiàn)被采集紅外信號的實時顯示,以便于分析。

一般的IBM PC兼容型微機均提供有1至2個25針或9針的RS-232C標準串行口,簡稱COM1和COM2。在某些應用中,還可通過插裝通信卡來獲得額外的RS-232C標準串行口。利用這些串行口,微機便可以與其他數(shù)字設備(包括計算機)進行一般的數(shù)據(jù)通信。

利用Visual Basic提供的MSComm控件可以簡單便攜地通過應用程序?qū)崿F(xiàn)串行通信,也可以創(chuàng)建功能完備、具有事件驅(qū)動功能的高級通信工具。與DOS環(huán)境下用匯編C語言等編制的串行通信程序及Windows環(huán)境下用Visual C編制的串行通信程序相比,在使用Visual Basic的MSComm控件實現(xiàn)串行通信時,程序員只需關心MSComm控件對Windows通信驅(qū)動程序的API函數(shù)的接口即可,換句話說,只需要設置和監(jiān)視MSComm控件的屬性和事件即可。

利用VB實現(xiàn)串行通信主要有兩種方法:一是調(diào)用Windows API通信函數(shù);二是使用VB的通信控件(MSComm)。本文采用第二種方法,即利用通信控件再加一個定時器控件(Timer)來實現(xiàn)簡單地串行通信。

責任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6040

    文章

    44592

    瀏覽量

    636891
  • 控制器
    +關注

    關注

    112

    文章

    16416

    瀏覽量

    178762
  • 計算機
    +關注

    關注

    19

    文章

    7523

    瀏覽量

    88315
收藏 人收藏

    評論

    相關推薦

    巧用邏輯分析儀 助力單片機開發(fā)

    `單片機開發(fā)工程師和電子愛好者,每天都要和各種各樣的數(shù)字電路打交道。在制作調(diào)試電路時除了使用萬用表、示波器等工具,邏輯分析儀也是必不可少的。 邏輯
    發(fā)表于 03-22 13:35

    基于單片機的簡易邏輯分析儀資料

    基于單片機的簡易邏輯分析儀資料
    發(fā)表于 08-20 11:53

    如何做一個簡易邏輯分析儀邏輯分析儀

    本人最近想做一個簡易邏輯分析儀,是基于51單片機的,由于剛學單片機不久,對單片機學的不深!有沒有那為大神做過,給份資料!我先謝謝了!
    發(fā)表于 08-10 19:11

    邏輯分析儀

    有人會做基于單片機邏輯分析儀嗎???急!急!!急?。?!
    發(fā)表于 04-04 22:29

    請問邏輯分析儀學習單片機用處大嗎?

    用在學習單片機上,用處大嗎?現(xiàn)在只是學初級的8位,網(wǎng)上的邏輯分析儀有幾十塊的和幾百塊的,區(qū)別只是采樣頻率嗎?如果有用,幾十塊的用在8位機上應該行吧,
    發(fā)表于 08-25 10:34

    基于計算機串口的通用型智能紅外邏輯分析儀

    紅外邏輯分析儀,它可對各種電器的紅外遙控器所發(fā)射的控制信號進行識別、存貯和再現(xiàn)。還可通過紅外硬件接口識別出
    發(fā)表于 12-30 07:28

    基于MSP430單片機的近紅外水分分析儀設計

    基于MSP430 單片機設計了一種近紅外水分分析儀,采用了很好的模型建立方法,提高了測量的準確性和可靠性,同時由于MSP430 單片機片上外圍部件集成度高和低功耗的特性,使得系
    發(fā)表于 01-20 14:37 ?58次下載

    邏輯分析儀軟件zlglogic 4.92

    邏輯分析儀軟件zlglogic 4.92
    發(fā)表于 07-19 15:54 ?54次下載

    邏輯分析儀軟件zlglogic 4.92

    邏輯分析儀軟件zlglogic 4.92 安裝程序
    發(fā)表于 11-15 14:47 ?197次下載

    基于計算機串口的紅外虛擬邏輯分析儀

    基于計算機串口的紅外虛擬邏輯分析儀 采用用途廣泛的紅外線通信技術設計了一款基于計算機串口的紅外邏輯
    發(fā)表于 09-27 16:04 ?939次閱讀
    基于計算機串口的<b class='flag-5'>紅外</b>虛擬<b class='flag-5'>邏輯</b><b class='flag-5'>分析儀</b>

    片上邏輯分析儀的使用

    電子專業(yè)單片機相關知識學習教材資料——片上邏輯分析儀的使用
    發(fā)表于 09-01 17:24 ?0次下載

    基于STM32單片機的CAN總線分析儀的設計

    基于STM32單片機的CAN總線分析儀的設計
    發(fā)表于 01-24 16:54 ?41次下載

    kingst虛擬邏輯分析儀使用詳解

    測信號通過比較器進行判定,高于參考電壓者為邏輯1,低于參考電壓者為邏輯0,在1與0之間形成數(shù)字波形。在針對單片機、ARM、FPGA、DSP等數(shù)字系統(tǒng)的測量測試時,相比于示波器,邏輯
    發(fā)表于 11-17 15:54 ?52次下載

    基于單片機的簡易邏輯分析儀設計

    文末下載完整資料1.1 系統(tǒng)概述? ?因在本節(jié)中,我們將對簡易邏輯分析儀的應用進行分析。給出它的特點,能實現(xiàn)的功能以及系統(tǒng)的簡單操作1.1.1 系統(tǒng)的特點? ?
    發(fā)表于 11-24 15:36 ?21次下載
    基于<b class='flag-5'>單片機</b>的簡易<b class='flag-5'>邏輯</b><b class='flag-5'>分析儀</b>設計

    邏輯分析儀如何使用 邏輯分析儀使用教程

    邏輯分析儀如何使用 邏輯分析儀使用教程? 邏輯分析儀是一種用來監(jiān)測和
    的頭像 發(fā)表于 09-19 16:03 ?3000次閱讀