哈尔滨远东理工学院学士学位论文 表4.3 数码管共阴极字形代码表 显示字型 0 1 2 3 4 5 6 7 8 9 g 0 0 1 1 1 1 1 0 1 1 f 1 0 0 0 1 1 1 0 1 1 e 1 0 1 0 0 0 1 0 1 0 d 1 0 1 1 0 1 1 0 1 1 c 1 1 0 1 1 1 1 1 1 1 b 1 1 1 1 1 0 0 1 1 1 a 1 0 1 1 0 1 1 1 1 1 段码 3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh 判断闭合键所在的位置: 在确认有键按下后,即可进入确定具体闭合键的过程.其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平.在确定某根行线位置为低电平后,再逐行检测各列线的电平状态.若某列为低,则该列线与置为低电平的行线交叉按键就是闭合的按键.把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个位,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下.
4.2 程序总编
4.2.1 主要变量
本设计的程序代码主要设置变量如下表
表4.2 程序设计主要变量表
SIGN FLAG WRONG COUNT SIZE SIGNCOUNT XIAOSHU DIVKEY CUNZHI 存运算符(+.-.*./) 用第几个数组,(出现非运算符前为0,出现运算符后为1) 输入多于4个时错误标志位(0对.1错) 输入0~9数字的个数 减数大于被凑数时为1 输入运算符的个数 存一位小数的值 运算除法时置为1 全局变量 -13-
哈尔滨远东理工学院学士学位论文 4.2.2 程序模块
主要的程序模块分为:
①显示程序:实现将全局变量CUNZHI中的值进行动态数码显示.入口参数无,所用端口功能为P1口送显示码,P2口进行公共端扫描,返回值无;
②处理程序:用来实现计算器的加减乘除运算.全局变量为key.CUNZHI.SHU[0].SHU[1].FLAG.SIGN;
③键盘扫描程序:进行键盘扫描,判断是否有键按下,全局变量为k,局部变量为i,j; 调用函数为CHULI(key);
④主程序:实现计算器加减乘除运算并显示,全局变量为CUNZHI.FLAG.SIGN,调用函数:disp().JIANPAN(),返回值无. [13]
(具体源程序参见附录四)
4.3 本章小结
本章详细说明了MSC-51单片机计算器的软件设计过程,阐明了该计算器软件方面的编写流程及各个设备的程序思路.同时简单描述了源程序的变量设置以及主程序和相关子程序的功能.
本章是整个设计中的重要环节,是计算器得于实现的中心内容.
-14-
哈尔滨远东理工学院学士学位论文 第5章 实验环境与调试
5.1 软件实验方法
1.软件工具
单片机开发的时候除必要的硬件外,同样离不开软件的编写.而我们写的源程序要变为 CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,但是目前已使用手工汇编的方法已经极少使用了.机器汇编是通过汇编软件将源程序变为机器码,对于 MCS-51单片机的程序汇编非常实用.
在软件设计部分我们已经对程序的实现进行了初步编写,但是能否正常运行我们还尚未知道,需要利用相关软件进行调试对错误的地方进行修改,并且将编写的程序转换为机器码.
C51工具包的整体结构中,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑.编译.连接.调试.仿真等整个开发流程.开发人员可用IDE本身或其它编辑器编辑C或汇编源文件.[14]
2.程序编译
我们使用uVision 的文本编辑器编写源文件,可以是汇编文件(程序扩展名为*.ASM),也可以使用C语言文件(程序扩展名为*.C),并将该文件添加到项目中去.一个项目文件可
以包含多个文件,除了源程序文件外,还可以是库文件.头文件或文本说明文件.这里我们使用的是C语言进行编写.
图 5.1 KEIL UVISION4程序编写环境
3.通过uVision 2 的相关选择项,配置编译环境.编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序编写之后,会生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则可
-15-
哈尔滨远东理工学院学士学位论文 以返回修改源文件中的错误后重构整个项目.. 4.对没有语法错误的程序进行仿真调试.
5.PL-2303 Driver Installer,这是一个可以将电脑的USB接口转为可接受串口数据的驱动程序.因为实验板上有PL-2303芯片,调试成功后就可以直接将
HEX文件写入到单片机应用系统的ROM中.
5.2 实际焊接及其注意事项
拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确.若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系.将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求.
新烙铁使用前,应用细砂纸将烙铁头打光亮,通电烧热,蘸上松香后用烙铁头刃面接触焊锡丝,使烙铁头上均匀地镀上一层锡.这样做,可以便于焊接和防止烙铁头表面氧化.旧的烙铁头如严重氧化而发黑,可用钢挫挫去表层氧化物,使其露出金属光泽后,重新镀锡,才能使用.
电烙铁要用220V交流电源,使用时要特别注意安全.应认真做到以下几点:
① 电烙铁插头最好使用三极插头.要使外壳妥善接地.使用前,应认真检查电源插头.电源线有无损坏.并检查烙铁头是否松动.
② 焊接过程中,烙铁不能到处乱放.不焊时,应放在烙铁架上.注意电源线不可搭在烙铁头上,以防烫坏绝缘层而发生事故.使用结束后,应及时切断电源,拔下电源插头.
③焊接电路板时,一定要控制好时胡间太长,电路板将被烧焦,或造成铜箔脱落.从电路板上拆卸元件时,可将电烙铁头贴在焊点上,待焊点上的锡熔化后,将元件拔出.焊接时,要保证每个焊点焊接牢固.接触良好.要保证焊接质量.[15]
5.3 本章小结
本章简单说明了实际动手焊接单片机的实验方法,当我们编写出程序时,经过keil调试后检查无误,通过USB接口转串口驱动程序,与电脑连接后,再将程序烧入AT89S51芯片.
经过实验板调试可用,本次设计就基本完成了.
-16-
哈尔滨远东理工学院学士学位论文 结 论
毕业设计是一个通过不断思考.发问.自己主动学习.提高的过程.这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼.一方面通过MSC-51单片机等一些器件的设计让自己把以前的许多的知识在一起进行磨合,使以前学的很多相关课程都得到了运用;另一方面在用烙铁实际焊接单片机时,这个过程中让我获得了在电路设计中亲自动手的实践经验,可谓极其珍贵.
通过努力,我总算顺利完成了基于MCS-51单片机的计算器设计,达到了预期的目标.但因为时间仓促,一些不足还是再所难免,如电路板的焊接失误导致实验器材损坏,程序的设计暂时只能完成简单的四则运算,这些都还值得我去思考和改善.
但我相信,这次毕业设计的经历,我更多的是掌握了一种学习的方法和实践研究的精神,这些才是对于我最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力.同时,仅仅是完成了设计还是不可以自我满足的,我们要认真的思考设计过程中遇到的问题,多查资料,将理论与实际相结合思考,常总结错误的教训,才能更好的走向成功.
以后无论是对此次的设计进行优化,或是重新进行新的设计,我都有了一种自信,只要做事尽心尽力,就一定能够得到回报.
-17-