电子系统课程设计-摩斯电码通信系统
- 格式:pdf
- 大小:3.16 MB
- 文档页数:46
用单片机制作多功能莫尔斯码电路莫尔斯电码通信有着悠久的历史,尽管它已被现代通信方式所取代,但在业余无线电通信和特殊的专业场合仍具有重要的地位,这是因为等幅电码通信的抗干扰能力是其它任何一种通信方式都无法相比的。
在短波波段用几瓦的功率即可进行国际间的通信,收发射设备简单易制成本低廉,所以深受业余无线电爱好者的喜爱,是业余无线电高手必备的技能。
要想熟练掌握莫尔斯电码的收发技术除了持之以恒的毅力外,还需要相关的设备。
设计本电路的目的就是给爱好者提供一个实用和训练的工具。
一、功能简介本电路可以配合自动键体和手动键体,产生莫尔斯码控制信号,设有16种速度,从初学者到操作高手都能适用。
监听音调也有16种,均可以通过功能键进行选择。
可以按程序中设定好的呼号自动呼叫,设有听抄练习功能,听抄练习有短码和混合码两种模式,分别对10个数字和常用的38个混合码模拟随机取样,产生分组报码,供爱好者提高抄收水平之用,速度低4档的听抄练习是专为初学者所设,内容是时间间隔较长的单字符。
设有PTT开关键,可以决定是否控制发射机工作,不需要反复通断控制线。
无论当前处于呼叫状态还是听抄状态只要电键接点接通则自动转到人工发报程序。
4分钟内不使用电路将自动关闭电源,只有按复位键才能重新开始工作。
先按住听抄练习键复位则进入短码练习状态,其它功能不变。
从开机到自动关机执行每个功能都有不同的莫尔斯码提示音。
本电路具有较强的抗高低频干扰的能力和使用方便的大电流开关接口,以适应不同的发射设备。
二、硬件电路原理硬件电路如图1所示。
设计电路的目的在于方便实用,以免在紧张的操作中失误,所以除了听抄练习键外其它键没有定义复用功能。
各键的作用在图中已经标出。
PTT控制在每次复位时处于关闭状态,每按动一次PTT功能键则改变一次状态,这样可以使用软件开关控制发射。
PTT处于控制状态时发光二极管随控制信号闪亮。
考虑到自制设备及淘汰军用设备与高档设备控制电流的不同,PTT开关管采用了2SC2073,可以承受500mA的电流,同时还增加了无极性PTT开关电路,无论外部被控制的端口直流极性如何加到VT3的极性始终不变,供有兴趣的爱好者实验。
摩尔斯电码发送器与接收器一.莫尔斯电码简介摩尔斯电码是由美国人摩尔斯于1837年发明的。
摩尔斯电码由点(.)和划(—)两种符号组成。
点信号“·”读“的”(Di);划信号“—”读“答”(Da)。
摩尔斯电码点划节奏分明,便于收报员通过耳机接受信号,它被用来传送了世界上第一条无线电电报。
摩尔斯电码属于非均匀码,最短1个码元,最长6个码元。
本次课程设计涉及的字符编码如下表所示:二、设计任务任务1.设计一个摩尔斯电码发送器(1)用键盘输入字符,微机中的扬声器发出相应的“的”“答”声,屏幕上显示该字符及对应点划信息。
(2)要求完成摩尔斯电码发送器的软件设计 任务2.设计一个摩尔斯电码接收器(1)用键盘键入摩尔斯电码的点划信息,软件识别对应字符,比如, 我们用键盘键入 —··· 分离符空格,屏幕上显示 B (2)要求完成摩尔斯电码接收器的软件设计三、系统方案:摩尔斯电码包括两部分:发送器和接收器。
在一开始我们设计menu 菜单,通过输入0(SEND )、1(RECEIVE )、2(END )来选择此次运行是作为发送器、接收器还是退出程序。
发送器设计方案:从键盘上输入相应数字或者是字母,我们还要排除一种输入既不是字母又不是数字的情况,此时输出not find 。
其在内存中是以ASCII 的形式存在,我们知道0—9的ASCII 值是30H —39H ,A —Z 的ASCII 值是41H —5AH ,判别出输入是数字还是字母后,通过所输入的减去30H (数字)或者41H (字母)再加上我们在之前预习时所设定的报文信息表的SI,(MOV SI, OFFSET TABLE),如此得到报文信息表中的确定位置的内容。
获得这个内容后,相应内存中也就有了信息。
此时我们需要让它显示出来。
通过左移寻找第一个标志位1所在的位置,然后再继续左移将后面的0翻译为点,把1翻译为划,最终呈现出来。
与此同时,当屏幕输出点时会调用发点的程序,系统会发出“滴”的一声;当屏幕输出划时会调用划的程序,系统会发出“嗒”的一声。
莫尔斯/摩尔斯电码(Morse code)莫尔斯/摩尔斯电码(Morse code)是美国人莫尔斯于1844年发明的,由点(.)、划(-)两种符号组成:1.一点为一基本信号单位,一划的长度=3点的长度。
2.在一个字母或数字内,各点、划之间的间隔应为两点的长度。
3.字母(数字)与字母(数字)之间的间隔为7点的长度。
莫尔斯/摩尔斯电码(Morse code)曾被用在间谍通信,电报,航海信号等各个领域。
摩斯密码表:-----------------------------------以下为英文26字母摩尔斯电码表---------------------------------A .-B -. . .C -. -.D -. .E .F . .-.G --.H . . . .I . .J .---K -. -L .-. .M --N -.O ---P . --.Q --.-R .-.S . . .T -U . .-V . . .-W .--X -. .-Y -.--Z --. .--------------------------------------以下为数字摩尔斯电码表------------------------------------0 -----1.----2 . .---3 . . .--4. . . .-5. . . . .6 -. . . .7--. . .8---. . 9----摩斯密码本身只是一种密码形式,最早由美国的摩尔斯在1844年发明,它是由两种基本信号和不同的间隔时间组成起来的。
短促的点信号“.”保持一定时间的长信号“—”这种密码多用作电报,各种保密密码等。
摩斯密码表:Alphabet 字母A。
-B-。
C-。
-。
D-。
E。
F。
-。
G--。
H。
I。
J。
---K-。
-L。
-。
M--N-。
O---P。
--。
Q--。
-R。
-。
S。
T-U。
-V。
-W。
--X-。
-Y-。
--Z--。
四年级(上)单元题目:数据与编码一、学情分析本单元内容是全新的知识,学生对数据编码知识比较陌生,但是这个年龄段的学生好奇心比较重,会对本课题产生浓重的求知心理,但是其思维创造性不够成熟很容易受到错误思维的影响,遇到困难时容易动摇,因此课题的设计一定要新颖有吸引力,贴近学生的生活,简单且具有探索意义,在任务结束后,及时进行评价以及正确方法的解答与演示,使学生学习数据编码知识更容易理解。
二、单元学习目标1.信息意识:知道数据编码的意义,掌握二进制编码、二维码、图像编码以及摩斯密码的编码原理,认识到数据编码的价值和对生活的指导意义。
2.计算思维:能够区分各类编码形式,能够分析与综合相关信息资源,运用合理算法解决相关问题,并能够迁移到相关问题中。
3.数字化学习与创新:能够评价并合理使用相关数字化学习平台和实体教具,有效地使学生参与到数据编码的学习过程中,养成良好的学习习惯,掌握数字化学习系统、学习资源与学习工具的功能和用法,并用来开展自主学习、协同工作、知识分享与创新创造。
4.信息社会责任:具备信息社会责任的学生具有一定的信息安全意识,能够遵守信息法律法规,信守信息社会的道德与伦理准则,在现实空间和虚拟空间中遵守公共规范,既能有效维护信息活动中个体的合法权益,又能积极维护他人合法权益和公共信息安全;关注信息技术革命所带来的环境问题与人文问题。
对于信息技术创新所产生的新观念和新事物,能具备积极的学习态度、理性的价值判断能力和负责的行动能力。
三、单元设计、课时及教学内容本单元以“数据编码”为题,以学生现有的信息技术为载体,以STEAM教育为手段,在做中学,在学中做,共计5个课时。
1.认识设计编码。
主要教学内容:学生通过课前的调查、收集信息、课中的汇报沟通、自主编码,明白数字在编码当中的应用,熟识身份证号码,明白身份证号的结构以及含义。
本节课从帮助探长破案这个故事情境入手,通过联系实际,查找并发觉生活中的编码,体会数字的用处与价值.2.二进制编码。
用单片机制作多功能莫尔斯码电路莫尔斯电码通信有着悠久的历史,尽管它已被现代通信方式所取代,但在业余无线电通信和特殊的专业场合仍具有重要的地位,这是因为等幅电码通信的抗干扰能力是其它任何一种通信方式都无法相比的。
在短波波段用几瓦的功率即可进行国际间的通信,收发射设备简单易制成本低廉,所以深受业余无线电爱好者的喜爱,是业余无线电高手必备的技能。
要想熟练掌握莫尔斯电码的收发技术除了持之以恒的毅力外,还需要相关的设备。
设计本电路的目的就是给爱好者提供一个实用和训练的工具。
一、功能简介本电路可以配合自动键体和手动键体,产生莫尔斯码控制信号,设有16种速度,从初学者到操作高手都能适用。
监听音调也有16种,均可以通过功能键进行选择。
可以按程序中设定好的呼号自动呼叫,设有听抄练习功能,听抄练习有短码和混合码两种模式,分别对10个数字和常用的38个混合码模拟随机取样,产生分组报码,供爱好者提高抄收水平之用,速度低4档的听抄练习是专为初学者所设,内容是时间间隔较长的单字符。
设有PTT开关键,可以决定是否控制发射机工作,不需要反复通断控制线。
无论当前处于呼叫状态还是听抄状态只要电键接点接通则自动转到人工发报程序。
4分钟内不使用电路将自动关闭电源,只有按复位键才能重新开始工作。
先按住听抄练习键复位则进入短码练习状态,其它功能不变。
从开机到自动关机执行每个功能都有不同的莫尔斯码提示音。
本电路具有较强的抗高低频干扰的能力和使用方便的大电流开关接口,以适应不同的发射设备。
二、硬件电路原理硬件电路如图1所示。
设计电路的目的在于方便实用,以免在紧张的操作中失误,所以除了听抄练习键外其它键没有定义复用功能。
各键的作用在图中已经标出。
PTT控制在每次复位时处于关闭状态,每按动一次PTT功能键则改变一次状态,这样可以使用软件开关控制发射。
PTT处于控制状态时发光二极管随控制信号闪亮。
考虑到自制设备及淘汰军用设备与高档设备控制电流的不同,PTT开关管采用了2SC2073,可以承受500mA的电流,同时还增加了无极性PTT开关电路,无论外部被控制的端口直流极性如何加到VT3的极性始终不变,供有兴趣的爱好者实验。
摩尔斯电码摩尔斯电码是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。
它由美国人Alfred Vail发明,当时他正在协助Samuel Morse进行摩尔斯电报机的发明( 1835年 )。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种:点,划,每个字符间短的停顿,每个词之间中等的停顿,以及句子之间长的停顿。
摩尔斯电码的历史最早的摩尔斯电码是一些表示数字的点和划。
数字对应单词,需要查找一本代码表才能知道每个词对应的数。
用一个电键可以敲击出点、划以及中间的停顿。
虽然摩尔斯发明了电报,但他缺乏相关的专门技术。
他与Alfred Vail签定了一个协议,让他帮自己制造更加实用的设备。
Vail构思了一个方案,通过点、划和中间的停顿,可以让每个字符和标点符号彼此独立地发送出去。
他们达成一致,同意把这种标识不同符号的方案放到摩尔斯的专利中。
这就是现在我们所熟知的美式摩尔斯电码,它被用来传送了世界上第一条电报。
这种代码可以用一种音调平稳时断时续的无线电信号来传送,通常被称做连续波(Continuous Wave),缩写为CW。
它可以是电报电线里的电子脉冲,也可以是一种机械的或视觉的信号(比如闪光)。
一般来说,任何一种能把书面字符用可变长度的信号表示的编码方式都可以称为摩尔斯电码。
但现在这一术语只用来特指两种表示英语字母和符号的摩尔斯电码:美式摩尔斯电码被使用了在有线电报通信系统;今天还在使用的国际摩尔斯电码则只使用点和划(去掉了停顿)。
电报公司根据要发的信的长度收费。
商业代码精心设计了五个字符组成一组的代码,做为一个单词发送。
比如:BYOXO ("Are you trying to crawl out of it?");LIOUY ("Why do you not answer my ;AYYLU ("Not clearly coded repeat more clearly.")。
基于AT89C51单片机的摩斯电码播报系统的设计作者:张娜邓文波来源:《电脑知识与技术》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所示所示。
Morse电码自动译码系统摘要:Morse码自动译码方法,使用锁相环锁定Morse码频率,然后通过译码处理器捕捉Morse码并计算点码、划码及码间隔的时长,从而根据点码与划码的组合自动译出字符并显示到终端。
该译译码算法步骤包括定义译码窗口与字符析出、编制Morse码字符表。
软件编制分为高低电平时长的计算程序和字符析出程序两个主要部分。
0 引言Morse码人工译成报文最突出的是速度。
鉴于其频率具有稳定性,故提出基于锁相环电路和单片机的自动译码方法,即通过锁定Morse码频率,再依点码与划码组合识别出Morse 报文中的字符。
1 Morse码译码系统组成Morse码译码系统硬件包括:Morse码信号预处理及锁频与整形、电码捕捉与译码处理器、主控制器与显示终端。
系统框图如图1。
图1 系统框图1.1 Morse码信号预处理电路无线信号接收机收到Morse码电报以模拟信号输出,由于Morse码在调制解调过程及传输中存在干扰,导致接收机输出的模拟信号中混有很多噪声信号,需对输出的模拟信号进行放大、滤波等预处理,硬件电路如图2。
信号限幅电路的作用是为下面的锁频电路提供幅度稳定的输入信号。
图2 Morse码信号预处理1.2 Morse码锁频与整形电路系统采用锁相环电路来锁定Morse码信号频率,达到跟踪Morse码信号的目的,输入锁相环电路的Morse码时域波形及锁相环电路对应的输出波形如图3。
当模拟Morse码信号序列输入锁相环电路时,其输出端则出现交替的高低电平信号,即,点码与划码出现时为高电平,否则为低电平。
图3 Morse 码时域波形及锁相环电路对应的输出波形首先精确测出Morse 码的频率,将其作为锁相环VCO 的中心频率来设置外围电路参数。
当预处理过的Morse 码信号输入到锁相环电路时,其输出端将在点码与划码出现的时间保持高电平,其他时间为低电平。
当按正常规则输入Morse 码信号时,锁相环电路的输出端将出现高低电平交替信号,高电平保持时间依点码与划码的时值不同而不同。
课程设计报告——Morse电码发声器程序方案:0-9和A-Z的摩尔斯电码表如下图所示:将0-9和A-Z的摩尔斯电码制作为一个36行6列的二维数组,如下图所示当输入0-9或A-Z之间的字符时,程序会根绝具体的字符,从摩尔斯电码表的二维数组中选出对应该字符的一行数组输出,作为该字符的摩尔斯电码。
用一个字节的二进制数代表一个字符的摩尔斯电码,左起第一个1为起始标志(起始标志及之前的0无效)。
起始标志后的0表示点。
起始标志后的1表示划。
如:A 的报文信息 0000 0101B 的报文信息 0001 1000C 的报文信息 0001 1010按此规律建立一个报文信息表,报文信息表要按 0—9 、A—Z的顺序排列,发送时先查表找字符对应的报文信息,左移报文信息找起始标志,(起始标志及之前的0不发声),然后调用点划子程序发点划声响,发送一个字符循环8次则自动结束。
报文信息表同样为一个36行6列的二维数组,如下图所示:系统细节方案:点划间隔子程序是通过调用window.h 库中的Beep 函数是系统发出声音。
程序收到字符后,根据字符对应的摩尔斯电码表中的数组,输出该字符的摩尔斯电码,并且查找到该字符的01报文信息表,通过两个循环,调用点划子程序,完成电码的发音功能。
子程序及其流程图:点声音程序代码:点声音程序流程图 int dot()//点声音{Beep(7000,200);return 0;}划声音程序代码:划声音程序流程图 int dash()//划声音{Beep(7000,600);return 0;}Beep(7000,200) 点声音 返回0值 结束 开始 开始 Beep(7000,600)划声音返回0值结束点划之间间隔程序代码:int space()//电码间隔声音{Beep(0,400);return 0; }主程序详解:程序设计初期,用C++编写了一个控制台应用,先编写了一个电码编译的子程序: int tra(char c)//电码编译{if (c>=48&&c<=57){cout<<c<<"的摩尔斯电码是:"<<m[c-48]<<endl;for (i=0;i<8;i++){if (n[c-48][i]==1){j=i+1;break ;}}for (i=j;i<8;i++){if (n[c-48][i]==0)dot();//调用响铃点函数if (n[c-48][i]==1)dash();//调用响铃划函数space();}}else if (c>=65&&c<=90){cout<<c<<"的摩尔斯电码是:"<<m[c-65+10]<<endl;for (i=0;i<8;i++){ 开始 Beep(0,400) 点划之间间隔 返回0值 结束if(n[c-65+10][i]==1){j=i+1;break;}}for(i=j;i<8;i++){if(n[c-65+10][i]==0)dot();if(n[c-65+10][i]==1)dash();space();}}else if(c<48||(c>57&&c<65)||c>90){cout<<c<<"输入格式错误,不是0-9或A-Z之间的字符"<<endl;}return 0;}电码编译子程序流程图:在主程序中利用fstream库中的ifstream文件流又编写了一段可以打开文件的语句,主程序代码如下:int main()//主程序{while(1){cout<<"请选择输入字符或者文件路径"<<endl;//选择输入字符还是文件cin>>ch;if(ch=='c')//输入字符进行编括译{cout<<"请输入0-9或A-Z之间的字符"<<endl;while(1){cin>>c;tra(c);//调用编码函Sleep(500);//设置读取字符延迟}}else if(ch=='f')//输入文件路径进行编译{cout<<"请输入文件路径"<<endl;string filename;cin>>filename;ifstream infile(filename,ios::in);if(!infile){cerr<<"打开文件错误"<<endl;}while(infile.get(c)){tra(c);Sleep(500);//设置读取字符延迟}}elsecout<<"输入格式错误"<<endl;}}主程序流程图编译运行的结果:程序设计后期在windows窗体应用中创建项目,建立一个窗体,在窗体中完成字符、文件的打开、编译功能,在窗体中添加控件,将之前的程序写入各个控件的动作中,完成程序的功能,程序运行结果如下图:在textBox1中输入字符,程序将textBox1中的字符存入指向字符数组的指针中,再根绝数组中字符,找到相对应的报文信息进行编译发声。