999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AT89C51單片機的摩斯電碼播報系統的設計

2018-02-27 13:29:44張娜鄧文波
電腦知識與技術 2018年35期

張娜 鄧文波

摘要:摩爾斯電碼,又稱為摩斯電碼,是一種時通時斷的信號代碼,這種信號代碼通過不同的排列順序來表達不同的英文字母、數字和標點符號等。該系統硬件以單片機AT89C51為核心,采用C語言編程,實現按鍵功能設置,然后驅動喇叭播放摩爾斯電碼,最后再利用液晶屏同步顯示播放的摩爾斯電碼。該系統可實現摩爾斯碼碼速、方式可調,具有一定的現實價值和意義。

關鍵詞:AT89C51單片機;摩爾斯碼;播報機;系統設計;

中圖分類號:TP391? ? ? ? 文獻標識碼:A? ? ? ?文章編號:1009-3044(2018)35-0220-04

電報通信的語言是由電碼符號組成的,是美國薩繆爾·摩爾斯在1844年發明的,所以電碼符號也被叫做摩爾斯電碼(Morse code)。摩爾斯電碼(又稱為摩斯電碼)是一種時通時斷的信號代碼,這種信號代碼通過不同的排列順序來表達不同的英文字母、數字和標點符號等。它是一種早期的數字化通信形式。由于通信技術的進步,摩爾斯碼已被其他通信編碼所取代,但由于它所占的頻寬最少,又具一種技術及藝術的特性,在實際生活中有廣泛的應用,現主要用于航海、遠航通信等領域。

1 硬件系統

1.1 整體設計

本設計主要包括四部分:51單片機系統、按鍵檢測模塊、聲音驅動模塊和顯示模塊,系統框圖如圖1所示。

本設計主要是基于51單片機的摩爾斯報播報系統。通過制作相關電路板構建該系統的硬件實物平臺,并采用 Keil軟件編程實現摩爾斯碼播報機的相關功能。

本設計主要完成的功能:

1) 對摩爾斯碼播報機參數的設置。通過對按鍵電路的檢測,實現摩爾斯碼播報相關參數的設置,主要實現播報速度、播報方式的設置。

2) 實現摩爾斯電碼的播報。設定好相關參數后,驅動聲音驅動模塊實現摩爾斯碼的播報,同時利用顯示模塊對播報的摩爾斯碼實時顯示。

1.2 單片機最小系統

51單片機最小系統由單片機、晶振電路和復位電路組成,如圖2所示所示。晶振電路,又稱為時鐘電路,是系統的心臟部分,為單片機的運行提供時鐘脈沖信號。晶振頻率f為22.1184Mhz,即單片機執行一條機械指令所需要的時間為1/f。復位電路主要用于程序運行不正常、死機或者需要重新復位運行時對單片機進行復位。正常情況下,單片機RST端為低電位,單片機正常運行。當按鍵按下后松開,單片機RST端出現短暫的高電位,從而致使單片機執行復位操作。

1.3 其他輔助電路

如圖3所示為發報機系統外圍電路設計圖,主要有三部分組成:功能設置(按鍵電路)、音響播報(聲響驅動電路)、結果顯示(液晶顯示電路)。按鍵主要用于測試喇叭的音效和播報碼數、播報方式的設置;音響電路主要用去驅動喇叭發聲,實現摩爾斯碼的播報;液晶顯示電路主要用于對相關參數和播報電碼的顯示。

2 摩爾斯編碼

2.1 摩爾斯碼簡介

摩爾斯電碼(Morse alphabet)是一種時通時斷的信號,這種信號通過不同的排序來表示不同的英文字母、數字和符號等內容。它不同于現代的二進制代碼,摩爾斯電碼由兩種最基本信號和不同的間隔時間組成:短促的點信號(·,通常讀‘滴)和保持一定時間的長信號(—,通常讀為‘噠)。它的代碼主要包括五種: 點(·)、劃(—)、字間點(·)和劃(—)之間的停頓、字符與字符之間的停頓、詞(組)與詞(組)之間的停頓。摩爾斯碼如圖4所示,以一個點(·)為一基本信號單位,則有:

1) 一劃(—)的時間長度為3點(·)的時間長度。

2) 在一個字符內,點(·)與點(·)、點(·)與劃(—)、劃(—)與劃(—)之間的間隔為一點(·)的時間長度。

3) 字符與字符之間的間隔為3點(·)的時間長度。

4) 字(組)與字(組)之間的間隔為5點(·)的時間長度。

利用點(·)和劃(—)兩個基本信號,然后通關不同的排序來表示對應的字母、數字和符號等,如表1、2所示為常用的字母和數字摩爾斯編碼。

2.2 三進制編碼方式

