(80C51单片机)设计4×4键盘及8位数码管显示构成的电子密码锁.的C语言程序。

要求用4×4组成0-9数字键及确认键。用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。

4*4矩阵键盘检测程序(新手用),本程序用于检测4*4矩阵按键,先检测是否有按
键按下,如果有按键按下,由P1口读出相应的编码值,由P0经两片74HC573输出给
8位数码管,P2^0位选,P2^1段选,P1接4*4矩阵按键

#include <reg52.h>
#include<intrins.h> //头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
sbit du=P2^1; //段选位
sbit we=P2^0; //位选位
uchar code duanma[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(xms) //延时函数
{
uchar i,j;
for(xms=i,i>0;i--;)
for(j=11;j>0;j--);
}
void main() //主函数
{
we=1; //位选开
P0=0; //8位数码管全部显示
we=0; //位选关
du=1; //段选开
P1=0x00; //初始化,8位数码管无显示
while(1)
{
uchar a,b;
P1=0xf0;
a=P1;
if(a!=0xf0)
{
delay(5); //去抖动
b=P1;
if(a==b)
{
a=0xfe;
do
{
P1=a;
if(a!=P1)
{
switch(P1)
{
case 0x7e:{P0=duanma[0];break;} //编码检测,第一个键按下显示0,第16个按键按下显示F
case 0xbe:{P0=duanma[1];break;}
case 0xde:{P0=duanma[2];break;}
case 0xee:{P0=duanma[3];break;}
case 0x7d:{P0=duanma[4];break;}
case 0xbd:{P0=duanma[5];break;}
case 0xdd:{P0=duanma[6];break;}
case 0xed:{P0=duanma[7];break;}
case 0x7b:{P0=duanma[8];break;}
case 0xbb:{P0=duanma[9];break;}
case 0xdb:{P0=duanma[10];break;}
case 0xeb:{P0=duanma[11];break;}
case 0x77:{P0=duanma[12];break;}
case 0xb7:{P0=duanma[13];break;}
case 0xd7:{P0=duanma[14];break;}
case 0xe7:{P0=duanma[15];break;}
}
}
a=_crol_(a,1); //循环移位去检测按键
}while(a!=0xef);
}
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-20
我这有

数码管显示构成的电子密码锁
第2个回答  2012-08-20
看到单片机编程真亲切啊

80c51单片机用汇编语言4个独立按键如何分别控制4个数码管从0到9到0...
TABLE:DB 3FH,06H,5BH,4FH,66H;共阴段码表 DB 6DH,7DH,07H,7FH,6FH END

求:单片机80c51怎么做脉冲信号发生器
ZKB=counter[0]+counter[1]*10;if(AN4==0){ delay(5);if(AN4==0)

8031的详细资料
8051(8751,8031) 4K 128 5 2 同、异步方式,8位或10位可程序控制 125 HMOS 8052(8752,8032) 8K 256 6 3 同、异步方式,8位或10位可程序控制 100 HMOS 80C51(87C51,80C31) 4K 128 5 2 同、异步方式,8位或10位可程序控制 24 CHMOS 80C52(87C52,80C32) 8K 256 7 3 同、异步方式,8位或10位可...

80c51单片机驱动LED显示。。。急急急
把“单片机系统”区域中的P0.0\/AD0-P0.7\/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0\/AD0与a相连,P0.1\/AD1与b相连,P0.2\/AD2与c相连,……,P0.7\/AD7与h相连。4.程序设计内容 (1.LED数码显示原理 七段LED显示器内部由七...

...80c51驱动两个数码管循环显示0-9,这个c语言的程序是什么意思?_百度...
P2=tmp; \/\/第一个数码管显示数据tmp delay(1); \/\/延时越1ms P3=0xfd; \/\/选通第二

AT89S51单片机的内部资源有哪些,分别是怎么使用的?
点击浏览下一页19:单片机定时器、中断试验 点击浏览下一页20:单片机定时\/计数器实验 点击浏览下一页21:单片机串行口介绍系列四 点击浏览下一页22:单片机串行口通信程序设计 点击浏览下一页23:LED数码管静态显示接口与编 点击浏览下一页24:动态扫描显示接口电路及程序 点击浏览下一页25:单片机键盘接口程序设计 点击浏...

懂80C51单片机的进~
懂80C51单片机的进~ 条件:80C51单片机,ADC0809,LCD1602及按键。目的:8路PT100温度巡检0~100度。1)电路图2)说明(大致主要的引脚功能等设计说明)3)流程图4)ADC0809和LCD1602的驱动子程序我知道不... 条件:80C51单片机,ADC0809,LCD1602及按键。目的:8路PT100温度巡检0~100度。1)电路图 2)说明(大致主要的引脚...

80c51单片机基础练习习题 资料 试题
答:80C51系列单片机在片内集成了以下主要逻辑功能部件及分别有如下的主要功能。 (l)CPU(中央处理器):8位 功能:中央处理器由中央控制器与运算器一起构成。中央控制器是识别指令,并根据指令性质控制计算机各组成部件进行工作的部件。 (2)片内RAM:128B 功能:在单片机中,用随机存取存储器(RAM)来存储程序在运行期间的...

80c51单片机和c8051单片机有什么区别呢?
C8051F与80C51系列单片机的不同初始化摘要:C8051F系列单片机是Cygnal公司出品的高速单片机,它与80C51系列单片机指令集兼容,但比后者增加了许多资源,从而为嵌入式系统的开发提供了极大的方便。文中介绍了这两者在结构上的差异以及编程时应注意的问题,并给出了它们较完整的初始化程序。 关键词:特殊功能寄存器SDR;先权交...

8位数字密码锁:密码可随意改,密码正确LED点亮,输入三次密码错误后报警...
uchar jgh1[9]; \/\/输入键盘缓存 uchar mima[9]={0,1,2,3,4,5,6,7,8};\/\/初始8位密码 : 12345678 第0位未用 uchar fangjian[4]={0,2,5,2}; \/\/初始门牌号 252 第0位未用 char count=0;void init_serialcomm(void) \/\/串口波特率设置 { SCON=0x50;TMOD=0x20;PCON=0x80;TH...

相似回答