当前位置:首页 > 电梯控制程序源代码(带流程图,功能分解、源代码)
《综合电子创新训练》研究报告
3.5 计算器
3.5.1 程序流程图
Figure 9 计算器数字扫描函数流程图
19 / 89
《综合电子创新训练》研究报告
Figure 10 计算器主函数流程图
20 / 89
《综合电子创新训练》研究报告
3.5.2 功能简介
程序初始化完成后,一层上按键按下后,电梯门打开,内部层数按键1、2、3、4分别对应数字1、2、3、4,四层上、三层上、三层下分别对应加法、减法和乘法,首先按下内部两个按键分别对应数学符号前后两个数字,在电梯上部的LED显示屏上显示按下的数字,然后再按下加减乘符号,则在电梯上部的LED显示屏上显示计算结果,若答案在显示范围之内,即在0到7的范围正确显示,如果超出这个范围,则01闪烁。
3.5.3 功能实现过程
程序初始化完成后,通过扫描内部按键,获取两个数字作为即将进行数学计算的输入,而这两个数字的输入又靠一个标志位i实现,当清零按下之后或者在初始化完成后还没有进行输入的情况下,i标志位为0等待输入,当采集进来一个数据之后,i标志位自动加1,之后当i==1的情况下在采集进来第二个数据,例如第一个按键按下内部按键1,则该部分代码如下:
while (i==0)
{
if((IOA&btin1)==btin1) { num1=1; i++; IOB=0x1000; DelayMs(100); dog(); }
第二次按下内部按键3,则该部分代码如下:
while (i==0)
if((IOA&btin3)==btin3) { num2=3; i++; IOB=0x3000; dog(); }
21 / 89
《综合电子创新训练》研究报告
之后在进行运算法则的选择,分别有加、减、乘三种,在按下运算法则的选择按键后,数码管显示最终的答案,如果运算结果没有超出显示范围的话那么就正常显示答案,如若超出了正常的显示范围,那么这个时候出现01闪烁以提示超出了运算范围。代码详见附录六
3.5.4 问题的解决及收获
计算器是我们比较有特色的一个程序,程序在实现上虽然比较简单,但是让我们对系统输入和输出的理解更加深刻,尤其是在帮助我们理解如何完成按键的实时扫描、并且记录相关数据这两点上起到非常重要的作用,比如说对外部案件的处理上,人手动按下外部按键的时间要比CPU扫过整个程序的时间来说长得多,这样如果没有延时函数作用而且又使用数组记录输入数据的情况下,可能会导致数组的溢出,从而达不到每次记录一个数据输入的目的。
22 / 89
共分享92篇相关文档