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

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

ID:22318390

大小:54.00 KB

页数:5页

时间:2018-10-28

单片机高级语言程序设计与应用_第1页
单片机高级语言程序设计与应用_第2页
单片机高级语言程序设计与应用_第3页
单片机高级语言程序设计与应用_第4页
单片机高级语言程序设计与应用_第5页
资源描述:

《单片机高级语言程序设计与应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

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

2、第1摘 要:以实例介绍用C语言编写应用程序的优点,并给出了具体程序。  1引言  在隧道窑温度控制系统、自助式寄存柜等多个实际应用中,我们利用单片机高级C语言编制应用程序,满足了用户对各项性能参数的不同要求。下面以一实例,介绍C语言在应用程序设计上的优点。2系统结构  系统由电器和机械两部分组成。机械部分由寄存柜箱位、电控锁组成;电器部分由单片机、控制继电器、操作面板、工作状态指示组成。系统结构如图1所示。500)this.style.ouseg(this)">3系统功能程序设计  系统程序有以下部分

3、组成:主程序、存取程序、监控管理程序、控制输出程序、柜体箱位排序程序及键盘中断、时钟定时中断和报警程序。下面主要介绍箱位排序程序、存取程序和防止密码重复程序。软件设计采用了模块化结构设计方法,所有程序采用单片机高级C语言编写。  主程序完成各个外设接口初始化,然后,进入键盘采样处理显示程序,由时钟中断程序完成显示扫描更新及采样处理。下面是箱位号初始化子程序。 500)this.style.ouseg(this)">  上述程序中的jicunnum[]变量用于保存箱位的箱位号,初始时的jicunnum[i]=i(i=1,2,…,32

4、),即所有的32个箱位分别设置为1,2,…,32,以便于箱位状态指示和接受继电器的输出控制,完成柜体箱位的闭锁控制,因为箱位电控锁的开启是按照箱位对应的箱位号进行操作的。例如,对应5号箱位初始号码为jicunnum[5]=5,其他依此类推。  存放物品时,在有空箱位情况下,系统随机自动产生一个12位密码,并保存起来,同时将该密码打印出来由顾客自己随身携带。密码随机产生程序如下: 500)this.style.ouseg(this)">  上面程序中的第3行rand()是随机数发生子程序,程序中的2~4行随机自动产生一个12位密码,

5、并以十进制的形式保存在变量Mimaneac=ReadKey();  2.if(Mimac!=0x11){  3.if(Mimacount<numset){  4.Mimac--;Mimac=c0x00f;  5.display[Mimacount]=Mimac;  6.Mimatemp*=10;  7.Mimatemp+=Mimac;  8.Mimacount++;goto;}  9.gotoendt;}  10.for(j=0;j<count;j++){  11.if(jicun[j]=Mimatemp){  12.orinum=

6、j;}}  13.endt:return();}  上述程序中的第1行ReadKey()是键盘按键读取子程序,2~9行等待读取操作面板输入12位数字密码,并将输入的密码以十进制的形式暂时保存在变量Mimatemp中,程序中的第2行用于判断是否退出键。10~12行判别输入的12位密码是否与原来某一内存变量jicun[]的密码相同,若相同,打开原来存放物品的箱位门锁;否则,不执行任何操作。第3行Mimacount用于计算密码输入个数的位置,第4行Mimac用于保存密码的一位数字,第12行orinum用于保存对应密码的箱位号。numset

7、是初始设定的密码位数,这里,numset=12。  为防止恶意操作,密码不相符时,可重复输入三次,然后设置禁止操作标志位,自动闭锁延时一段时间(例如3分钟),再允许操作;在时钟定时中断程序中对设置的禁止操作标志复位,恢复正常操作。  前面已经介绍,jicunnum[]变量用于保存箱位的箱位号,初始状态为jicunnum[i]=i(i=1,2,…,32)。但是,经过一段时间操作运行以后,jicunnum[]的原始状态已经发生了变化。假如,现在第7位顾客取走了物品,jicunnum[7]的内存已经不是7,为实现箱位状态指示和接受继电器控

8、制输出,必须保证操作的密码和其箱位号一致,每次取出物品后,要对箱位号变量进行重新排序。下面是箱位的排序程序。  voidsort(){  1.count--;  2.tempnum=jicunnum[orinum];  3.for(i=orinum;i<count;i++){  4.jicun[i]=jicun[i+1];  5.jicunnum[i]=jicunnum[i+1}  6.jicunnum[count]=tempnum;  7.return();}  程序中的第1行为计数器减1操作,说明物品已经被取走,空出一个箱位,

9、第2行保存密码所对应的箱位号,3~5行将当时空的那个箱位后面的箱位号(jicunnum[])及对应密码(jicun[]),挨个往前依次移动,直到已经存放的箱位i=count逐个移动完毕。  程序中的第6行把已经取出物品的箱位号排到最后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。