当前位置: 首页 > news >正文

项目三简易计算器 任务3-5六位密码锁

任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,
编程完成一位密码校验,结果正确显示“HELLO”,结果错误显示“ERROR”

六位密码锁讲解

/************************* 项目名称:项目三简易计算器 任务名称:任务3-5六位密码锁 任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘, 编程完成一位密码校验,结果正确显示“HELLO”,结果错误显示“ERROR” *************************/ #include<reg51.h> #include<intrins.h> //51单片机寄存器定义头文件 sbit row0=P1^0; sbit row1=P1^1; sbit row2=P1^2; sbit row3=P1^3; sbit col0=P1^4; sbit col1=P1^5; sbit col2=P1^6; sbit col3=P1^7; int n;//存放按键编号(用户输入的密码) int t;//存放系统预留密码 int m1[]={0x89,0x86,0xc7,0xc7,0xc0};//HELLO int m2[]={0x86,0x88,0x88,0xc0,0x88};//ERROR int dis[2];//存放结果的十位和个位 int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义0~9共阳极七段码 void key1();//等待按键按下,无限查询 void key2();//扫描按键位置,行列扫描 void key3();//处理按键请求,显示编号 void display();//显示HELLO或者ERROR /**********************************************/ void delay(int i) { int k,j; for(k=0;k<i;k++) for(j=0;j<100;j++); } /**********************************************/ void main() { while(1) { key1(); key2(); key3(); } } /**********************************************/ void key1() { while(1) { P1=0x0f; if(P1!=0x0f)//有变化,一定是有按键按下,导致某行某列短路 delay(10);//延时10毫秒,去掉按键抖动 if(P1!=0x0f) break;//退出查询 } } /**********************************************/ void key2() { P1=0xff;//行列都写1 col0=0;//清零0列 if(row0==0) n=0; if(row1==0) n=1; if(row2==0) n=2; if(row3==0) n=3; P1=0xff;//行列都写1 col1=0;//清零1列 if(row0==0) n=4; if(row1==0) n=5; if(row2==0) n=6; if(row3==0) n=7; P1=0xff;//行列都写1 col2=0;//清零2列 if(row0==0) n=8; if(row1==0) n=9; if(row3==0){t=n;n=10;}//确认键:保存用户输入密码,键值10 } /**********************************************/ void key3() { if(n<10)//按下数字键,显示数字 { P2=0xfe;//1111 1110 P0=seg[n]; } else//按下等号键 display();//显示两位结果 } /**********************************************/ void display() { int i,j; while(1) { for(i=0,j=0x7f;i<5;i++)//0111 1111 { P2=j; if(t==7) P0=m1[i];//取HELLO else P0=m2[i];//ERROR delay(2); j=_cror_(j,1); } } }

又因为实际实验是四位数码管,所以

