#include "system.h"
void Lcd_Display(unsigned char choose) //显示函数
{
unsigned char i = 0;
Delay_Ms(20);
switch (choose)
{
case 1: //显示主界面
{
Lcd_Position(0,0);
Lcd_Write(1,'A');
Lcd_Write(1,':');
while( dis8[i] != '\0')
{
Lcd_Write(1,dis8[i]);
i ++;
}
i = 0;
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
i = 0;
while( dis1[i] != '\0')
{
Lcd_Write(1,dis1[i]);
i ++;
}
i = 0;
Lcd_Position (1,0);
Lcd_Write(1,'C');
Lcd_Write(1,':');
while( dis2[i] != '\0')
{
Lcd_Write(1,dis2[i]);
i ++;
}
i = 0;
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
i = 0;
Lcd_Position (2,0);
while( dis3[i] != '\0')
{
Lcd_Write(1,dis3[i]);
i ++;
}
i = 0;
while( dis6[i] != '\0')
{
Lcd_Write(1,dis6[i]);
i ++;
}
i = 0;
Lcd_Write(1,':');
Lcd_Write(1,str[decade]);
Lcd_Write(1,str[unit]);
Lcd_Write(1,'.');
Lcd_Write(1,str[mark]);
}
break;
case 2:
{
i = 0;
Lcd_Init();
Lcd_Position(1,0);
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
i = 0;
while( dis6[i] != '\0')
{
Lcd_Write(1,dis6[i]);
i ++;
}
Lcd_Write(1,':');
}
break;
case 3:
{
i = 0;
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'*');
}
break;
case 4:
{
i = 0;
Lcd_Init();
Lcd_Position(1,2);
while( dis4[i] != '\0')
{
Lcd_Write(1,dis4[i]);
i ++;
}
i = 0;
Lcd_Position(2,2);
Lcd_Write(1,'-');
Lcd_Write(1,'-');
while( dis7[i] != '\0')
{
Lcd_Write(1,dis7[i]);
i ++;
}
Lcd_Write(1,'-');
Lcd_Write(1,'-');
}
break;
case 5:
{
i = 0;
Lcd_Init();
Lcd_Position(2,2);
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
i = 0;
while( dis5[i] != '\0')
{
Lcd_Write(1,dis5[i]);
i ++;
}
}
break;
case 6:
{
i = 0;
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'-');
}
break;
case 7:
{
i = 0;
Lcd_Init();
Lcd_Position(1,0);
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
i = 0;
while( dis6[i] != '\0')
{
Lcd_Write(1,dis6[i]);
i ++;
}
Lcd_Write(1,':');
}
break;
case 8:
{
i = 0;
Lcd_Init();
Lcd_Position(1,1);
while( dis8[i] != '\0')
{
Lcd_Write(1,dis8[i]);
i ++;
}
i = 0;
while( dis0[i] != '\0')
{
Lcd_Write(1,dis0[i]);
i ++;
}
}
break;
case 9:
{
i = 0;
Lcd_Init();
Lcd_Position(2,2);
while( dis9[i] != '\0')
{
Lcd_Write(1,dis9[i]);
i ++;
}
}
break;
}
}
void Lcd_Write(bit cmd, unsigned char dat) //cmd = 0 写地址; cmd = 1 写数据;
{
lcd_rs = cmd;
lcd_rw = 0;
lcd_en = 0;
P0 = dat;
Delay_Ms(5);
lcd_en = 1;
Delay_Ms(5);
lcd_en = 0;
}
void Lcd_Position(unsigned char x, unsigned char y) //屏幕定位
{
unsigned char position;
if( x == 0)
{
x = 0x80;
}
else if(x == 1)
{
x = 0x90;
}
else if(x == 2)
{
x = 0x88;
}
else if(x == 3)
{
x = 0x98;
}
position = x + y;
Lcd_Write(0,position);
}
void Lcd_Init()
{
lcd_psb = 1;
Lcd_Write(0,0x30);
Delay_Ms(5);
Lcd_Write(0,0x0c);
Delay_Ms(5);
Lcd_Write(0,0x01);
Delay_Ms(5);
}
void Lcd_Display_Num(unsigned char num) //显示输入的数字
{
unsigned char i = 0;
Delay_Ms(20);
Lcd_Display(2);
Delay_Ms(20);
switch (num)
{
case 0:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'0');
Delay_Ms(20);
}break;
case 1:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'1');
Delay_Ms(20);
}break;
case 2:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'2');
Delay_Ms(20);
}break;
case 3:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'3');
Delay_Ms(20);
}break;
case 4:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'4');
Delay_Ms(20);
}break;
case 5:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'5');
Delay_Ms(20);
}break;
case 6:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'6');
Delay_Ms(20);
}break;
case 7:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'7');
Delay_Ms(20);
}break;
case 8:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'8');
Delay_Ms(20);
}break;
case 9:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'9');
Delay_Ms(20);
}break;
case 10:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'A');
Delay_Ms(20);
}break;
case 11:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'B');
Delay_Ms(20);
}break;
case 12:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'C');
Delay_Ms(20);
}break;
case 13:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'D');
Delay_Ms(20);
}break;
case 14:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'E');
Delay_Ms(20);
}break;
case 15:
{
Lcd_Position(2,2+Num_key);
Lcd_Write(1,'F');
Delay_Ms(20);
}break;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于51单片机的密码锁程序
共38个文件
obj:10个
lst:10个
c:6个
需积分: 40 17 下载量 71 浏览量
2018-01-14
16:09:45
上传
评论 2
收藏 90KB ZIP 举报
温馨提示
一款基于51单片机设计的一款电磁密码锁程序,里面有完整的工程,能够实现键盘输入密码进行开锁,更改密码,12864显示的基本功能
资源推荐
资源详情
资源评论
收起资源包目录
密码锁程序.zip (38个子文件)
密码锁程序
passwd.OBJ 10KB
delay.OBJ 3KB
ds18b20.LST 5KB
display_12864.OBJ 18KB
mima.lnp 139B
password.OBJ 5KB
mima.uvproj 14KB
STARTUP.OBJ 749B
display_12864.LST 17KB
mima 46KB
mima.plg 483B
mima.uvopt 58KB
mima.hex 10KB
Unchain.c 3KB
passwd.c 4KB
mima_uvopt.bak 59KB
STARTUP.A51 6KB
display.OBJ 7KB
main.LST 5KB
display_12864.c 5KB
Unchain.OBJ 8KB
system.h 1KB
system.LST 1KB
passwd.LST 14KB
STARTUP.LST 14KB
delay.c 160B
ds18b20.c 2KB
delay.LST 1KB
password.LST 5KB
display.LST 5KB
system.OBJ 2KB
Unchain.LST 9KB
main.OBJ 5KB
sbit.h 624B
mima.M51 51KB
mima_uvproj.bak 14KB
ds18b20.OBJ 8KB
main.c 2KB
共 38 条
- 1
资源评论
Caste
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功