您好,欢迎来到刀刀网。
搜索
您的当前位置:首页作业1:单片机应用的设计构想

作业1:单片机应用的设计构想

来源:刀刀网
生产线货物自动计数

1.问题描述‘实现生产线货物的自动计数,具体要求如下:

(1)对生产线上货物自动计数,并实现显示。 (2)现实的最大值是“100”,显示在“100”时若再来货物,则显示“1”。可以用按键清楚计数情况。

(3)在显示“100”到“1”的过程中有语音提示。 (4)测定系统已运行时间。

(5)采用按键模拟货物到来,按键状态人为控制, 2.算法及流程

整个程序有主程序、键盘扫描、放音、计时、计数与显示公务部分组成。 2-1主程序

按照结构化程序设计的原则,键盘扫描、放音、计时、计数与显示等功能由子程序完成;主程序仅控制程序主题流程,调用子程序实现各项功能。主程序如图1. 开始 N 有按键按下吗 Y 清零键 键值? 记数键 加1后溢出 把计数值number和计数值number加计数值number和 已运行时间的个数组keycodeLED1,取number的个数组keycodeLED 十百位存入数组清零 清零 十位,keycodeLED keycodeLED 数组清零 发音报警 用LED显示keycodeLED数组中的数据 图1

2-2键盘扫描子程序

由于机械触点具有弹性,在键被按下或弹起时会出现电压抖动,从最初按下到接触稳定要经过数毫秒时间。为保证键识别准确,必须进行去抖动处理。 可利用在中断服务程序中不断扫描键盘并去除抖动,把扫描结果存放在一个数据单元中供主程序读取。中断服务程序中键盘扫描的流程图如图2

2-3放音子程序

开始 有按键按下吗 N 返回 Y 行扫描确定键 是否与上一次 N 扫描值相同 清除扫描次数为0 Y 清键值为0 扫描次数加1 是否扫描到30次 Y 设置按键标识为1 保存键值 返回 图2 程序采用SACM2000非自动方式播放提示音。 2-4 计时子程序

计时部分采用IRQ4中断,中断源为4096Hz时基信号。为了计时,在中断服务程序等待中断,每中断一次计数值count增1,最后观察计数寄存器状态,即可以得货通过的总时间。中断服务程序流程如图3

中断入口

关中断

计数加1

开中断

中断出口

图3

2-5计数与显示

首先要获取键值,存入变量keyVal中,然后判断键的含义。

a, 若是“清零”键,则保存计时值入AllTime单元,计数值入Now_Number单元再将计数值清零,重新计数。

b,若是“计数”键,则需要判断是否会溢出最大数值Max_Number,不会溢出则继续加1计数,否则计数数值清零,并使溢出位加1,显示溢出值。 c,若是“已运行时间”键,则显示系统已运行时间。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务