高速门厂家
免费服务热线

Free service

hotline

010-00000000
高速门厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

单片机高级语言程序设计与应用

发布时间:2020-06-30 17:33:35 阅读: 来源:高速门厂家

1引言

本文引用地址:在隧道窑温度控制系统、自助式寄存柜等多个实际应用中,我们利用单片机高级C语言编制应用程序,满足了用户对各项性能参数的不同要求。下面以一实例,介绍C语言在应用程序设计上的优点。

2系统结构

系统由电器和机械两部分组成。机械部分由寄存柜箱位、电控锁组成;电器部分由单片机、控制继电器、操作面板、工作状态指示组成。

3系统功能程序设计

系统程序有以下部分组成:主程序、存取程序、监控管理程序、控制输出程序、柜体箱位排序程序及键盘中断、时钟定时中断和报警程序。下面主要介绍箱位排序程序、存取程序和防止密码重复程序。软件设计采用了模块化结构设计方法,所有程序采用单片机高级C语言编写。

主程序完成各个外设接口初始化,然后,进入键盘采样处理显示程序,由时钟中断程序完成显示扫描更新及采样处理。下面是箱位号初始化子程序。

上述程序中的jicunnum[]变量用于保存箱位的箱位号,初始时的jicunnum[i]=i(i=1,2,…,32),即所有的32个箱位分别设置为1,2,…,32,以便于箱位状态指示和接受继电器的输出控制,完成柜体箱位的闭锁控制,因为箱位电控锁的开启是按照箱位对应的箱位号进行操作的。例如,对应5号箱位初始号码为jicunnum[5]=5,其他依此类推。

存放物品时,在有空箱位情况下,系统随机自动产生一个12位密码,并保存起来,同时将该密码打印出来由顾客自己随身携带。

上面程序中的第3行rand()是随机数发生子程序,程序中的2~4行随机自动产生一个12位密码,并以十进制的形式保存在变量Mimanew中。

为了防止本次产生的密码与当天已经产生的密码重复,程序中设置了判别程序。程序中的5~7行将随机产生的12位密码与原来已经产生的其他密码进行比较,其中jiold[]变量用于存放当天已经产生的密码,totalcount变量为已经产生密码的个数。

若比较的结果相同,说明新产生的密码重复,程序返回,再重新产生一个12位密码。若不同,说明密码没有重复,将新密码保存在密码变量jicun[]中,同时自动打开一个新箱位,对应箱位的占位指示灯亮。8~11行调整密码计数指针(count)和当天已经产生密码计数指针(totalcount)。

当柜体箱位己满,也就是count大于32时,工作状态指示箱位已满,提醒后来的顾客不要继续在该寄存柜操作。

取出物品时,通过操作面板输入12位数字密码,12位密码数据分别存放在变量display[i](i=1,2,…,12)单元,显示程序将display[]中的数值在数码管上显示出来。控制系统将这次输入的密码与原来保存在变量jicun[]中的12位数字密码进行比较,若相同,打开原来存放物品对应箱位门锁,并熄灭相应箱位的占位指示灯;否则,不执行任何操作。取出物品程序如下:

51单片机相关文章:51单片机教程

c语言相关文章:c语言教程

泰安防静电工作服定做

济宁职业装制做

河北制做职业装