印章计数器设计报告

印张计数器设计一.设计任务要求1能够进行6位数码显示,显示当前的印张数;2能够进行印数的预置;3能够进行正/反计数;4能够模拟机械手取出次品;5当计数结束时,可以报警;二.硬件设计总图三.硬件部分分析说明1)、显示部分实验箱提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两80C514个LED显示印张计数器运作状态键盘输入端口6个七段数码管显示数据复位监控输入印张计数中断信号输入晶振时钟输入电源LED指示灯片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。在实验箱中8位段码输出地址为0X004H,位码输出地址为0X002H。此处X是由KEY/LEDCS决定,参见地址译码。做键盘和LED实验时,需将KEY/LEDCS接到相应的地址译码上。以便用相应的地址来访问。将KEY/LEDCS接到CS0上,则段码地址为08004H,位码地址为08002H。2)、键盘部分1预设初始计数值:可通过数字键键入所需计量的印张数,按下“确定(A)”键后开始。2正向\反向计数:可通过键盘上的正向(B)\反向(C)键切换正向计数或者反向计数。当选择正向计数时,显示屏显示从0开始,每印刷一张,数值加1,直到遇到暂停或者到达预设值时停止计数;当选择反向计数时,显示屏从预设值开始,每印刷一张,数值减1,直到遇到暂停或者到达0时停止计数。3次品报告:当按下键盘上次品键(D)时,代表出现次品,此时直流电机停止运转,步进电机缓慢转动一周,代表机械手取出次品,之后直流电机恢复运转。4报警提示:当计数为0或者到预设值时,停止计数,发出报警,此时L2亮。5复位键(F)四.源程序#include<reg51.h>#defineLEDLen6//用6个八段管xdataunsignedcharOUTBIT_at_0x8002;//位码输出+列扫描地址xdataunsignedcharOUTSEG_at_0x8004;//段码输出xdataunsignedcharIN_at_0x8001;//行扫描地址入口xdataunsignedcharCS0832_at_0x9000;//产生电压启动直流电机xdataunsignedcharcontrol_at_0xa003;//control=0832---8255内部指令xdataunsignedcharctl_at_0xa000;//产生电流启动步进电动机codeunsignedcharLEDMAP[]={//数码显示管段码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};codeunsignedcharKeyTable[]={//4*6键盘定义码0x16,0x15,0x14,0xff,0x13,0x12,0x11,0x10,0x0d,0x0c,0x0b,0x0a,0x0e,0x03,0x06,0x09,0x0f,0x02,0x05,0x08,0x00,0x01,0x04,0x07};//code,单片机中的ROMunsignedcharLEDBuf[LEDLen];//显示缓冲unsignedcharch;//ch=getkeyintnum,num1,num2,i;//num(用户输入数)num1(正计)num2(反计)sbitLED1=P1^0;//正计指示灯sbitLED2=P1^1;//反计指示灯sbitLED3=P1^2;//结束指示灯sbitSpeaker=P1^3;//喇叭接口//////////////////////////////////////////////////////////////////////////////延时程序voidDelay(unsignedcharCNT){unsignedchari;while(CNT--!=0)for(i=100;i!=0;i--);}voidDelay3()//喇叭延时{unsignedcharl;for(l=0;l<100;l++);}voiddelay2()////////////////////{unsignedchari,j;j=30;do{for(i=250;i!=0;i--);{TMOD=0x01;/*定时器0工作在模式1下(16位计数器)*/TH0=0xfd;TL0=0x65;TR0=1;/*启动定时器*/while(TF0==0);TR0=0;}}while(--j);}////////////////////////////////////////////////////////////////////////数码管显示voidDisplayLED()//数码管显示函数{unsignedchari;unsignedcharPos;Pos=0x20;//从左边开始显示for(i=0;i<LEDLen;i++){OUTBIT=0;//关所有八段管OUTSEG=LEDBuf[i];OUTBIT=Pos;//显示一位八段管Delay(1);Pos>>=1;//Pos的数据右移一位}}/////////////////////////////////////////////////////////////////////////////键盘unsignedcharTestKey()//键盘扫描函数(本实验属行-列扫描方式)4*6矩阵式键盘{OUTBIT=0;//列设为低电平0return(~IN0x0f);//读入键状态(高四位不用)得到第几行}unsignedcharGetKey()//读取键值函数{unsignedcharPos;unsignedchari;unsignedchark;i=6;//i代表第几列Pos=0x20;//得到第几列do{OUTBIT=~Pos;//Pos...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?