基于单片机的纸张计数器设计
2014-01-20朱海星丁晨阳葛赛赛
朱海星,丁晨阳,葛赛赛
(扬州职业大学,江苏 扬州 225009)
计数器应用于复印机和印刷机基本上是停留在单次操作计数,不具有记忆、卡纸记忆、掉电记忆等保护功能。为了满足打印机节约纸张、提高打印效率等要求,考虑设计具有累加记忆功能的打印机纸张计数器,为市场提供一个有实用价值、低成本、具有通用性的打印机纸张计数产品。
1 系统硬件设计
对系统总体的各个模块进行分析得出系统的可行性,在此基础上确定各个电路的组成。系统的总框图见图1。
1.1 电路功能模块
在主控单元模块中,单片机是主控芯片,由对单片机编写程序完成电路的设计任务,时钟电路给单片机提供时钟信号,复位电路可以对系统的复位以保证单片机正常的工作;显示模块用一种专门用来显示字母、数字、符号等的点阵型液晶模块;按键模块负责系统密码的处理,初始密码的设定,密码的编写,修改计数值;读取时钟保存计数值模块负责为单片机送时钟信号,并自带的内存可以保存检测到纸张的计数值,在自带锂电池的供电作用下显示掉电记忆保存功能;红外检测模块用光电式传感器,负责发射与接收红外线以检测纸张的有无,光电检测器产生的电信号送单片机读取处理。
1.2 电路功能模块实现
图1 系统的总框
(1)主控模块。采用AT89S52 单片机[1]作为系统的控制核心。由于使用了单片机,整个系统可编程,还可以方便地实现其他功能的扩展。
(2)显示模块。采用1602 液晶也叫1602 字符型液晶,LED 显示器与LCD 显示器相比,LCD在亮度、功耗、可视角度和刷新速率等方面,都更具优势。所以,本设计选用LCD 显示器。
图2 电路图
(3)按键模块。采用独立式按键电路,每个键单独占有一个I/O 接口线,每个I/O 口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点是当按键较多时占用单片机的I/O 口数目较多,优点是电路设计简单,且编程极其容易。
(4)时钟模块。采用DS12C887 时钟芯片给单片机提供时钟信号,可以实时显示时间;自带锂电池,减少电路的复杂性。
(5)检测模块。采用光电式传感器ST188,元器件便宜实用,测试距离为4 ~16mm,符合课题的设计要求。
1.3 电路图
经过功能模块的分析,电路图见图2。该电路有密码按键模块、单片机最小系统模块、红外器件检测模块、读取时钟保存计数值模块和显示模块五个模块组成。
2 系统软件设计
系统设计采用C 语言编写,应用C 语言编写系统软件,便于修改和扩充,且C 语言编译器可以自动完成变量的存储单元分配,编程者可以专注于应用软件部分的设计。其设计分时钟、显示、检测计数以及密码设置等部分。主流程图见图3。
2.1 读取时钟与显示
因为在系统使用中,要方便管理人员了解打印纸张计数对应的时间,所以读取时钟和显示都是重要的设计工作。
2.2 红外检测部分软件设计
在连接电路中,当没有物体反射红外线时,ce之间截止,无电流流过,输出电压为电源电压,高电平。当有物体反射红外线时,be 饱和导通ce也就导通了,输出端就相当于接地。输出电压为低电平(见图4 中a)。
单片机使用中断接收来自ST188 的电平信号,并且低电平有效。根据以上的原理画出红外检测流程图见图4b。
2.3 密码设置
密码设计部分,是一个比较复杂的过程。密码要能够管理纸张计数,流程图见图5。具体系统操作见3.4 部分。
设计的系统通过仿真实现密码设定,修改纸张计数值运行,主要的功能包括:设定个人密码;设置纸张计数界面;设定自己需要的完成计数值;输入密码修改纸张计数值,并且只有管理员输入密码后才能修改。
图3 主流程
图4 红外检测纸张流程图
图5 密码按键设置流程
3 系统仿真与运行调试
3.1 编译程序软件
Keil Software 的8051 开发工具提供程序,可以用它们来编译C 源码、汇编源程序、连接、重定位目标文件和库文件、创建HEX 文件、调试目标程序等。
3.2 仿真
使用Proteus 软件[2],进行系统仿真,有利于提前检测可能的软硬件故障。仿真运行见图6。
3.3 运行调试以及问题的解决
运行调试,遇到的部分故障和解决办法如下:
图6 系统仿真
(1)动手写程序的时候,会产生忘记写变量,或者是管脚的定义不对,或者是标号忘记标注等等低级的错误,经过查找资料、讨论,可逐步解决这些问题;(2)按各个模块写程序,写好一个模块再进行测量,以免到最后程序写完了还查不出哪个模块出了问题。在模块的测量中会发现很多的问题,包括程序或者硬件问题。可先做一个仿真,更方便自己查询到底是哪一部分出了问题;(3)烧录软件时出现驱动不对的情况,这时可重装驱动,或者重启电脑,因为可能是自己电脑的驱动不对,也可能是自己的接口受到硬件电路的短暂短路电流的作用。
3.4 系统的操作说明
设计的系统主要功能的操作包括:上电是显示实时时钟的时间,年、月、日、时、分、秒。
右下角显示的是纸张的计数值,整个系统有六个按键控制,当按下确定键时界面进入密码修改即重设密码界面,初始密码为已知。上下左右按键分别是输入密码时作用,上是数值加1,下是数值减1,左数值向左移一位,右是数值向右移一位,当按下取消键时,显示的是进入计数值修改界面,输入你设定的密码,修改最大计数值是999 的纸张计数值,并确认键从设定值开始计数。
3.5 系统完善
系统可以支持进一步的开发或者改进。例如:可以把按键改成无线遥控式按键,这样更能体现产品的智能化,更便捷;显示模块可以改为lcd12860,优点是lcd12860 可以显示图案显示的位数更多,可以把产品做得更加的具有特色;本设计完全可以寻找测试距离更远,准确度更高的光电传感器,这样可以应用于更多的需要计数的场合,如生产线上的产品计数。
4 结论
以上介绍的系统可以检测到办公室常用打印机的出纸量,记忆累加统计,掉电保护纸张数量;密码保护,可以实现各个用纸量的统计;实时时间,显示确定每人总的用纸量。
[1] 梅丽凤.单片机原理及接口及接口技术[M].北京:清华大学出版社,2004.
[2] 李学礼.基于Proteus 的8051 单片机实例教程[M].北京:电子工业出版社,2008.