久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3372|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

自編的基于89C52單片機(jī)的摩爾斯電碼自動(手動)收發(fā)報程序 附仿真和源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:965487 發(fā)表于 2021-10-21 09:01 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
  辛苦幾天編寫了基于89C52單片機(jī)的摩爾斯電碼自動(手動)收發(fā)報程序,核心代碼都已實現(xiàn),并仿真通過,其它功能正在完善。
  自認(rèn)為是首創(chuàng),沒想到今天早上在閱讀貼子時,已有大神在昨天發(fā)表了相關(guān)程序,很是慚愧,本人太寡聞了。
  本人由于知識和水平有限,加之書本和網(wǎng)上沒有現(xiàn)成的源代碼可參考,辛苦了幾天,設(shè)計了自認(rèn)比較合理高效占用資源少的數(shù)據(jù)結(jié)構(gòu)和算法。現(xiàn)發(fā)表出來,供大家評論,指出不足,讓我加以改進(jìn),學(xué)習(xí)提高。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


程序編譯后占用的內(nèi)存


單片機(jī)源程序如下:
  1. /*-----------------------------------------------
  2. * 【實驗平臺】: QX-MCS51 單片機(jī)開發(fā)板
  3. * 【外部晶振】: 11.0592mhz        
  4. * 【主控芯片】: STC89C52
  5. * 【編譯環(huán)境】: Keil μVisio4         
  6. * 【程序編寫】: wzqwxx 水上人家

  7. 名稱:摩爾斯電碼發(fā)送
  8. 內(nèi)容:……

  9. ------------------------------------------------*/

  10. #include <REGX52.H>
  11. #include <stdio.H>
  12. #include "1602.h"
  13. #include "MRScode.h"

  14. unsigned char *showbuffer;//顯示緩沖

  15. // //常用短語庫
  16. //unsigned char code *phrase[] = {"ok","NO", "hello","thank you","receive",
  17. //                                                                /*好,不,你好,謝謝你,收到,*/
  18. //"retransmission","Goodbye",        "Help me!", "my location:"
  19. ///*重復(fù),再見,救我或幫我,我的位置:后面寫兩組數(shù)字 東經(jīng)和北緯*/
  20. //
  21. ///******其它可再添加*****/                                                                                        } ;
  22. //

  23. void UART_init()
  24. {
  25.         TMOD |= 0x20;          //T1工作模式2  8位自動重裝
  26.         TH1 = 0xfd;
  27.         TL1 = 0xfd;         //比特率9600   時鐘頻率11.0592MHZ
  28.         TR1 = 1;                //啟動T1定時器
  29.         SM0 = 0;
  30.         SM1 = 1;                 //串口工作方式1 10位異步
  31.         REN = 1;                //串口允許接收
  32.         TI = 1;
  33. }

  34. void main()
  35. {
  36.         unsigned char inputbufstr[26],k,num;
  37.         UART_init();
  38.          lcd_init();
  39.         showbuffer = "Hello! 51hei.com"; //測試文本
  40.         Lcdwritestring(0,0,showbuffer);
  41.         send_mrs_code_TEXT(showbuffer); //發(fā)送字符串
  42.         while(1)
  43.         {
  44.                 scanf("%s",inputbufstr); //運行后在仿真終端輸入英文字符串
  45.                
  46.                 showbuffer = "";
  47.                 showbuffer = inputbufstr+'\n';
  48.                 Lcdwritestring(0,0,inputbufstr);
  49.                 send_mrs_code_TEXT(inputbufstr);
  50.                                 
  51.         };        
  52. }
