導航:首頁 > 裝置知識 > 紅外通信裝置軟體程序的設計

紅外通信裝置軟體程序的設計

發布時間:2022-01-03 19:35:10

Ⅰ 基於紅外技術的多點集中通信的設計

我來試試。
採用現在電視機用的940nm紅外發光管,接收也用這個頻率的接收管,這樣有發也有接了。接收管如果用TSOP1738之類的紅外一體接收器,就不帶38K解調了。這樣,一個發射管,一個TSOP1738就構成了一對發射/接收。主機和各個終端都要有這樣的一對才行。
接下來就是通訊協議了。類似於I2C,發送有地址,有指令(數據)。接收方都要有解析才行。是自己的地址,就應答,不是自己的地址,就不回答。
發射管的發射控制:用CPU定時器產生的38KH方波,與串口輸出數據信號「與」一下。程序里編一下也行。就不能用串口輸出數據了,就得用口線模擬了。
38K的調制,允許的通訊波特率不能太高,在2400bps左右。
從TSOP1738出來的TTL電平,直接接到RXD上即可。

再高速的通訊,就要用手機上或電腦上用的紅外發射接收專用「對管」了,可以支持更高的頻率。如HSL7001等器件,它可以實現115K的UART,但調制頻率不用我們管。只需連到串口就可以通訊。

Ⅱ 紅外報警系統設計圖及程序急用!

這個很簡單啊,不就一個單片機,一個紅外探頭,一個報警的玩意(例如蜂鳴器),單片機檢測到紅外信號,就讓蜂鳴器響不久OK了,不用單片機都可以,檢測到了,直接驅動讓蜂鳴器響,或者讓燈閃,那就自己搭建一個多諧振盪出來。

Ⅲ 簡易紅外線通信電路的設計製作

簡易紅外線通信電路的設計,首先將需要發射的語音信號調制到載波信號中,然後以紅外反射管發射出去。另一端用光敏電阻或二極體接收,並解調。可以使用555實現調制和解調。

Ⅳ 基於單片機的紅外通信裝置

紅外發射器:可以用單片機產生38K的載波,也可以用555振盪產生,也可以用紅外遙控器

紅外接收頭:HS0038,SM0038,T4148,都是一體化紅外接收頭電路十分簡單

設計過程:發射紅外信號,單片機接收,識別紅外信號,9ms低電平,4.5ms高電平,通信的話最好用遙控器,最好有遙控器的編碼方式,遙控器有兩種編碼方式,最常用的是NEC的

看個例子:

#include <reg51.h>

#define c(x) (x*120000/120000)

sbit Ir_Pin=P3^6;
sbit beep=P3^7;
//sbit RELAY=P2^0;
unsigned char code Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共陽極數碼顯示碼0-F.
unsigned char code Led_Sel[]={0x7f,0xbf,0xdf,0xef};

unsigned char Led_Buf[4]; //顯示緩沖區
char Led_Index; //位選

unsigned char Ir_Buf[4]; //用於保存解碼結果
void delay_50ms(unsigned int t)
{
unsigned int j;
for(;t>0;t--)
for(j=6245;j>0;j--)
{;}
}