/************************* 项目名称:项目三简易计算器 任务名称:任务3-5六位密码锁 任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘, 编程完成一位密码校验,结果正确显示“HELLO”,结果错误显示“ERROR” 姓名日期:物联网2202黄杉,2024-04-19 *************************/ #include<reg51.h> #include<intrins.h> //51单片机寄存器定义头文件 sbit row0=P1^0; sbit row1=P1^1; sbit row2=P1^2; sbit row3=P1^3; sbit col0=P1^4; sbit col1=P1^5; sbit col2=P1^6; sbit col3=P1^7; int n;//存放按键编号(用户输入的密码) int t;//存放系统预留密码 int m1[]={0x89,0x86,0xc7,0xc0};//HELO int m2[]={0x86,0x88,0xc0,0x88};//EROR int dis[2];//存放结果的十位和个位 int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义0~9共阳极七段码 void key1();//等待按键按下,无限查询 void key2();//扫描按键位置,行列扫描 void key3();//处理按键请求,显示编号 void display();//显示HELLO或者ERROR /**********************************************/ void delay(int i) { int k,j; for(k=0;k<i;k++) for(j=0;j<100;j++); } /**********************************************/ void main() { while(1) { key1(); key2(); key3(); } } /**********************************************/ void key1() { while(1) { P1=0x0f; if(P1!=0x0f)//有变化,一定是有按键按下,导致某行某列短路 delay(10);//延时10毫秒,去掉按键抖动 if(P1!=0x0f) break;//退出查询 } } /**********************************************/ void key2() { P1=0xff;//行列都写1 col0=0;//清零0列 if(row0==0) n=0; if(row1==0) n=1; if(row2==0) n=2; if(row3==0) n=3; P1=0xff;//行列都写1 col1=0;//清零1列 if(row0==0) n=4; if(row1==0) n=5; if(row2==0) n=6; if(row3==0) n=7; P1=0xff;//行列都写1 col2=0;//清零2列 if(row0==0) n=8; if(row1==0) n=9; if(row3==0){t=n;n=10;}//确认键:保存用户输入密码,键值10 } /**********************************************/ void key3() { if(n<10)//按下数字键,显示数字 { P2=0xfe;//1111 1110 P0=seg[n]; } else//按下等号键 display();//显示两位结果 } /**********************************************/ void display() { int i,j; while(1) { for(i=0,j=0xf7;i<4;i++)//0111 1111 { P2=j; if(t==7) P0=m1[i];//取HELLO else P0=m2[i];//ERROR delay(5); j=_cror_(j,1); } } }

注意 如果P2选择低四位,则P2=0xfe,P2=0xf7;

高四位则为P2=0xef,P2=0x7f。

http://www.jsqmd.com/news/988017/

相关文章:

  • 2026年6月最新版葫芦岛第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 2026深圳家庭/企业/长途搬迁全场景正规靠谱搬家机构名单,让搬家更省心 - 从来都是英雄出少年
  • Nex-N2-mini 智能体思维框架深度解析:自适应思维与连贯性思维原理
  • 武汉空调回收厂家排行 5家合规服务商实测对比 - 起跑123
  • Home Assistant区域管理终极指南:按房间智能控制你的家居设备
  • 2026年6月最新版毫州第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 2026年6月最新版呼伦贝尔第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 2026年6月最新版广安第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • CH341A/B USB转USART/I2C/SPI介绍
  • 界面控件DevExpress WPF中文教程:Data Grid - 绑定数据
  • 松江区岳阳专业疏通下水道上门服务|居顺联家政疏通服务完整介绍 - 居顺联家政疏通
  • 2026年6月最新版黄冈第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • PR计算题——2025
  • MobileOne模型性能对比:S0-S4五个版本速度与精度全面评测
  • LLM Engine API详解:完整掌握Completion与FineTune接口使用
  • 2026年喜铺推荐排行榜:广东喜铺/爱哆哆喜铺/红娘喜铺/婚庆策划喜铺/婚庆服务喜铺/婚礼喜铺精选 - 品牌发掘
  • wgs-84高精度空间直角坐标转为CGCS2000坐标程序开发
  • AnimeGAN2-Pytorch图像动漫化指南:三步实现照片转动漫风格
  • Eventuate Local API参考手册:核心接口与配置参数详解
  • 2026年全国氦气检测仪品牌排行 附避坑指南及FAQ - 互联网科技品牌测评
  • 项目三简易计算器 任务3-6六位密码锁2
  • RK3566-OS11自动更新时区
  • 2026年6月最新版黑河第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 2026年6月最新版湖州第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 腾讯云Redis与自建方案技术经济性对比 - 领先技术探路人
  • Unity毛发系统常见问题解决:10个常见错误与修复方法
  • CodeX Docs配置指南:轻松自定义你的免费文档系统
  • 188数码管新版本,简单易懂
  • 2026北京公司注册代办机构专业度排行:5家主流机构实测对比(附精准选型指南) - 互联网科技品牌测评
  • 2026年 内蒙建筑膜/家具贴膜/居家隔热防晒膜TOP5推荐:专业防晒隔热与隐私保护膜品牌实力精选! - 品牌发掘