程序。
最后,在Proteus中绘制好电路图,检验无误后,给AT89S52加载.HEX程序文件,但并没有得到预期的结果。
(1) 反复排查中,发现首先程序中有语句错误,经过KEIL的反复调试,排除程序中的语法错误.
(2) 运行仿真,显示屏仍然无显示结果,经过反复检查调试,发现扫描顺序与显示屏引脚的连接顺序有不一致的情况。于是,通过仔细分析,对设计做认真修改。
5.4 keil与proteus联合仿真及调试
5.4.1 keil运行流程
Keil支持51系列的单片机的仿真,可通过系统设置生成51可执行的hex文件。Keil编译界面进行编译之前先进行工程仿真配置,工程配置界面如图5-1所示,在 “Device”中进行CPU型号选择,本系统中选用AT89S52芯片,“Output”中选择“Create HEX File”,以便生成AT89S52可执行的hex文件。也方便加载到proteus里的单片机中进行仿真,并且“Debug”中选择调试方式为proteus。在keil中编写程序并进行编译,生成hex文件。
图5-1 Keil工程配置图
5.4.2 protues 运行流程
Proteus ISIS的运行界面是一种规则的界面窗口。
Proteus程序被运行后,首先就是软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中输入自己所需元器件的前几个字符,点击确认后将元件放置在图中并企鹅调整方向,然后位置,设置其参数值,最后进行连线。
5.4.3 仿真结果
5-1仿真总电路图
5-2 初始界面显示
5-3 输入单价显示
5-4计算总价格显示
5-4调整重量显示
5-5 计算总价结果显示
5-6 价格清零显示
5.5 本章小结
本章结合软硬件对整个系统进行了整体调试。首先将自己编写的程序在Keil μVision3中进行编译,尽量发现并改正其错误的程序,然后将编译最后生成的HEX文件写入单片机,得出了完整的调试结果,最后结果表明我的设计方案正确,测量准确,实现了预期功能。
结论
本设计的研究课题为智能电子秤的设计,要求能够自主分析电子秤的工作原理、基本功能,最后编写软件程序连接硬件电路来实现功能。电子秤基本功能包括显示和调节,需要单价、质量、总价的正确显示和单价大小调整功能。另外需要说明的是,各个模块是可以替换的,本次设计可以用其他显示器代替液晶显示器,如LED数码管显示等。键盘方面可以用非编码键盘代替4*4矩阵键盘。不管怎么换,都必须熟悉单片机原理和结构,只有这样才能灵活运用。这次毕业设计不但使我理论知识得到巩固,而且也使我的检索能力得到提高,本设计经过反复的及调试,基本上能实现设定的要求,
本系统用单片机AT89S52为主控内核,显示那一块使用LCD1602来去完成显示的功能,价格控制和显示切换模块使用4*4矩阵按键电路的方式。本设计选用编程语言C语言它具有结构性、可读性、功能性强的优点,并且在Keil uVision3的开发环境下编辑系统作用程序。采用模块化编程思想,并且综合硬件电路作集体调试,只为最后能更好的履行电子秤的功能。
作为单片机初学者,通过这次实践,了解了电子秤的用途及工作原理,熟悉了用KEIL编程、PROTUES的使用等,提高了个人在很多方面的认识。也顺便巩固了所学知识,掌握单片机工作原理,熟悉软、硬件系统设计的过程,锻炼实际操作能力、查阅资料能力,以及培养团队合作的精神,为今后工作打下了一定的基础。 但是这次的毕业设计也使自己专业基础掌握的不牢固的缺点暴露出来,例如缺少将专业知识综合应用的能力,对材料本身的不清楚,对于相关的专业知识理解不透彻,遭遇难关很容易就生气,而且也缺乏耐心,实际动手能力差等。
事实上,作为一个单片机初学者应该把数据传输、外部数据中断、存储器扩展等基本操作熟练掌握等等。此次设计中主要精力集中在软件设计上,在硬件电路原理图与印刷电路图的研究还不够熟练、透彻。因此今后应该多找几个例题稍作练习。