計算機數據處理通常采用二進制編碼,為方便處理,摩爾斯碼在計算機處理中必須進行數據化。當利用二進制編碼方式對編碼進行處理時,即點(·)為0、劃(—)為1,則會出現編碼后不同的字母或者數字量化結果相同,無法進行區分,如字母h、i、s和數字5的編碼結果都為0。為解決該問題,可采用在編碼前增加一位編碼校驗位,該位編碼為1,也可采用其他編碼方式。本設計采用三進制進行編碼,以點(·)為1、劃(—)為2,同時為方便計算處理,本文采用倒序編碼,如字母a的摩爾斯編碼為(· —),則三進制倒序編碼后為(21)3,編碼結果為7。表1、2字母和數字對應三進制倒序編碼結果如表3、4所示。表中括號內數字為對應三進制編碼結果。

2.3 電報播報方式

常用的摩爾斯碼電報播報方式有三種:字母報、數字報和混合報。其中數字報又分為數字長碼報和數字短碼報;混碼報是常用的發包方式,是由字母碼與數字長碼的混合而成。

3 軟件設計

3.1 軟件整體設計

系統軟件設計整體框圖如圖5所示。硬件初始化后,進入摩爾斯碼播報機相關參數的設定狀態。系統對按鍵狀態進行掃描檢測,實現摩爾斯碼播報碼數、播報方式的設置。播報碼數:即單位時間內播報滴(·)的個數。以播報滴(·)的時間為一個基本的時間單元t,碼數為V,則一個基本時間單元t的時長為60/V/2秒,公式中除以2是因為在播報中滴(·)與滴(·)之間的間隔剛好為一個基本時間單元t。播報方式的設定,即對字母報、數字長碼報、數字短碼報或者混合報播報方式進行選擇。參數設定完畢后,系統隨機產生字母或者數字,然后播放該字符的摩爾斯碼,同時實時通過液晶顯示所播報的字碼。當需要對碼數和播報方式重新設定時,只需要啟動復位按鍵,對單片機進行復位啟動,然后重新對各參數進行設定即可。

3.2 按鍵按識

按鍵識別程序采用基于按鍵狀態的掃描設計,該方法能有效消除因按鍵抖動而產生的短促電位改變致使對按鍵結果產生的誤判。程序開始后進入按鍵掃描的初始0狀態,檢測按鍵是否按下。當存在按鍵按下時,進入下一狀態,利用延時判斷對按鍵狀態再次確認,如果確實按下,則轉入下一狀態,否則返回0狀態繼續按鍵檢測。當確實有按鍵按下后,進入下一狀態等待按鍵的松開,同樣利用延時法消除按鍵抖動產生的誤判,在按鍵確實松開后置按鍵標志位為高電平。部分程序及注解如下所示:

void key_mainloop()//按鍵掃描函數

{ static unsigned char key1_state = 0;//按鍵掃描狀態號

static unsigned char key1_count = 0; //計數器

switch(key1_state)

{case 0:

{if(key1 == 0)key1_state = 1;}break;//當有按鍵按下時,進如1狀態

case 1:

{if(key1_count++ >=10)//延時消除抖動

{key1_count = 0;

if(key1 == 0) key1_state = 2;

else key1_state = 0;} //確實存在按鍵按下,則進入2狀態,否則回0狀態

} break;

case 2:

{if(key1 == 1) key1_state = 3;}//當檢測到按鍵松開時,進入3狀態

case 3:

{if(key1_count++ >= 10) //延時消除抖動

{key1_count = 0;

if(key1 == 1){key1_state = 0;key1_flag_g = 1;}

else key1_state = 2; }//當該按鍵確實松開后,則把按鍵標志位置1,并使程序進入0狀態,繼續掃描按鍵;否則回到2狀態繼續等待按鍵松開。

} break;

}}

當按鍵掃描程序獲得按鍵狀態后,程序通過讀取不同按鍵的按鍵標志位狀態,區分是否存在按鍵按下和哪一個按鍵按下,從而執行不同的程序段,實現不同功能按鍵的實現和參數的設定。

3.3 聲音驅動

音響驅動如圖3(b)所示,當單片機P3-3端口輸出為高電平時,則此時三極管導通,音響發聲,當P3-3端口輸出為低電平時,則此時三極管斷開,音響靜音狀態。通過控制輸出端P3-3的電位隨時間的變化,便可以產生不同的影響效果。

以滴(·)為一個基本時間單位t,則噠(—)的時間為3t,字中滴(·)與噠(—)之間的時間間隔為1t,字與字之間的時間間隔為3t,而詞(組)與詞(組)之間的時間間隔為5t。

單片機開始播報后,通過讀取rand()函數結合單片機定時計數器1低八位數據產生隨機序列,然后讀取對應序號的三進制倒序編碼,執行聲音驅動字碼播放程序,過程中執行液晶顯示程序,對播報的摩爾斯碼字符進行實時顯示。本文采用倒序三進制編碼對摩爾斯碼進行編碼,主要為了方便程序的設計。部分代碼如下所示:

