资源简介
新人,发个小作品 是一个基于矩阵式键盘实现的电子密码锁,功能十分简单,希望不要见笑。代码有非常详细的注解。下面附上源代码以及仿真文件
代码片段和文件信息
//实例80:矩阵式键盘实现的电子密码锁
#include //包含51单片机寄存器定义的头文件
sbit P14=P1^4; //将P14位定义为P1.4引脚
sbit P15=P1^5; //将P15位定义为P1.5引脚
sbit P16=P1^6; //将P16位定义为P1.6引脚
sbit P17=P1^7; //将P17位定义为P1.7引脚
sbit sound=P3^7; //将sound位定义为P3.7
unsigned char keyval; //储存按键值
/**************************************************************
函数功能:延时输出音频
**************************************************************/
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++)
;
}
/**************************************************************
函数功能:软件延时子程序
**************************************************************/
void delay20ms(void)
{
unsigned char ij;
for(i=0;i<100;i++)
for(j=0;j<60;j++)
;
}
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
unsigned char D[ ]={08087411}; //设定密码
EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-500)/256; //定时器T0的高8位赋初值
TL0=(65536-500)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
keyval=0xff; //按键值初始化
while(keyval!=D[0]) //第一位密码输入不正确,等待
;
while(keyval!=D[1]) //第二位密码输入不正确,等待
;
while(keyval!=D[2]) //第三位密码输入不正确,等待
;
while(keyval!=D[3]) //第四位密码输入不正确,等待
;
while(keyval!=D[4]) //第五位密码输入不正确,等待
;
while(keyval!=D[5]) //第六位密码输入不正确,等待
;
while(keyval!=D[6]) //没有输入“OK”,等待
;
P3=0xfe; //P3.0引脚输出低电平,点亮LED
}
/**************************************************************
函数功能:定时器0的中断服务子程序,进行键盘扫描,判断键位
**************************************************************/
void time0_interserve(void) interrupt 1 using 1 //定时器T0的中断编号为1,使用第一组寄存器
{
unsigned char i;
TR0=0; //关闭定时器T0
P1=0xf0; //所有行线置为低电平“0”,所有列线置为高电平“1”
if((P1&0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下
delay20ms(); //延时一段时间、软件消抖
if((P1&0xf0)!=0xf0) //确实有键按下
{
P1=0xfe; //第一行置为低电平“0”(P
- 上一篇:HOOK API 完美支持 x86 x64
- 下一篇:小飞淘口令解析.exe
相关资源
- 电子密码锁 proteus仿真
- 心形流水灯仿真电路
- 51单片机方波发生器频率计lcd.zip
- 基于msp430单片机的电子万年历LCD 128
- 基于msp430单片机的红外线遥控解码L
- PCF8591 ad转换及lcd显示
- 步进电机实现的悬挂运动控制系统
- 最牛的交通灯proteus仿真附keil程序
- 8255单片机led显示实验
- 宏晶STC单片机常见封装及PCB库
- LCD12864 万年历 单片机 农历 显示 温度
- 056 货车超重监测系统 51单片机 仿真
- 030 矩阵键盘 电子琴 仿真 51单片机
- 025 四路定时开关 51单片机仿真
- 014 电流表 仿真 51单片机 proteus仿真
- 单片机 汇编语言 简易红绿灯
- PIC18单片机 官方所有程序 包含AD TI
- 基于51单片机的16X16点阵电子琴
- 步进电机运行源代码及protues仿真
- MSP430G25534个简单的小程序
- STC单片机触摸C程序
- 光敏电阻测试数码管显示
- 课程设计 51单片机电机PID调速打包k
- 51单片机+Nokia5110 实现点菜收银系统
- 用51单片机产生PWM控制直流小电机
- 单片机激光相位测距仪原理图
- 基于51单片机DHT11温湿度检测和串口通
- 基于51单片机的16*16点阵显示汉字
- 3路智能小车循迹程序
- 51单片机舵机角度控制程序
评论
共有 条评论