为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器

2017-09-02 13页 doc 30KB 34阅读

用户头像

is_998870

暂无简介

举报
不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器 不会莫尔斯电码也能发报——易做易用的 英尔斯电码自动发生器 PC?M 不会莫尔斯电码也能发报 —一 易做易用的英尔斯电码自动发生器 II一个故事谈起: /叭.2b世纪二战时期,无线电技术发 挥了巨大的作用.英国的雷达,法国 的声纳以及各国使用的无线电通信, 都成了克敌制胜的有力武器.而且某 些方面的发展,可说已经超越了时 代.有这么件事:有个为某国服务的 谍报员,他不会莫尔斯电码又不愿意 邮寄或通过别人转发情报.于是间谍 机关居然给他特制了一个雪茄烟盒子 大...
不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器
不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器 不会莫尔斯电码也能发报——易做易用的 英尔斯电码自动发生器 PC?M 不会莫尔斯电码也能发报 —一 易做易用的英尔斯电码自动发生器 II一个故事谈起: /叭.2b世纪二战时期,无线电技术发 挥了巨大的作用.英国的雷达,法国 的声纳以及各国使用的无线电通信, 都成了克敌制胜的有力武器.而且某 些方面的发展,可说已经超越了时 代.有这么件事:有个为某国服务的 谍报员,他不会莫尔斯电码又不愿意 邮寄或通过别人转发情报.于是间谍 机关居然给他特制了一个雪茄烟盒子 大小的电台,它不使用电键,而有着 一 个类似自动电话拨号盘的装置,接 通电源工作起来,用这个拨号盘把情 报逐字逐句输入电台并存放在磁性纸 带上,然后按一个按钮,电台和收信 端频率自动对准,一旦电台上的调谐 指示管指示电台频率已经自动调谐准 确,就按下另一个按钮,于是先前储 存的信息就会在0.6秒的时间内快速发 送出去.在那个只有真空管和继电器 的时代,要打造这么个东西,真可谓 费尽心机! 半个多世纪过去了.时至今臼, 由无线电派生出来的电子技术的发 展,大大超出人们的想象,通信模式 一 再演变,摩尔斯电码已经不再重要 并淡出了历史舞台.但是众多业余无线 电爱好者仍然在孜孜不倦地学习使用这 个爷爷辈的技术,外人看来神秘的嘀嘀 哒哒.还是吸引着世界各地的火腿…… 君不见,在每年CRSA的升级考试中, a,还是三级以上必考项目呢! 要学会摩尔斯电码,先得学会 "听",要从长短不一的嘀哒中正确 辨认出字母和数字,的确要下一番 功夫,现在电脑普及,可以通过例如 Koch软件帮助我们学习,用它来循序 9I无线电2009.05 渐进地练习收听随机性的电码.最 终达到熟能生巧.条件反射的程 度.也可以说学莫尔斯电码有点类 似学语言,而反观我if]d\时学习语 言的过程,实际上都是由最简单的 词例如"妈妈"开始学习的,谁也 不会教给小孩"土拉它"这样毫 @2JJ~鲁(BH7PCK) 无意义的音节.同样道理,我想.如 果能够在学习时,一开始就练习分辨 一 些最基本最简单的通信语句如"CQ DE…"是否有所帮助呢?因此就准备 制作一个练习器,更准确地说是一个 练听器,让我可以自主地用按键输入 字符报文并储存起来,然后把报文翻 译成正确的莫尔斯电码播放出来,即 使我还没有电台,也不具备操作CW的 资质,还是可以从这个小机器自主体 验收听电码的感觉.这个"练听器" 也可说是一个软件控制的硬件"莫尔 斯电码发生器",它的外观见图1,功 能如下: 1.脱离电脑,用小键盘自主输入报 文,包括空格符最多可达320个字符; 2.通过小键盘对输入的报文内容 进行查看和修改等简单编辑; 3.用按键控制启动和停止循环 播放由一段报文转换得到的莫尔斯电 码,速度可用按键调整; 4.可以把输入的报文统统储存到 EEPROM中,断电后内容不会消失; 5.可以模拟出一些特殊的连发字 符如AR,BT等; 这样一方面可以用它学习常用的 CW通联短语,简语,一方面也能帮助 我们练习听懂莫尔斯电码,当然你也 可以输入无意义的电码组合来练习听 力.以前用真空管和继电器很难完成 图 的任务,现在用单片机可说是轻而易 举就解决了.下面切入正. (电路构 成)\-.................................................................................................................................. 一— 电路原理见图2,可谓非常简单, 其中核心就是AVR单片机ATmega8最 小系统以及字符液晶模块1602,再就 是自制的2O键小键盘和稳压电源.硬 件就是这么几个,见图3.ATmega8 具有8KBR0M,512BRAM,512B EEPR0M,出厂内带1MHz时钟,内部 资源丰富.22个I/O引脚直接就可以使 用,可通过简单的下载线编程,是一种 性能高,体积小,价格低的MCU.现 在用它的PD口作液晶模块1602的数据 口,PC5,4,3fJ@用作液晶控制口. 液晶模块采用8线标准接法.PB口和 PC1用作20键矩阵小键盘行列线输入, 输出.串有音量调节可变电阻的有源讯 响器由PC2输出驱动.具体结构的特点 是:1.采用了模块化设计,最小系统板 上MCU的全部引脚都连接到插针排, 各功能模块之间通过插针用"杜邦线" 互连,这样各部分的配置十分灵活,例 如,你也可以用PB口接LCD数据口, PD日接JJ,键盘,只要拔插一下,程序 中重新定义口线即可.很方便.它上述 各部分都是通用的,你将来也可以把它 全拆了用在别处而不用动烙铁.2.电源 不会莫尔斯电码也能发报 R1 lk望璺凄差山8g8苫墨8占吾吾 R2 22'1'7.5 一一2r C6上 o.1uT 上C1 R510kT0,1 AImegal8 RSTpcs PDOPC4 PD1PC3 pD2PC2 PD3PC1 PD4Pc0 VCCGND GNDAREF P髓CC PB7PB5 PD5PB4 PD6P83 PD7P82 PB0PB1 , 7 :7 1, . R3』I.工?工上 C2O.1 SCK , _一 .一 , , , ?一 ?一 , ., l, _一 _一 _一 , _一 ,_一 / '一 ., O R4 tk VD2 R5 33O 按键分布 81S283S4$17 S5S8S7S8$18 S9S10$11S12S19 S13$14S'5$16$20 按键功能 S':AC.1 S2:D.F,2 S3:G.J,3 S4lK.M,4 S5fN.P.5 86:Q.S,6 S7:T.V,7 S8:\^『..Z,8 S9:0,9.a.k,b,s $10:各种符号 $11:读出EEPROM $12:显示上滚1行 $13:存入EEPROM $14:播放,停止 $15:左移1 $16:显示下滚1行 $17:播放加快 $18:播放减慢 $19:全部清除 $20:右移1 上使用了低压差稳压块1117—5,优点 是体积,功耗和发热都比常用的7805 小.符合时代潮流.外部电源也无需 gv,7.5v就足够.注意:电源输出端发 光管并非可有可无,它防止在脱离负载 的情况下拔掉整流插头.致使输出电压 可能比输入电压高而损坏稳压块.3.用 有源讯响器作发声元件.体积小,声 音洪亮,也便宜,ATmega8可以直接驱 动.制作时可选择直接驱动或经晶体管 VT19013驱动. (工作原理) 程序流程:大流程也简单.上 电以后首先MCU和LCD初始化,启动 T/C2定时/计数器并开中断,中断周期 大约100ms.接着进入程序循环:键查 询,键扫描和键处理.程序主要功能 集中在以下几点: 1.报文输入:通过小键盘输入26 个英文字母和若干标点符号并在LCD上 显示.在MCU的RAM区开辟一个320B 的缓存区text_page[320】.用来临时保 存输入的字符.这些信息也可以转存 到同样大小的E嗍M中,以便断电后 继续保存信息.为了用较少的按键输 入字符,采取了类似手机那样按键复 用的办法,例如对于第一个键.按第 一 下是A,再按是B.再按是C,再按 是1,如此轮流进行.从LCD1602的下 行显示输入的报文,用左移键和右移 键控制字符输入的位置.输入一个字 符按一下右移键,一行输满了16个字 符,自动向上滚行并存入缓存区.也 可通过上移键和下移键搜索上一行和 下一行的内容并加以修改. 2.把输入的字符转换为莫尔斯 电码:输入和缓存的字符都是1B的 ASCII码,而莫尔斯电码却是长短不 一 的电脉冲,例如字母E,就是"." ("嘀"),数字0是"…一"("哒哒 哒哒哒")但是"嘀","哒"和它 们之间的间隔长短是有严格规定的: " 一 "等于3个".",字母内,"嘀 哒"间隔等于1个".",字母和字母 的间隔等于3个"",字和字的间隔等 于7个".".我们可以用二进~jbit表示 莫尔斯电码,用"O"表示间隔,那么 "1"表示","."111"表示"一", 这样就有转换的基础了.如图4所示. 表示DEBGE的莫尔斯码和对应的二进 数表示.从中可以发现,要么脉冲是 1,要么是111.没有11的情况存在. 这点很有用!下面再说.为了能够用 2009.05无线电067 一?工 PC?MCU 图3 查表的方法~BASCII转换为莫尔斯码, 首先把莫尔斯码都规格化为"无符号长 整型数"即字长4B(32bit),不管原来 莫尔斯码的长短,不足部分用0凑整, 这样,字母"E.'的十六进制代码就是 0X80000000,字母"D"就是0XEA O000O0,为了判断字母是否结束, 我们在最右边的1后面留出3个0(字 母之间的空档),紧接着加上2个1表 示字母结束,这样字母E的代码进一步 变为0X8CO00000,字母D的代码变 为0XEA300000,通过这样的编码变 换,就具备了输出莫尔斯电码的条件. 3.处理和输出莫尔斯电码:首 先我们在单片机的FLASHROM区建 立长整型数的查找表ABCtab[30](字 母)~I]SYMBtab[26](符号)能够 把键盘输入的字符的ASCII和上述变 换后的莫尔斯码对应起来.在程序运 行开始,就启动了单片机内部的自动 装载定时/计数器(本制作用了8位定 时器T/C2),事先选择分频比和预 置值,使得每100ms左右发生一次中 断.按下"播放/停止"键,标志变量 playback_counter置位(再按就清0).在 text_pageD中找到符合当前显示的报文 起始并在查找表中查出第一个字符对 应的莫尔斯码,中断时间一到,首先 刷新液晶显示1602,接着按照上述标 ol,8无线电2009.05 志playback_counter决定是否 输出这个莫尔斯码.如果要 求播放输出,则首先判断当 前MSB是否出现有连续2个 1(而不是3个1),一旦出 现说明当前字符已经播放完 毕,就要取出下个字符,否 则判断其MSB是0还是1来 给PC2相应置低或置高.然 后代表莫尔斯码的长整型数 左移一位,下次中断接着对 PC2置高或置低.仅仅1个 高发"嘀",连续3个高发 "哒".因为触发两次中断 的时间间隔100ms相对于单片机运算 处理需要的时间长很多很多,因此执 行中断程序产生的时间对实际播放的 "嘀""哒"的时间准确性,可是说 完全没有影响.而这个10OrRs也就是一 个"嘀"的时间,那么"哒"也就是 300ms.嘀哒长短的比例关系由编码决 定,绝对时间则由MCU定时器的设置 决定,前者除了编程外不能修改,保证 了正确的时间比例,后者可以在使用时 调整,也就具有了快慢调节功能. 4.由此可见,这个小机器,硬 件并不复杂,关键就是通过程序把几 个单元有机结合为一个整体,和谐一 致地运行,程序重点是按键处理.为 了能够像硬件一样复用这些程序,除 了自行宏定义相关引脚外,把液晶相 关和查找表都单另作为LCD1602.h和 chaGab.h头文件,使得.C文件更加紧 凑.LCD1602.h头文件也可以不加修改 地用于别处. (制作要点),, .......................................................................................................................................... / 1.电路板就是用的"洞洞板", 基板有环氧板和胶纸板两种,前者贵 一 点,但是焊盘比较牢固,反复施焊 只要时间不是太长一般不会脱落.纸 板就差些,使用要注意,经受不起元 件反复拆装.另外焊盘有方形的,也 有圆形的,后者容易形成光滑的焊 点,但焊盘问也容易搭锡.买的时候 注意一下仔细观察板子是否平整?焊 孔间距是否严格一致?焊盘是否光亮 如新?总之不要把劣质品买回来. 2.稳压电源用了低压差稳压块 1117—5,一般销售的都是贴片元件, 本来使用在印制板上要利用焊在大面 积铜箔上,散热不需要另加散热器. 在洞洞板上用最好焊一片紫铜片辅助 散热,铝片因焊不上不能用.我是用 的一小块镀锡铁片(废罐头盒)做散 热片用,效果虽然不如铜片,但因为 元件的发热量比7805/j\得多,所以长 时间使用也只有微温.注意了,外面 那个7.5V整流插头,可不能随便使用地 摊上的劣质廉价货,电源中变压器小, 线细,负载稍大些输出电压就降得很厉 害.造成后面稳不了压. 3.LCD是MOS元件,成品非要焊 线使用不可.它虽然不至于"摸死摸 死,手摸就死",可是你的烙铁漏电 吗?如果插上交流电源后,烙铁头能 够让试电笔发光(甚至微亮),说明 对地电压已在氖泡起辉电压60V以上, 就可能损坏液晶内部电路,因此要么 拔掉电源利用余热焊接,要么改造烙 铁,使用单相三线插头,烙铁金属外 壳接中间那根保护地线.好在现在住 房配线一般都用了漏电开关进线,带 保护地线的单相制.只要配线规范安 装,接地是可靠的.为了掌控焊接, 建议烙铁一定要使用温控装置,最简 图4 不会莫尔斯电码也能发报 单的就是到五金店买一个吊扇用的电 子调速器,用它来控制烙铁温度又便 宜又方便. 4.键盘用的小轻触式按键,要注 意键柄长度,如果不打算用外壳也无 所谓,否则要选择合适的柄长. 5.模块之间连接使用的"杜邦 线"电子市场就能买到.不过一般较 长,自己制作就要买导线,端子,外 壳和压线钳.如果没有条件自己制 作,那也就只能一焊了之了.或者就 采用常规的大板结构,用一块大板把 单片机和键盘,液晶统统装上去,不 要盒子.不过成品学习板一般都不会 提供20个的矩阵按键,所以使用上有 限制. 6.如果要使用外壳,就用热熔胶 把电路板的塑料垫柱粘结在外壳的适 当位置.我用的是一个透明的塑料糖 果盒子,比较美观. (编程), -..................—......................................................................../ 1.使用WINAVR$~AVRSTUDIO 4.0,都是免费的开发工具.使用C语 言编程很方便.为了实现字符按键一 键多用,程序中针对这些键设置了各 自的具有static型的计数变量.字母 A,Z和数字1,8共使用了8个键,0, 9和几个特殊字符,符号使用了2个 键,其余10个键都是功能键.程序中 使用了较多的数组操作,因为要具体 到1602显示的每个字符而不是字串, 所以按照下标直接操作数组.头文件 LCD1602.h中原有的DispListChar0函数 以空格作为字符串结束,而现在大量 存在空格前后的字符,故不好用,另 外自编了一个DispLine()函数加进去. 把"<"和">"这两个莫尔斯码不使 用的符号作为控制报文播放起始和结 束的标志.考虑到实际发报时有少数 连发的要求,即把两个字母合并在一 起,三个点的间距变成一个点的间距 (例如结束AR),特地设立了几个小 写字母a,b,k,s特殊编 码以便和后续常规字母 组合成连发符号(AR, AS,BT,KN.另tl,s5 组合出表示错误的电码 " …… .. ").另外"清 除键"会把缓存区全部用 空格字符填满(ASCII为 32),为了避免误操作, 需要按2次才起作用. 图5 2.鉴于这个练习器需要在 EEPROM中保存数据,因此必须把熔丝 位"BOD"编程为使能,以免在起动 或关机时刻,由于电源电压的缓慢变 化造成误写旺PRoM. 3.定时计数器T/C2按照分频比 1/1024设置.ATmega8的内部默认时钟 振荡频率是1MHz,再配合计数器的预 置值OCR2=1O0;使得触发一次中断大 约需时100rns. 4.编程调试采用分部进行的办 法,先一个个解决问题,最后综合起 来.例如先把液晶搞亮了,能够正确 显示,再搞按键矩阵,然后逐个实现 按键功能,最后增加定时中断中处理 输出的部分.尽管AVR的驱动能力较 强,直接带动小讯响器没有问题,不 过还是加了个9013驱动讯响器和发光 管,可以任选.输出1讯响器就开叫. 输出0讦l响器就哑巴. 5.特别注意的是,固然1602的刷 新放在主程序循环中似乎也可以,是 的,不启动定时器中断的确可以.但 是我们从头到尾都少不了这个中断. 极有可能中断会打乱了液晶的刷新, 一 旦打乱因为你在程序循环中不能再 对1602初始化,结果就麻烦了,所以 刷新放在中断处理中. 6.因为ATmega8没有JTAG接口, 故如果不使用昂贵的专用开发器,也 就只能边改代码边测试运行,最后达 到符合要求.优化编译成的.hex文件大 小为3l2KB. (使用),, ........+...,,..................,,...,....,......,................................................/ 1.插上电源液晶亮(开背光) 上行显示…MorsCode***,下行空白. 最左有个"一"说明自检完成.如果先 前已经在EEPROM中存有报文,按读 出键,液晶就显示最前面的报文.不 然就一个个字母地输入报文吧.首先 输入n<,其中n可以是数字也可以是字 母,接着用字符键和右向键逐个将字 母,空格,输入报文.当下行输入满 了再按右向键,下行内容会滚入上行 显示并存A.te~_pageB数组.一段报文 输入完了用>结束,要继续输入另外的 报文,就必须另起一行. 2.要播放某段报文,就先用上滚 或下滚键使得该段报文的开头(n<) 位于1602的上行.然后按下播放键, 程序就在text—page[】数组中搜寻符合 起始条件的报文,查表转换.定时器 中断就检测,输出并进行后续查表, 转换,喃嘀哒哒就从讯响器中响起来 了.再按播放键就停止.想听另外一 段,就用上滚或下滚键让该段报文的 开始部分在1602上行显示,再按播 放键就行了.按照定时器的设置, 默认的发报速度为每分钟12组(用 "PARIS"实测),通过按下加速或减 速键可以使速度加快或减慢.另外按 下存入键,已经输入的报文内容就会 存进M中了. 最后,如果我们让PC2通过晶体管 同时驱动一个小型继电器.那它变成了 什么东西呢?我不说你也知道了.圆 2009.05无线电0雅
/
本文档为【不会莫尔斯电码也能发报——易做易用的英尔斯电码自动发生器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索