51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc

上传人:b****3 文档编号:15403229 上传时间:2022-10-30 格式:DOC 页数:10 大小:43KB
下载 相关 举报
51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc_第1页
第1页 / 共10页
51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc_第2页
第2页 / 共10页
51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc_第3页
第3页 / 共10页
51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc_第4页
第4页 / 共10页
51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc

《51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc》由会员分享,可在线阅读,更多相关《51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc(10页珍藏版)》请在冰豆网上搜索。

51单片机模拟智能物料搬运控制显示系统及答案Word下载.doc

7、当进入,系统暂停状态下,4个时钟灯以2hz频率亮灭闪烁。

8、当进入,系统停止状态下,4个时钟灯全灭。

二、按键

键盘接口由6个独立按键组成,按键的排序是从实验板的左端到右端,依次为按键1到按键6

1、按键1,设置键

2、按键2,“+”球键

3、按键3,“-”球键/模拟机械手抓球键

4、按键4,系统暂停键

5、按键5,系统停止键

6、按键6,系统运行键

三、显示

由四位数码管组成,用来实现左右不同功能的显示。

1、在单片机上电后,四位数码管显示时钟,前两位显示分钟,后两位显示秒。

目的是记录系统开启后到运行这段期间的时间。

2、当系统运行后不再显示时钟,前两位显示之前预设的抓球数,也就是说预设加球只能设置到99个。

在抓球的过程(也就是按键3第二功能,每按一下为抓一个球)中,后两位显示当前剩余的抓球数直至“00”。

四、蜂鸣器指示

1.系统上电蜂鸣器长鸣两声。

2.蜂鸣器一声长鸣(0.3秒)指示抓球成功。

(三)系统控制要求

1、初始设置

(1)系统上电后,数码管显示为“00.00”

(2)灯5到灯8全灭

(3)灯1以1Hz的频率闪烁

(4)灯2,灯3熄灭

(5)预置抓球总数:

按下“设置”键,先按“+”键使预置抓球总数加1,之后每按一次“+”键”或“-”键,预置抓球总数便可加1或减1,要求预置总数在左边两位数码管显示,同时右边的两位数码管与左边的两位数码管显示一样的数据。

(6)要求预置抓球总数为10(及系统上电默认的抓球总数)。

2、系统运行

按“运行”键启动系统运行、数码管左边二位显示抓球总数,右边两位显示剩余的抓球数。

同时“+”键“-”键和“设置”键按失效。

运行过程为:

(1)按下按键3表示机械手抓到球并放球成功,蜂鸣器长鸣一声。

此时数码管右边二位显示当前剩余球数,即:

每放一个球,剩余抓球数便减1。

(2)重复上述步骤,直到抓完10个球,剩余抓球数显示为“00”,系统自动停止运行。

3、系统工作过程中,按“停止”键可立即结束系统运行,四位数码管显示熄灭。

4、系统运行中间,任意时刻按“暂停”键都可以暂停系统工作,数码管显示数据不变,并且4个时钟灯以2Hz频率亮灭闪烁;

当重按“运行”键时,系统能从暂停前状态继续运行,并且4个时钟灯全亮表示系统在运行状态。

注意:

系统上电按一下设置键,才能进入设置状态,才可以加减预设球数,同时数码管前两位显示“10”,后两位显示“10”,此时时钟暂停不显示;

按一下按键2,加一,显示变为“11.11”;

如果按键3,这两边的数字减一,显示变为“09.09”。

在按一下设置键,退出设置状态,加减键失灵,并且显示时钟,时钟继续走。

参考程序(C语言)

#include<

reg52.h>

#defineSEGP2

sbitSETKEY=P3^0;

sbitPARKEY=P3^1;

sbitADDKEY=P3^2;

sbitSUBKEY=P3^3;

sbitSTOPKEY=P3^5;

sbitRUNKEY=P3^6;

sbitSPK=P3^7;

sbitLED1=P0^0;

sbitLED2=P0^1;

sbitLED3=P0^2;

sbitLED4=P0^3;

sbitLED5=P0^4;

sbitLED6=P0^5;

sbitLED7=P0^6;

sbitLED8=P0^7;

unsignedcharTAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsignedchardisp[4]={0xc0,0xf9,0xc0,0xf9};

unsignedchardisp1[4]={0xc0,0xf9,0xc0,0xf9};

unsignedcharnum=10,stat=0;

voiddelay(unsignedintx)

{

 

unsignedinti,j;

for(i=0;

i<

x;

i++)

for(j=0;

j<

120;

j++);

}

voidspker(unsignedcharx1)

unsignedchari;

for(i=0;

x1;

SPK=1;

delay(500);

SPK=0;

voidkeyscan(void)

unsignedcharstat=0;

if(SETKEY==0)

delay(20);

stat=1;

LED2=0;

while(SETKEY==0);

if(RUNKEY==0)

stat=2;

while(RUNKEY==0);

if(STOPKEY==0)

stat=3;

LED5=LED6=LED7=LED8=1;

while(STOPKEY==0);

if(PARKEY==0)

stat=4;

while(PARKEY==0);

voidTMER0_INT(void)interrupt1

staticunsignedcharflag=0,seconds=0,min=0,h=0,k=0,stat=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

if(flag++==20)

flag=0;

 

LED1=~LED1;

if(stat==0)

h++;

switch(h-1)

{case0:

{LED5=0;

LED8=1;

break;

case1:

{LED6=0;

LED5=1;

}

case2:

{LED7=0;

LED6=1;

case3:

{LED8=0;

LED7=1;

case4:

{LED5=0;

h=1;

if(seconds++==60)

{

seconds=0;

min++;

disp[0]=TAB[seconds%10];

disp[1]=TAB[seconds/10];

disp[2]=TAB[seconds%10]+0x80;

disp[3]=TAB[seconds/10];

if(stat==3)

if(k++==2)

k=0;

LED5=LED6=LED7=LED8=~LED5;

voidINT_INT0(void) 

interrupt0

if(stat==1)

{

if(ADDKEY==0)

while(ADDKEY==0);

LED3=0;

delay(500);

num=(num<

100)?

num+1:

0;

LED3=1;

disp[2]=TAB[num%10]+0x80;

disp[1]=TAB[num/10];

disp[0]=TAB[num&

10];

disp[3]=TAB[num/10];

voidINT_INT1(void)

if(SUBKEY==0)

while(SUBKEY==0)

LED4=0;

num=(num>

0)?

num-1:

99;

LED4=1;

if(stat==2)

LED8=LED5=LED6=LED7=0;

spker

(1);

disp1[3]=TAB[num/10];

disp1[2]=TAB[num%10]+0x80;

disp1[1]=TAB[num/10];

disp1[0]=TAB[num&

voidmain(void)

unsignedchari;

TMOD=0x01;

IE=0x87;

TR0=1;

LED1=0;

while

(1)

for(i=0;

4;

SEG=disp[3-i];

P1=i;

delay(4);

if(stat==1||stat==2)

SEG=disp1[3-i];

keyscan();

}

10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1