//==============================================================
//數碼管掃描
timer0() interrupt 1 using 1
{
TL0=65536-1000;
TH0=(65536-1000)/256; //定時器0設定約1000us中斷一次,用於數碼管掃描
P0=0xff;
P1=Led_Sel[Led_Index]; //位選
P0=Led_Tab[Led_Buf[Led_Index]]; //段選

if(++Led_Index>3) Led_Index=0; //四個掃描完了,到第一個數碼管
}
//==============================================================
unsigned int Ir_Get_Low()
{
TL1=0;
TH1=0;
TR1=1;
while(!Ir_Pin && (TH1&0x80)==0);
TR1=0;
return TH1*256+TL1;
}
//=============================================================
unsigned int Ir_Get_High()
{
TL1=0;
TH1=0;
TR1=1;
while(Ir_Pin && (TH1&0x80)==0);
TR1=0;
return TH1*256+TL1;
}
//==============================================================
main()
{
unsigned int temp;
char i,j;
Led_Index=1;

TMOD=0x11;
TL0=65536-1000;
TH0=(65536-1000)/256; //定時器0設定約1000us中斷一次,用於數碼管掃描
EA=1;
ET0=1;
TR0=1;

Led_Buf[0]=0;
Led_Buf[1]=0;
Led_Buf[2]=0;
Led_Buf[3]=0; //顯示區設成0
do{
restart:
while(Ir_Pin);
temp=Ir_Get_Low();
if(temp<c(8500) || temp>c(9500)) continue;//引導脈沖低電平9000
temp=Ir_Get_High();
if(temp<c(4000) || temp>c(5000)) continue;//引導脈沖高電平4500
for(i=0;i<4;i++) //4個位元組
for(j=0;j<8;j++) //每個位元組8位
{
temp=Ir_Get_Low();
if(temp<c(200) || temp>c(800)) goto restart;
temp=Ir_Get_High();
if(temp<c(200) || temp>c(2000)) goto restart;
Ir_Buf[i]>>=1;
if(temp>c(1120)) Ir_Buf[i]|=0x80;
}
Led_Buf[0]=Ir_Buf[2]&0xf;
Led_Buf[1]=(Ir_Buf[2]/16)&0xf;
Led_Buf[2]=Ir_Buf[3]&0xf;
Led_Buf[3]=(Ir_Buf[3]/16)&0xf; //顯示結果
P1=Ir_Buf[2];
beep=0;
delay_50ms(2);
beep=1;
//RELAY=0;
//delay_50ms(50);
//RELAY=1;
}
while(1);

}

Ⅳ 任務:設計並製作一個紅外通信裝置(求大神指點,不能直接用用紅外發收模塊)

在2m的時候,紅外的傳輸效果可能已經比較差了。
首先你要搞清楚一點,紅外,只是一種通信專媒屬介,並非通信手段。
所以,你可以考慮採用紅外加串口的模式來進行通信。
在發送端,先採集語音信號,然後通過串口進行發送
傳統的串口發送需要有線連接,你現在只需把待發信號連接到紅外發射管上即可。
在接收端,將紅外接受管的信號作為輸出。
這樣一個最大的好處就是免去了通訊協議的設置。
2和3是屬於信號調理和測量部分了,選一個好一點的運放和AD采樣晶元即可滿足要求
如常見的AD7324+OP177A運放即可。

Ⅵ 基於單片機的紅外通信的設計與實現

買51開發板幹嘛?畢業設計不可能交個開發板吧,你要做的是先找齊資料,然後購買元器件來拼電路,然後再用單片機控制,當然如果沒有開發條件還是先湊齊吧

Ⅶ 設計一個簡易紅外通信系統

其實作為簡易系統,你的要求就是個設計大綱了。對於實現細節可根據實際情況豐富。內不敢說設計,提幾點容建議。
1.關於技術上的指標,必須參考國際標准做。我想你不可能自己研發個紅外的接收裝置吧。而且這種新硬體高與國際標准不同。現在的電子產品根據標准來做,其目的起碼有三:1.不用制定新標准,減少投資成本。2.保證兼容性。3.採用通用元器件,節省生產成本。既然是大家都使用通用標准,你去查查標准就行了,最起碼要選若干產品,篩選出符合要求的硬體。
2.對於程序上的設計,必須要得到廠家的介面說明,參考國際標准。這種屬於程序開發范疇,不在贅述。
3.你給出的圖不完全吧?試想什麼系統都是有終端組成呢!
4.對於你的提問我看無人給出確定的答案,因為這種系統具有非通用性。和你選擇的硬體,軟體有直接關系。在不確定硬體和軟體的基礎上無人能做出完整的設計。
希望我的回答給你些幫助。找標准請訪問IRDA官方網站,www.irda.org

Ⅷ 基於單片機的紅外遙控收發系統的設計與實現