switch(Step_flag)

case 0:{Now = (TL1+rand()) % Z_Num;Now_S = zimu[Now+Z_begin];

Step_flag++; }//產生隨機序列,并讀取對應序列字碼摩爾斯編碼的三進制倒序編碼

case 1:{g = Now_S%3; Step_flag++;}//三進制編碼對3取余

case 2:{if(g==1) speak_1();//余數為1,則播報(·)

else if(g==2) speak_2();//余數為2,則播報(—)

if(Sp_flag==1) Step_flag++;

}break;

case 3:{Now_S = Now_S/3;Step_flag++;}//三進制編碼除以3取整

case 4:{if(Now_S) Step_flag=1;循環能,如果數據不為0,則繼續進行取余循環。

3.4 結果測試

液晶顯示結果如圖6所示。圖中①V為播報碼數;②M為播報方式,其中Z為字母碼播報,H為混碼播報,C為數字長碼播報,D為數字短碼播報。③為組號,在播報過程中,每5個字符劃分為一組。

4 結論

基于51單片機的摩爾斯碼播報系統,是以AT89C51單片機為主控芯片,利用按鍵、聲響及液晶模塊,實現摩爾斯碼的播報功能,并實現摩爾斯碼播報碼數、播報方式的調節。該系統設計簡單,方便實現,且體積小、耗電低、造價便宜等優點,具有一定的現實價值和實際意義。

參考文獻:

[1] 汪滿明. 永遠的摩爾斯[J].中國海事,2011(9):71-72.

[2] 韋醒超.摩爾斯短波無線通信系統的設計與實現研究[M].長沙:湖南大學,2017:19-30.

[3] 蕭如珀,楊信男. 1844年5月24日:摩爾斯與電報[J].現代物理知識,2011(3):61-62.

[4] 李科文. 別了,“SOS”[J].科學之友,1999(5):21.

[通聯編輯:梁書]

主站蜘蛛池模板: 无码精品一区二区久久久| 九色在线视频导航91| 免费观看欧美性一级| 欧美一级黄色影院| 国产成人AV综合久久| 99无码中文字幕视频| 激情无码视频在线看| 囯产av无码片毛片一级| 蜜臀AVWWW国产天堂| 自拍偷拍欧美| 日韩免费中文字幕| 波多野结衣久久高清免费| 91精品啪在线观看国产91九色| 国产内射一区亚洲| 精品久久国产综合精麻豆| 亚洲欧洲日产国产无码AV| 久久香蕉国产线看观看精品蕉| 国产白浆在线| 日韩精品资源| 国产视频一二三区| 97se亚洲综合在线韩国专区福利| 69免费在线视频| 1769国产精品视频免费观看| 国产h视频免费观看| 亚洲欧美一区二区三区麻豆| 91国内在线观看| 午夜老司机永久免费看片| 国产高清毛片| 三级视频中文字幕| 国产剧情无码视频在线观看| 456亚洲人成高清在线| 91色在线观看| 国产靠逼视频| 亚洲人网站| 久久精品这里只有国产中文精品| 久久久久无码精品国产免费| 五月激情综合网| 成人精品免费视频| 久久精品人人做人人爽| 在线观看网站国产| 亚洲无线国产观看| 久久久噜噜噜久久中文字幕色伊伊 | 99re免费视频| 亚洲色图在线观看| 成人自拍视频在线观看| 亚洲青涩在线| 久久久受www免费人成| 国产精品va| 国产精品第页| 成人综合久久综合| 色妞www精品视频一级下载| 精品91自产拍在线| 国产欧美日韩综合在线第一| 国产极品美女在线| 国产一区二区三区视频| 日韩欧美中文在线| 国产在线拍偷自揄观看视频网站| 亚洲欧美在线综合一区二区三区| 亚洲资源站av无码网址| 国产精品一区在线观看你懂的| 国产色爱av资源综合区| 国产成人精品亚洲77美色| 国产精鲁鲁网在线视频| 国产一区二区丝袜高跟鞋| 国产原创自拍不卡第一页| 色综合热无码热国产| 在线看片免费人成视久网下载| 国产手机在线观看| www.亚洲一区二区三区| 尤物亚洲最大AV无码网站| 成人欧美日韩| 丰满少妇αⅴ无码区| 国产69精品久久久久妇女| 97se综合| 国产成人三级| 国产欧美自拍视频| 大香伊人久久| 亚洲开心婷婷中文字幕| 免费又黄又爽又猛大片午夜| 国产成人精品男人的天堂下载| 凹凸国产熟女精品视频| 99精品伊人久久久大香线蕉 |