超市储物柜模拟系统C程序.docx
- 文档编号:5269405
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:16
- 大小:18.12KB
超市储物柜模拟系统C程序.docx
《超市储物柜模拟系统C程序.docx》由会员分享,可在线阅读,更多相关《超市储物柜模拟系统C程序.docx(16页珍藏版)》请在冰豆网上搜索。
超市储物柜模拟系统C程序
阿/*----------------------------------------------------------------|
|名称:
超市储物柜模拟系统|
|学校:
广西交通职业技术学院|
|系:
信息工程系|
|专业:
电子信息工程技术|
|设计者:
杨旭涛|
|QQ:
237155875|
|*仅供研究,不得用于商业用途!
*|
|----------------------------------------------------------------*/
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeLCD_Display_Common_i[16]={"WelcomeToUse!
"};
ucharcodeLCD_Display_Common_j[16]={"DesignByMr.Tom"};
ucharcodeLCD_Display_Full_i[16]={"AllFull!
"};
ucharcodeLCD_Display_Full_j[16]={"PleseWait!
"};
ucharcodeLCD_Display_GetPassw_i[16]={"YourPassword:
"};
ucharcodeLCD_Display_Box1Password_i[16]={"Box1Password:
"};
ucharcodeLCD_Display_Box2Password_i[16]={"Box2Password:
"};
ucharcodeLCD_Display_Box3Password_i[16]={"Box3Password:
"};
ucharcodeLCD_Display_Box4Password_i[16]={"Box4Password:
"};
ucharLCD_Display_i[16];
ucharLCD_Display_j[16];
sbita=P3^4;//定义3x4键盘端口,发送a,b,c,d,扫描x,y,z
sbitb=P3^5;//
sbitc=P3^6;//
sbitd=P3^7;//
sbitx=P3^0;//
sbity=P3^1;//
sbitz=P3^2;//
sbitBox1=P3^0;//defineBox(x)Port定义箱子继电器端口
sbitBox2=P3^1;
sbitBox3=P3^2;
sbitBox4=P3^3;
sbitKey_Box1=P1^4;//定义箱子的取物按键端口
sbitKey_Box2=P1^5;//
sbitKey_Box3=P1^6;//
sbitKey_Box4=P1^7;//
sbitCus_In=P3^7;//进超市人数+
sbitCus_Out=P3^6;//出超市人数-
sbitBee=P2^3;//蜂鸣器输出端口
sbitShock=P3^5;//震动输入端口
sbitLCD_E=P3^4;//define1602E
sbitLCD_RW=P3^6;//define1602RW
sbitLCD_RS=P3^5;//define1602RS
uchartemp_a,temp_b,temp_c,temp_d,temp_e,temp_f;//输入密码暂存变量
ucharNum,Interface,Customer;//定义各种标志位
ucharPassw_Box1_a,Passw_Box1_b,Passw_Box1_c,Passw_Box1_d,Passw_Box1_e,Passw_Box1_f;//各箱子的密码移位暂存位
ucharPassw_Box2_a,Passw_Box2_b,Passw_Box2_c,Passw_Box2_d,Passw_Box2_e,Passw_Box2_f;//
ucharPassw_Box3_a,Passw_Box3_b,Passw_Box3_c,Passw_Box3_d,Passw_Box3_e,Passw_Box3_f;//
ucharPassw_Box4_a,Passw_Box4_b,Passw_Box4_c,Passw_Box4_d,Passw_Box4_e,Passw_Box4_f;//
ucharShow_P_a,Show_P_b,Show_P_c,Show_P_d,Show_P_e,Show_P_f;
/*----------------------------------------------------------------|
|延时子函数|
|----------------------------------------------------------------*/
voiddelay(uintt)
{
while(t--);
}
/*----------------------------------------------------------------|
|定时器初始化子函数|
|----------------------------------------------------------------*/
voidTimer0_Init()
{
TMOD=0x01;//方式选择
TH0=(65535-100)/256;//
TL0=(65535-100)%256;//初值设定
ET0=1;//开定时器T0的中断
EA=1;//开总中断
TR0=1;//启动T0
}
/*----------------------------------------------------------------|
|LCD子函数|
|----------------------------------------------------------------*/
voidWrite_Bit_Com(ucharcom)//*********写命令*********//
{
LCD_E=0;//关闭使能端
LCD_RW=0;//写命令
LCD_RS=0;//表示选择命令
P0=com;//将命令赋给P0口
delay(10);//等待命令赋完
LCD_E=1;//给以上升沿开始写命令
delay(10);//等待命令写完
LCD_E=0;//关闭使能端
}
voidWrite_Bit_Date(uchardate)//*********写数据********//
{
LCD_E=0;//关闭使能端
LCD_RW=0;//写数据
LCD_RS=1;//表示选择数据
P0=date;//将数据赋给P0口
delay(10);//等待数据赋完
LCD_E=1;//给以上升沿开始写命令
delay(10);//等待数据写完
LCD_E=0;//关闭使能端
}
voidInit_LCD()//********初始化液晶*******//
{
LCD_E=0;//关闭使能
Write_Bit_Com(0x38);//设置显示模式
Write_Bit_Com(0x0c);//开显示,示显示光标,光标不闪烁(不显示不闪烁为0x0d)
Write_Bit_Com(0x06);//设置显示移动自加1
Write_Bit_Com(0x01);//清屏
}
voidDisplay_Common()//常态显示,欢迎语,进出人数计数
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Common_i[i]);
delay(100);
}
LCD_Display_j[0]=0x30+Customer/10;
LCD_Display_j[1]=0x30+Customer%10;
LCD_Display_j[2]='';
LCD_Display_j[3]='';
LCD_Display_j[4]='';
LCD_Display_j[5]='';
LCD_Display_j[6]='';
LCD_Display_j[7]='';
LCD_Display_j[8]='';
LCD_Display_j[9]='';
LCD_Display_j[10]='';
LCD_Display_j[11]='';
LCD_Display_j[12]='';
LCD_Display_j[13]='';
LCD_Display_j[14]='';
LCD_Display_j[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_j[j]);
delay(100);
}
}
voidDisplay_Input_Box1()//box1passwordinput箱子一密码输入界面
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Box1Password_i[i]);
delay(100);
}
LCD_Display_i[0]='';
LCD_Display_i[1]='';
LCD_Display_i[2]='';
LCD_Display_i[3]='';
LCD_Display_i[4]='';
LCD_Display_i[5]=0x30+temp_f;
LCD_Display_i[6]=0x30+temp_e;
LCD_Display_i[7]=0x30+temp_d;
LCD_Display_i[8]=0x30+temp_c;
LCD_Display_i[9]=0x30+temp_b;
LCD_Display_i[10]=0x30+temp_a;
LCD_Display_i[11]='';
LCD_Display_i[12]='';
LCD_Display_i[13]='';
LCD_Display_i[14]='';
LCD_Display_i[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_i[j]);
delay(100);
}
}
voidDisplay_Input_Box2()//box2passwordinput箱子二密码输入界面
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Box2Password_i[i]);
delay(100);
}
LCD_Display_i[0]='';
LCD_Display_i[1]='';
LCD_Display_i[2]='';
LCD_Display_i[3]='';
LCD_Display_i[4]='';
LCD_Display_i[5]=0x30+temp_f;
LCD_Display_i[6]=0x30+temp_e;
LCD_Display_i[7]=0x30+temp_d;
LCD_Display_i[8]=0x30+temp_c;
LCD_Display_i[9]=0x30+temp_b;
LCD_Display_i[10]=0x30+temp_a;
LCD_Display_i[11]='';
LCD_Display_i[12]='';
LCD_Display_i[13]='';
LCD_Display_i[14]='';
LCD_Display_i[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_i[j]);
delay(100);
}
}
voidDisplay_Input_Box3()//box3passwordinput
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Box3Password_i[i]);
delay(100);
}
LCD_Display_i[0]='';
LCD_Display_i[1]='';
LCD_Display_i[2]='';
LCD_Display_i[3]='';
LCD_Display_i[4]='';
LCD_Display_i[5]=0x30+temp_f;
LCD_Display_i[6]=0x30+temp_e;
LCD_Display_i[7]=0x30+temp_d;
LCD_Display_i[8]=0x30+temp_c;
LCD_Display_i[9]=0x30+temp_b;
LCD_Display_i[10]=0x30+temp_a;
LCD_Display_i[11]='';
LCD_Display_i[12]='';
LCD_Display_i[13]='';
LCD_Display_i[14]='';
LCD_Display_i[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_i[j]);
delay(100);
}
}
voidDisplay_Input_Box4()//box4passwordinput
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Box4Password_i[i]);
delay(100);
}
LCD_Display_i[0]='';
LCD_Display_i[1]='';
LCD_Display_i[2]='';
LCD_Display_i[3]='';
LCD_Display_i[4]='';
LCD_Display_i[5]=0x30+temp_f;
LCD_Display_i[6]=0x30+temp_e;
LCD_Display_i[7]=0x30+temp_d;
LCD_Display_i[8]=0x30+temp_c;
LCD_Display_i[9]=0x30+temp_b;
LCD_Display_i[10]=0x30+temp_a;
LCD_Display_i[11]='';
LCD_Display_i[12]='';
LCD_Display_i[13]='';
LCD_Display_i[14]='';
LCD_Display_i[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_i[j]);
delay(100);
}
}
voidDisplay_GetPassw()//获取密码显示界面
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_GetPassw_i[i]);
delay(100);
}
LCD_Display_i[0]='';
LCD_Display_i[1]='';
LCD_Display_i[2]='';
LCD_Display_i[3]='';
LCD_Display_i[4]='';
LCD_Display_i[5]=0x30+Show_P_f;
LCD_Display_i[6]=0x30+Show_P_e;
LCD_Display_i[7]=0x30+Show_P_d;
LCD_Display_i[8]=0x30+Show_P_c;
LCD_Display_i[9]=0x30+Show_P_b;
LCD_Display_i[10]=0x30+Show_P_a;
LCD_Display_i[11]='';
LCD_Display_i[12]='';
LCD_Display_i[13]='';
LCD_Display_i[14]='';
LCD_Display_i[15]='';
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_i[j]);
delay(100);
}
delay(60000);//密码显示时间,延时6ms*3
delay(60000);
delay(60000);
Interface=0;//返回常态界面
}
voidDisplay_BoxFull()//满箱显示
{
uchari,j;
Write_Bit_Com(0x80+0x00);
for(i=0;i<16;i++)
{
Write_Bit_Date(LCD_Display_Full_i[i]);
delay(100);
}
Write_Bit_Com(0x80+0x40);
for(j=0;j<16;j++)
{
Write_Bit_Date(LCD_Display_Full_j[j]);
delay(100);
}
delay(60000);
delay(60000);
delay(60000);
Interface=0;//返回常态界面
}
/*----------------------------------------------------------------|
|键盘扫描子函数|
|----------------------------------------------------------------*/
voidKey_Scanf()//temp_a的量表示键值,默认为0,键值移位后才改变
{
a=1,b=1,c=1,d=0;
x=1,y=1,z=1;
if(z==0){delay(200);if(z==0){while(z==0);
{if(Box1==0){Box1=1;Interface=1;Passw_Box1_a=Num%10;Passw_Box1_b=Num/10%10;delay
(1);Passw_Box1_c=Num%10;delay
(2);Passw_Box1_d=Num/100%10;delay(4);Passw_Box1_e=Num%10;delay(6);Passw_Box1_f=Num/10%10;Show_P_a=Passw_Box1_a;Show_P_b=Passw_Box1_b;Show_P_c=Passw_Box1_c;Show_P_d=Passw_Box1_d;Show_P_e=Passw_Box1_e;Show_P_f=Passw_Box1_f;}//若Box1空,则弹出继电器;定时器取值做为密码,显示获取密码界面
elseif(Box2==0){Box2=1;Interface=1;Passw_Box2_a=Num%10;Passw_Box2_b=Num/10%10;delay(3);Passw_Box2_c=Num%10;delay
(1);Passw_Box2_d=Num/100%10;delay
(2);Passw_Box2_e=Num%10;delay(5);Passw_Box2_f=Num/10%10;Show_P_a=Passw_Box2_a;Show_P_b=Passw_Box2_b;Show_P_c=Passw_Box2_c;Show_P_d=Passw_Box2_d;Show_P_e=Passw_Box2_e;Show_P_f=Passw_Box2_f;}//若Box2空,则弹出继电器
elseif(Box3==0){Box3=1;Interface=1;Passw_Box3_a=Num%10;Passw_Box3_b=Num/10%10;delay(7);Passw_Box3_c=Num%10;delay(3);Passw_Box3_d=Num/100%10;delay(5);Passw_Box3_e=Num%10;delay
(2);Passw_Box3_f=Num/10%10;Show_P_a=Passw_Box3_a;Show_P_b=Passw_Box3_b;Show_P_c=Passw_Box3_c;Show_P_d=Passw_Box3_d;Show_P_e=Passw_Box3_e;Show_P_f=Passw_Box3_f;}//若Box3空,则弹出继电器
elseif(Box4==0){Box4=1;Interface=1;Passw_Box4_a=Num%10;Passw_Box4_b=Num/10%10;delay(3);Passw_B
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 储物柜 模拟 系统 程序