1、7、当进入,系统暂停状态下,4个时钟灯以2hz频率亮灭闪烁。8、当进入,系统停止状态下,4个时钟灯全灭。二、按键键盘接口由6个独立按键组成,按键的排序是从实验板的左端到右端,依次为按键1到按键61、按键1,设置键2、按键2,“+”球键 3、按键3,“-”球键/模拟机械手抓球键4、按键4,系统暂停键5、按键5,系统停止键6、按键6,系统运行键三、显示由四位数码管组成,用来实现左右不同功能的显示。1、在单片机上电后,四位数码管显示时钟,前两位显示分钟,后两位显示秒。目的是记录系统开启后到运行这段期间的时间。2、当系统运行后不再显示时钟,前两位显示之前预设的抓球数,也就是说预设加球只能设置到99个。
2、在抓球的过程(也就是按键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(及系统上电默认的抓
3、球总数)。2、系统运行按“运行”键启动系统运行、数码管左边二位显示抓球总数,右边两位显示剩余的抓球数。同时“+”键“-”键和“设置”键按失效。运行过程为:(1) 按下按键3表示机械手抓到球并放球成功,蜂鸣器长鸣一声。此时数码管右边二位显示当前剩余球数,即:每放一个球,剩余抓球数便减1。(2) 重复上述步骤,直到抓完10个球,剩余抓球数显示为“00”,系统自动停止运行。3、系统工作过程中,按“停止”键可立即结束系统运行,四位数码管显示熄灭。4、系统运行中间,任意时刻按“暂停”键都可以暂停系统工作,数码管显示数据不变,并且4个时钟灯以2Hz频率亮灭闪烁;当重按“运行”键时,系统能从暂停前状态继续运
4、行,并且4个时钟灯全亮表示系统在运行状态。注意:系统上电按一下设置键,才能进入设置状态,才可以加减预设球数,同时数码管前两位显示“10”,后两位显示“10”,此时时钟暂停不显示;按一下按键2,加一,显示变为“11.11”;如果按键3,这两边的数字减一,显示变为“09.09”。在按一下设置键,退出设置状态,加减键失灵,并且显示时钟,时钟继续走。参考程序(C语言)#include#define SEG P2sbit SETKEY=P30;sbit PARKEY=P31;sbit ADDKEY=P32;sbit SUBKEY=P33; sbit STOPKEY=P35;sbit RUNKEY=P36
5、;sbit SPK=P37;sbit LED1=P00;sbit LED2=P01;sbit LED3=P02;sbit LED4=P03;sbit LED5=P04;sbit LED6=P05;sbit LED7=P06;sbit LED8=P07;unsigned char TAB10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char disp4=0xc0,0xf9,0xc0,0xf9;unsigned char disp14=0xc0,0xf9,0xc0,0xf9 ;unsigned char num=10,s
6、tat=0;void delay(unsigned int x)unsigned int i,j;for (i=0;ix;i+) for(j=0;j120;j+);void spker (unsigned char x1)unsigned char i;for(i=0;x1; SPK=1;delay(500); SPK=0;void keyscan(void)unsigned char stat=0;if(SETKEY=0) delay(20); stat=1; LED2=0; while(SETKEY=0);if(RUNKEY=0) stat=2; while(RUNKEY=0) ;if(S
7、TOPKEY=0) stat=3; LED5=LED6=LED7=LED8=1; while(STOPKEY=0);if(PARKEY=0) stat=4; while(PARKEY=0);void TMER0_INT(void) interrupt 1static unsigned char flag=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) case 0: LED
8、5=0;LED8=1;break; case 1:LED6=0;LED5=1; case 2:LED7=0;LED6=1; case 3:LED8=0;LED7=1; case 4:LED5=0;h=1; if(seconds+=60) seconds=0; min+; disp0=TABseconds%10; disp1=TABseconds/10; disp2=TABseconds%10+0x80; disp3=TABseconds/10; if(stat=3)if(k+=2) k=0; LED5=LED6=LED7=LED8=LED5;void INT_INT0(void) interr
9、upt 0 if(stat=1) if(ADDKEY=0) while(ADDKEY=0); LED3=0; delay(500); num=(num0)?num-1:99; LED4=1;if(stat=2) LED8=LED5=LED6=LED7=0; spker(1);disp13=TABnum/10;disp12=TABnum%10+0x80;disp11=TABnum/10;disp10=TABnum&void main(void) unsigned char i;TMOD=0x01;IE=0x87;TR0=1;LED1=0;while(1) for(i=0;4; SEG=disp3-i; P1=i; delay(4); if(stat=1|stat=2) SEG=disp13-i;keyscan(); 10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1