低頻信號發生器的設計
摘 要:
直接數字合成(DDS)是一種重要的頻率合成技術,具有解析度高、頻率變換快優點,在雷達及通信等領域有著廣泛的應用前景。文中介紹了一種高性能DDS晶元AD9850的基本原理和工作特點,闡述了如何利用此晶元設計一種頻率在0—50
kHz內變化、相位正交的信號源,給出了AD9850晶元和MCS51單片機的硬體介面和軟體流程。

關鍵詞:直接數字頻率合成 信號源 AD9850晶元
概述:
隨著數字技術的飛速發展,高精度大動態范圍數字/模擬(D,A)轉換器的出現和廣泛應用,用數字控制方法從一個標准參考頻率源產生多個頻率信號的技術,即直接數字合成(DDS)異軍突起。其主要優點有:(1)頻率轉換快:DDS頻率轉換時間短,一般在納秒級;(2)解析度高:大多數DDS可提供的頻率解析度在1 Hz數量級,許多可達0.001 Hz;(3)頻率合成范圍寬;(4)相位雜訊低,信號純度高;(5)可控制相位:DDS可方便地控制輸出信號的相位,在頻率變換時也能保持相位聯系;(6)生成的正弦/餘弦信號正交特性好等。因此,利用DDS技術特別容易產生頻率快速轉換、解析度高、相位可控的信號,這在電子測量、雷達系統、
調頻通信、電子對抗等領域具有十分廣泛的應用前景。
1. 低頻信號發生器的組成
圖2.7為低頻信號發生器組成框圖。它主要包括主振器、電壓放大器、輸出衰減器、功率放大器、阻抗變換器和指示電壓表等。

(1)主振器
RC文氏橋式振盪器具有輸出波形失真小、振幅穩定、頻率調節方便和頻率可調范圍寬等特點,故被普遍應用於低頻信號發生器主振器中。主振器產生與低頻信號發生器頻率一致的低頻正弦信號。
文氏橋式振盪器每個波段的頻率覆蓋系數(即最高頻率與最低頻率之比)為10,因此,要覆蓋1Hz~1MHz的頻率范圍,至少需要五個波段。為了在不分波段的情況下得到很寬的頻率覆蓋范圍,有時採用差頻式低頻振盪器,圖2.8為其組成框圖。假設f2=3.4MHz,f1可調范圍為3.3997MHz~5.1MHz,則振盪器輸出差頻信號頻率范圍為300Hz (3.4MHz-3.3997MHz)~1.7MHz(5.1 MHz-3.4 MHz)。

差頻式振盪器的缺點是對兩個振盪器的頻率穩定性要求很高,兩個振盪器應遠離整流管、功率管等發熱元件,彼此分開,並良好屏蔽。
(2)電壓放大器
電壓放大器兼有緩沖與電壓放大的作用。緩沖是為了使後級電路不影響主振器的工作,一般採用射極跟隨器或運放組成的電壓跟隨器。放大是為了使信號發生器的輸出電壓達到預定技術指標。為了使主振輸出調節電位器的阻值變化不影響電壓放大倍數,要求電壓放大器的輸入阻抗較高。為了在調節輸出衰減器時,不影響電壓放大器,要求電壓放大器的輸出阻抗低,有一定的帶負載能力。為了適應信號發生器寬頻帶等的要求,電壓放大器應具有寬的頻帶、小的諧波失真和穩定的工作性能。
(3)輸出衰減器
輸出衰減器用於改變信號發生器的輸出電壓或功率,分為連續調節和步進調節。連續調節由電位器實現,步進調節由步進衰減器實現。圖2.9為常用輸出衰減器原理圖,圖中電位器RP為連續調節器(細調),電阻R1~R8與開關S構成步進衰減器,開關S為步進調節器(粗調)。調節RP或變換開關S的擋
(4) 功率放大器及阻抗變換器功率放大器用來對衰減器輸出的電壓信號進行功率放大,使信號發生器達到額定功率輸出。為了能實現與不同負載匹配,功率放大器之後與阻抗變換器相接,這樣可以得到失真小的波形和最大的功率輸出。
阻抗變換器只有在要求功率輸出時才使用,電壓輸出時只需衰減器。阻抗變換器即匹配輸出變壓器,輸出頻率為5Hz~5kHz時使用低頻匹配變壓器,以減少低頻損耗,輸出頻率為5kHz~1MHz時使用高頻匹配變壓器。輸出阻抗利用波段開關改變輸出變壓器次級圈數來改變。
2. 工作原理及結構
函數信號發生器產生信號的方法有三種:一種是由施密特電路產生方波,然後經變換得到三角波和正弦波形;第二種是先產生正弦波再得到方波和三角波;第三種是先產生三角波再變換為方波和正弦波。在此主要介紹第一種方法,即脈沖式函數信號發生器