復(fù)制代碼
  1. /******本函數(shù)ASCII碼轉(zhuǎn)摩爾斯碼字符串發(fā)送*****/
  2. void send_mrs_code_TEXT(unsigned char *p)
  3. {
  4.         unsigned char i; //i即摩爾斯碼字庫數(shù)組下標(biāo)
  5.         while(*p)
  6.         {
  7.                 if(*p != 0x20)//是否是空格
  8.                 {
  9.                         if(*p >= 0x41 && *p <= 0x5A )//大寫字母A~Z        
  10.                         {
  11.                                 i = *p-0x41;  //i取字母字庫 ,0x00地址開始
  12.                         }
  13.                         else if(*p >= 0x61 && *p <= 0x7A) //小寫字母a~z
  14.                         {
  15.                                 i = *p-0x61;  //i取字母字庫 ,0x00地址開始 ,摩斯碼字母不區(qū)分大小寫
  16.                         }
  17.                         else if(*p >= 0x30 && *p <= 0x39) //數(shù)字0~9
  18.                         {
  19.                                 i = *p-0x16;  //i取數(shù)字字庫 ,0x1A地址開始                                
  20.                         }
  21.                         else
  22.                         {
  23.                                 switch (*p)
  24.                                 {
  25.                                         case '?': i =36;  //即字庫數(shù)組下標(biāo)
  26.                                                 break;
  27.                                         case ',': i =37;
  28.                                                 break;
  29.                                         case '.': i =38;
  30.                                                 break;
  31.                                         case '!': i =39;
  32.                                                 break;
  33.                                         case '@': i =40;
  34.                                                 break;
  35.                                         case ':': i =41;
  36.                                                 break;
  37.                                         case '-': i =42;
  38.                                                 break;
  39.                                         default:goto AAA;//其它字符當(dāng)空格處理
  40.                                                 break;
  41.                                 }
  42.                         }
  43.                         count = 0;//清摩爾碼顯示位置
  44.                         write_com(0x01);// 清屏
  45.                         Lcdwritestring(0,0,showbuffer);        //第一行顯示待發(fā)字符串
  46.                         Lcdwritechar(1,3,*p);//第二行顯示待發(fā)字符
  47.                         p++;
  48.                         MRS_code_send(MRSZK[i]); //發(fā)送一個摩爾碼
  49.                 }
  50.                 else
  51.                 {
  52.         AAA:        p++;
  53.                         J4_beep(); // 是空格,單詞間隔3+4=7個點靜音                        
  54.                 }
  55.         }
  56. }
復(fù)制代碼
接收部分代碼中午在另貼發(fā)布

仿真文件和源碼
摩斯碼自動收發(fā)程序4.zip (449.37 KB, 下載次數(shù): 31)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:98926 發(fā)表于 2021-10-25 10:25 | 只看該作者
期待你的接收c程序
回復(fù)

使用道具 舉報

板凳
ID:962243 發(fā)表于 2021-10-25 19:47 | 只看該作者
期待你的接收c程序
回復(fù)

使用道具 舉報

地板
ID:965487 發(fā)表于 2021-11-2 09:25 | 只看該作者

謝謝你的鼓勵,請查看這個帖子:http://www.zg4o1577.cn/bbs/dpj-213705-1.html
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产主播第一页 | 亚洲一区二区三区桃乃木香奈 | 国产精品国产成人国产三级 | 精品一区二区三区中文字幕 | а_天堂中文最新版地址 | 国产精品久久久久影院色老大 | 一区视频在线播放 | 1区2区视频 | 国产91精品久久久久久久网曝门 | 亚洲一区亚洲二区 | 国产精品亚洲一区 | 成人在线播放网站 | 日韩av在线中文字幕 | 亚洲精品一区中文字幕乱码 | 欧美日日 | 国产精品久久久久久久久久不蜜臀 | 激情影院久久 | 午夜精品一区二区三区在线视频 | 伊人春色成人网 | 日本人和亚洲人zjzjhd | 久久三区 | 特级a欧美做爰片毛片 | 欧美成视频 | 美女日批免费视频 | 国产精品久久久久久 | 欧洲一级黄 | 国产高清一区二区 | 精品视频久久久久久 | 喷水毛片 | 日日摸夜夜添夜夜添特色大片 | 亚洲精品久久 | 亚洲国产成人精品久久久国产成人一区 | 亚洲人成在线播放 | 日韩无 | 久久91| 欧美一区二区在线 | 一区二区三区免费网站 | 欧美性一区二区三区 | 亚洲一区视频在线 | 国内精品一区二区 | 91视频一区|