📄 Ȧ
字号:
//程序:ex3_10.c
//功能:简易密码锁程序
#include <reg51.h>
sbit P3_0=P3^0; //控制开锁,用发光二极管代替
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
unsigned char button; //保存按键信息
unsigned char code tab[7]={0xc0,0xf9,0xa4,0xb0,0xbf,0x86,0x8c}; //定义显示段码表,分别对应显示字符:0、1、2、3,-、E、P
P0=0xff; //读P0口引脚状态,需先置全1
while(1) {
P1=tab[4]; //密码锁的初始显示状态“-”
P3_0=1; //设置密码锁初始状态为“锁定”,发光二极管熄灭
button=P0; //读取P0口上的按键状态并赋值到变量button
button&=0x0f; //采用与操作保留低4位的按键状态,其他位清0
switch (button) //判断按键的键值
{
case 0x0e: P1=tab[0];delay(400);P1=tab[5];break; //0#键按下,密码输入错误,显示“E”
case 0x0d: P1=tab[1];delay(400);P1=tab[5];break; //1#键按下,密码输入错误,显示“E”
case 0x0b: P1=tab[2];delay(400);P1=tab[6];P3_0=0;break; //2#键按下,密码正确,开锁并显示“P”
case 0x07: P1=tab[3];delay(400);P1=tab[5];break; //3#键按下,密码输入错误,显示“E”
}
delay(1200); //显示状态停留约3秒
}
}
//函数名:delay
//函数功能:实现软件延时
//形式参数:unsigned char i;
// i控制空循环的外循环次数,共循环i*255次
//返回值:无
void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数
{
unsigned char j,k; //定义无符号字符型变量j和k
for(k=0;k<i;k++) //双重for循环语句实现软件延时
for(j=0;j<255;j++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -