
功能描述,开机无显示。
按下除号,开始输入密码,显示短线,初始密码为0000。
输入完后,按下on/c键,确定。正确显示open,错误显示err。
=键为取消键,输入密码过程中,按下取消键,数码管全亮1s,然后灭掉。恢复初始状态。
按下乘号,设置密码,此时数码管显示短线。
输入正确密码后,进入更改密码状态,显示全F。
输入更改后密码,按下on/C键,确认。
PS:1输入任意时刻,都可按等号返回初始状态。2输入时,数字会相应的显示。
通过Protues仿真,电路图为protues输出的。
送给初学者,学习参考。
#include #define uint8 unsigned char #define uint16 unsigned int //数码管编码。 uint8 code SEG7LED[26] = {0x3f,0x06,0x5b,0X4F, //变量声明 uint8 Ge,Shi,Bai,Qian;//数码管各个位 uint8 WeiNum=1; uint8 code P1Pin[9] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff}; uint8 state=0;//记录密码锁状态,0为待机状态,1为输入密码,2,3为设置密码 uint8 InputNum=1;//记录输入密码时,目前密码的位数。 uint8 InPassWord[4]; uint8 PassWord[4]={0,0,0,0}; //函数声明 void initTimer0(); void display(uint8 WeiNum); uint8 keyscan(); void delayms(uint16 Xms); void password(uint8 key); uint8 Compare(uint8 InPassWord[4]); void main() { } } void initTimer0() { TH0 = (65535-5000)/256; } void Timer0() interrupt 1 { } void display(uint8 WeiNum) { } void delayms(uint16 Xms) { } uint8 keyscan() { 数字键,12确定,14取消,10输入密码,11设置密码。 } void password(uint8 key) {//0~9数字键,12确定,14取消,10输入密码,11设置密码。 全亮 全亮 全亮 如果没有按键按下 不显示 } uint8 Compare(uint8 InPassWord[4]) { }