3. 低頻信號發生器的主要工作特性
目前,低頻信號發生器的主要工作特性如下:
①頻率范圍 一般為20Hz~1MHz,且連續可調。
②頻率准確度 ±(1~3)%。
③頻率穩定度 一般為(0.1~0.4)%/小時。
④輸出電壓 0~10V連續可調。
⑤輸出功率 0.5~5W連續可調。
⑥非線性失真范圍 (0.1~1)%。
⑦輸出阻抗 50Ω、75Ω、150Ω、600Ω、5kΩ等幾種。
⑧輸出形式 平衡輸出與不平衡輸出。
4. 低頻信號發生器的使用
低頻信號發生器型號很多,但它們的使用方法基本類似
(1)了解面板結構
使用儀器之前,應結合面板文字元號及技術說明書對各開關旋鈕的功能及使用方法進行耐心細致的分析了解,切忌盲目猜測。信號發生器面板上有關部分通常按其功能分區布置,一般包括:波形選擇開關、輸出頻率調諧部分(包括波段、粗調、微調等)、幅度調節旋鈕(包括粗調、細調)、阻抗變換開關、指示電壓表及其量程選擇、電源開關及電源指示、輸出接線柱等。
5. AD9850 晶元介紹
AD9850是AD公司生產的最高時鍾為125 MHz、採用先進的CMOS技術的直接頻率合成器,主要由可編程DDS系統、高性能模數變換器(DAC)和高速比較器3部分構成,能實現全數字編程式控制制的頻率合成,並具有時鍾產生功能。AD9850的DDS系統包括相位累加器和正弦查找表,其中相位累加器由一個加法器和一個32位相位寄存器組成,相位寄存器的輸出與外部相位控制字(5位)相加後作為正弦查找表的地址。正弦查找表實際上是一個相位/幅度轉換表,它包含一個正弦波周期的數字幅度信息,每一個地址對應正弦波中0。一360。范圍的一個相位點。查找表把輸入地址的相位信息映射成正弦波幅度信號,然後驅動10bit的DA變換器,輸出2個互補的電流,其幅度可通過外接電阻進行調節。AD9850還包括—個高速比較器,將DA變換器的輸出經外部低通濾波器後接到此比較器上即可產生一個抖動很小的方波,這使得AD9850可以方便地用作時鍾發生器。AD9850包含40位頻率/相位控制字,可通過並行或串列方式送人器件:並行方式指連續輸入5次,每次同時輸入8位(1個位元組);串列方式則是在—個管腳完成40位串列數據流的輸入。這40位控制字中有32位用於頻率控制,5位用於相位控制,1位用於掉電(powerdown)控制,2位用於選擇工作方式。在並行輸入方式下,通過8位匯流排D0一D7將外部控制字輸入到寄存器,在W—CLK(字輸入時鍾)的上升沿裝入第一個位元組,並把指針指向下一個輸入寄存器,連續5個W—CLK的上升沿讀入5個位元組數據到輸入寄存器後,W—CLK的邊沿就不再起作用。然後在rQ—UD(頻率更新時鍾)上升沿到來時將這40位數據從輸入寄存器裝入到頻率/相位寄存器,這時DDS輸出頻率和相位更新一次,同時把地址指針復位到第一個輸入寄存器以等待下一次的頻率/相位控制字輸入。
6 硬體設計
要產生兩路相位正交、頻率可由外部控制的正弦信號,必須通過單片機編程來完成外部輸入的頻率數據(3個位元組)與DDS38晶元(AD9850)內部頻率相位控制字(5個位元組)間的轉換。單片機8051與AD9850晶元的介面既可採用並行方式,也可採用串列方式,本設計採用的是8位並行介面方式。由於需要產生VQ兩路正弦信號,因此使用了2片AD9850晶元,這兩路的頻率相同,相位差90。。單片機8051的P1口(P1.0一P1.7腳)用作外部控制字輸入,通過中斷1和中斷0讀入外部頻率數據,連續讀3次,對應頻率值的二進制數;單片機的P0口(P0.0一P0.7腳)用作頻率/相位控制字輸出,通過8位緩沖器74LS244作數據緩沖後加到2片AD9850晶元的8位控制字輸入端(DO—D7腳),同時產生相應的DDS時序控制信號(一路復位reset1、二路復位reset2、一路字輸入時鍾W1、二路字輸入時鍾W2、一路頻率更新時鍾FU1、二路頻率更新時鍾FU2)加到AD9850晶元的對應管腳。AD9850的外部參考時鍾信號(dk4Om)頻率為40 MHz,由晶體振盪器產生。單片機8051的復位信號(reset)、中斷0和中斷1控制信號(intO、int1)由外部控制系統給出,從而實現兩路相位正交、頻率可控的正弦信號。該DDS信號源的硬體介面電路如圖1所
圖1 DDS信號源硬體介面電路
7. 軟體控制
此程序的功能就是要將外部輸入的頻率數據按照一定協議和演算法變換成DDS晶元(AD9850)所能接受的格式,並送出相應的頻率相位控制信號,從而使AD9850能產生兩路相位正交、頻率可控的正弦信號。下面給出程序設計輸入、輸出、變換演算法。
(1) 輸入
數據同步:上升沿時讀人1個位元組的頻率數據,作為intl中斷輸入;
數據寫入:上升沿時頻率更新1次,作為intO中斷輸入;
8位數據:輸入的頻率位元組。分3次輸入,如圖2所示。

