自动售货机C程序.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:4 大小:20KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

自动售货机C程序.doc

自动售货机C程序.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

#include<reg52.h>#include<STDIO.H>#defineucharunsignedchar#defineuintunsignedintucharcodenumtable[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//共阳sbitCON_5=P0^0;sbitCON_10=P0^1;//投币按键sbitLED_A=P1^3;sbitLED_B=P1^6;sbitLED_C=P1^7;//饮料LED指示灯sbitSWITCH_A=P1^0;sbitSWITCH_B=P1^1;sbitSWITCH_C=P1^2;//饮料A,B,C对应按钮//sbitCHANGE=P1^3;//找零(可用复位键)sbitge=P1^4;sbitshi=P1^5;//数码管位选ucharnum,SUM=0;/*********延时程序***********//*voidDelay_s(uintt){uinti,j;for(i=0;i<110;i++)for(j=0;j<t;j++);}*/voiddelay(){uinti,j;for(i=0;i<30;i++)for(j=0;j<110;j++);}/*************投币检测程序***************/voidMoney_add(){if(CON_5==0&&SUM<=90){delay();if(CON_5==0){SUM+=5;while(!CON_5);}}if(CON_10==0&&SUM<=85){delay();if(CON_10==0){SUM+=10;while(!CON_10);}}}/*************出饮料检测程序***************/voidMoney_minus(){if((SWITCH_A==0)&&SUM>=5){delay();if(SWITCH_A==0){SUM-=5;while(!SWITCH_A);}}if((SWITCH_B==0)&&SUM>=10){delay();if(SWITCH_B==0){SUM-=10;while(!SWITCH_B);}}if((SWITCH_C==0)&&SUM>=15){delay();if(SWITCH_C==0){SUM-=15;while(!SWITCH_C);}}}/*****************LED显示程序***************/voidLED_display(){if(SUM<5){LED_A=0;LED_B=0;LED_C=0;}elseif(SUM>=5&SUM<10){LED_A=1;LED_B=0;LED_C=0;}elseif(SUM>=10&SUM<15){LED_A=1;LED_B=1;LED_C=0;}else{LED_A=1;LED_B=1;LED_C=1;}}/******************主程序***********************/voidmain(){TMOD=0x10;TH1=0xc6;TL1=0x18;EA=1;ET1=1;TR1=1;while(1){Money_add();Money_minus();LED_display();}}/*************数码管中断显示程序***************/voiddisplay()interrupt3{TH1=0xc6;TL1=0x18;num=(num%2);P2=0xff;switch(num){case0:shi=0;ge=1;P2=numtable[SUM%10];break;case1:ge=0;shi=1;P2=numtable[SUM/10];break;default:break;}num++;}