(2)輸出
單片機控製程序將產生下述輸出信號加到DDS晶元(AD9850)的對應腳:
reset1:一路DDS復位(一路AD9850第22腳);
reset7.:二路DDS復位(-路AD9850第22腳);
w1:一路數據同步(一路AD9850第7腳);
w2:二路數據同步(二路AD9850第7腳);
ful:一路數據寫入(一路AD9850第8腳);
fu2:二路數據寫入(二路AD9850第8腳);
P0口(P0.0一P0.7):8位頻率/相位數據輸出(AD9850的DO—D7腳)。
(3)演算法:程序中單片機輸入頻率數據F(3個位元組)與輸出頻
率數據△P(4個位元組)間的變換演算法見式(2)
其中CLKIN為外部參考時鍾(40 M Hz)。
(4)程序流程:整個程序由主程序、中斷0子程序、中斷1子
程序三部分構成。流程圖略。
8 結論
對設計的信號源在不同頻率下的輸出波形進行了測試,結果完全能達到所要求的性能指標。而且AD9850工作可靠,對參考時鍾波形要求不高,輸出信號穩定且信噪比高,是一種性價比很高的晶元,正廣泛應用於電子測量、跳頻通信、雷達系統等領域。
9 致謝
通過對低頻信號發生器的設計,我深刻認識到了「理論聯系實際」的這句話的重要性與真實性。而且通過對此課程的設計,我不但知道了以前不知道的理論知識,而且也鞏固了以前知道的知識。最重要的是在實踐中理解了書本上的知識,明白了學以致用的真諦。也明白老師為什麼要求我們做好這個課程設計的原因。他是為了教會我們如何運用所學的知識去解決實際的問題,提高我們的動手能力。在整個設計到電路的焊接以及調試過程中,我個人感覺調試部分是最難的,因為你理論計算的值在實際當中並不一定是最佳參數,我們必須通過觀察效果來改變參數的數值以期達到最好。而參數的調試是一個經驗的積累過程,沒有經驗是不可能在短時間內將其完成的,而這個可能也是老師要求我們加以提高的一個重要方面吧
參考文獻:
【1】高衛東.等.AD9850 DDS晶元信號源的研製【J】.實驗室研究與探
索,2000,(5).
【2】石雄.等.DDS晶元AD9850的工作原理及其與單片機的介面【J】.國
外電子元器件,2001。(5).
(上

Ⅸ 求at89s51的基於單片機的紅外通信程序

我之前賣的學習板上有個紅外通信的程序,我加了大量的注釋,你參考一下吧。

;遙控器讀碼程序(晶振為11.0592),該程序能讀出遙控器的控制碼,並通過LED顯示出來
;***************************************************************
A_BIT EQU 20H ;數碼管個位數存放內存位置
B_BIT EQU 21H ;數碼管十位數存放內存位置
NO_OUT EQU 24H ;最終控制號碼存放單元
A_NO EQU 25H ;數碼管個位數對應代碼存放內存位置
B_NO EQU 26H ;數碼管十位數對應代碼存放內存位置
;22H,23H為控制碼及其反碼的存放單元

;*******************<<主程序>>***********************************
ORG 0000H
AJMP 0030H
ORG 0003H ;外部中斷P3.2腳INT0入口地址
AJMP INT ;轉入外部中斷服務子程序(解碼程序)
ORG 0030H
AJMP MAIN ;轉入主程序
;***************************************************************
MAIN: MOV NO_OUT,#0H
SETB EA ;打開CPU總中斷請求
SETB IT0 ;設定INT0的觸發方式為脈沖負邊沿觸發
SETB EX0 ;打開INT0中斷請求
LOOP: MOV A,NO_OUT;將按鍵的鍵值通過P1口的8個LED顯示出來!
CPL A ;由於P1發光二極體顯示的是電平的反狀態,所以取反
MOV P1,A ;發光二極體顯示輸出
LCALL DISPLAY;LED數碼管顯示輸出
AJMP LOOP;循環
;********************<<中斷接受遙控程序>>************************
;以下為進入P3.2腳外部中斷子程序,也就是解碼程序
INT:
PUSH ACC
PUSH PSW ;將PSW和ACC推入堆棧保護
CLR EA ;暫時關閉CPU的所有中斷請求
MOV R6,#10
SB: LCALL DL865;調用865微秒延時子程序
JB P3.2,EXIT;延時865微秒後判斷P3.2腳是否出現高電平如果有就退出解碼程序
DJNZ R6, SB;重復10次,目的是檢測在8650微秒內如果出現高電平就退出解碼程序
;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
JNB P3.2, $ ;等待高電平避開9毫秒低電平引導脈沖
LCALL DL4737 ;延時4.74毫秒避開4.5毫秒的結果碼
MOV R7,#16;忽略前26位系統識別碼

JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL DL865;高電平開始後用865微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUUA;如果為0就跳轉到UUUA
LCALL DL1000;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUUA: DJNZ R7,JJJJA
MOV R1,#22H ;設定22H為起始RAM區
MOV R2,#2;接收從22H到23H的2個內存,用於存放操作碼和操作反碼
PP: MOV R3,#8;每組數據為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL DL865;高電平開始後用865微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUU;如果為0就跳轉到UUU
LCALL DL1000;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數暫時存放在R1數值的內存中
DJNZ R3,JJJJ;接收滿8位換一個內存
INC R1;對R1中的值加1,換下一個RAM
DJNZ R2,PP ;接收完8位數據碼和8位數據反碼,存放在22H/23H中
MOV A,22H
CPL A;對22H取反後和23H比較
CJNE A,23H,EXIT;如果不等表示接收數據發生錯誤,放棄
MOV A,22H
MOV NO_OUT,A
;LCALL EEPROM_C ;清除以前的保存的碼
;LCALL DL4737
;LCALL EEPROM_W ;把碼存在單片機內部的EEPROM里
;LCALL DL4737
CLR P3.6;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL DL4737
LCALL DL4737
LCALL DL4737
SETB P3.6;蜂鳴器停止
lcall DL4737
EXIT: SETB EA ;允許中斷
POP PSW
POP ACC ;將PSW和ACC推入堆棧保護
RETI ;退出解碼子程序

;*******************<<LED數碼管顯示子程序>>**********************
DISPLAY:
MOV A,NO_OUT ;將NO_OUT分成個位和16位
ANL A,#0FH ;取低四位放在a_bit
MOV A_BIT,A ;個位
MOV A,NO_OUT ;
RR A
RR A
RR A
RR A ;四次移動,把高四位移到低四位
ANL A,#0FH;取高四位放在B_bit
MOV B_BIT,A ;個位在b
MOV DPTR,#NUMTAB ;指定查表啟始地址
MOV A,A_BIT ;取個位數
MOVC A,@A+DPTR ;查個位數的7段代碼
MOV A_NO,A
MOV A,B_BIT ;取十位數
MOVC A,@A+DPTR ;查十位數的7段代碼
MOV B_NO,A
DPLOP:MOV A,A_NO
MOV P0,A ;送出個位的7段代碼
;SETB P2.1;關閉十位顯示,防止鬼影
CLR P2.0 ;開個位顯示
LCALL DL40 ;顯示4737微秒
SETB P2.0;關閉個位顯示,防止鬼影
MOV A,B_NO
MOV P0,A ;送出十位的7段代碼
CLR P2.1 ;開十位顯示
LCALL DL40 ;顯示4737微秒
SETB P2.1;關閉十位顯示,防止鬼影
RET
;**********************<<延時程序>>******************************
DL865: MOV R4,#12 ; 1.09*(2R5+4)*R4+2延時子程序1,精確延時865微秒
D1: MOV R5,#31
DJNZ R5,$
DJNZ R4,D1
RET
DL4737: MOV R4,#12 ;延時子程序2,精確延時4737微秒
D2: MOV R5,#179
DJNZ R5,$
DJNZ R4,D2
RET
DL1000: MOV R4,#17;延時程序3,精確延時1000微秒
D3: MOV R5,#25
DJNZ R5,$
DJNZ R4,D3
RET
DL40: MOV R4,#1;延時程序4,精確延時40/17微秒
D4: MOV R5,#1
DJNZ R5,$
DJNZ R4,D4
RET

;****************************************************************
;如果是共陽數碼管的顯示代碼 1-F 16個代碼
NUMTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;STC新板的
END

閱讀全文

與紅外通信裝置軟體程序的設計相關的資料

熱點內容
清洗光學鏡片設備有哪些 瀏覽:978
如何知道電動車電機軸承 瀏覽:396
內7外26高8什麼軸承 瀏覽:812
迷你小冷藏櫃不製冷怎麼修 瀏覽:555
如何在路由器上查看上網設備 瀏覽:611
練聲音的器材有哪些 瀏覽:718
肇慶車床五金件 瀏覽:645
閥門氣缸是什麼原因 瀏覽:277
飛機傳動裝置包括發動機嗎 瀏覽:809
圓柱軸承安裝後如何調整 瀏覽:565
天正暖通閥門標注樣式怎麼修改 瀏覽:948
勞務派遣許可證的辦公設施設備清單怎麼寫 瀏覽:421
東成電動工具華南城銷售部 瀏覽:708
挖機驅動輪滾珠軸承怎麼安裝 瀏覽:129
湖塘五金機電城 瀏覽:951
拍x片儀器叫什麼名字 瀏覽:63
防火裝置的作用是防止火焰 瀏覽:491
觀察冰融化的實驗裝置 瀏覽:925
頤達儀表盤怎麼換 瀏覽:846
閥門開關牌怎麼掛 瀏覽:182