news 2026/8/22 0:13:05

8051单片机程序——矩阵键盘+led数码管实现密码锁

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
8051单片机程序——矩阵键盘+led数码管实现密码锁

以下通过8051实现密码锁的简单程序,并无实用价值,重在记录8051单片机编程的一些重要算法。

led数码管:8位共阳型数码管;

段码锁存器采用74HC245:8051与74HC245、LED的连接电路图如下:

位码锁存器采用74HC138:8051与74HC138、LED的连接电路图如下:

8051与矩阵键盘的连接电路图如下:

74HC138芯片的真值表如下:

根据以上电路图和74HC138芯片的真值表,可以确定出sec_table、pos_table、key_table、err_table、open_table的取值。

#include <reg51.h> #include <string.h> #define SEC P0 #define KEY P1 #define POS P2 #define TIMER0_RELOAD_HIGH 0xFC #define TIMER0_RELOAD_LOW 0x18 #define POS_SIZE 8 unsigned char code sec_table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; unsigned char code pos_table[] = {0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C}; // 注意看74HC138与8051之间的连接电路图。 unsigned char data pos_num[POS_SIZE] = {0}; unsigned char code key_table[] = {0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06}; unsigned char code err_table[] = {0x72, 0x72, 0x79}; unsigned char code open_table[] = {0x37, 0x79, 0x73, 0x3F}; void delay_10us(unsigned char us) { while (--us); /* 12M晶振,--us等于10微秒。 */ } void delay_ms(unsigned char ms) { while (ms--) { delay_10us(100); } } void t0int_s(void) { TMOD = 0x01; /* TMOD寄存器,定时器位数为16位。 */ TH0 = TIMER0_RELOAD_HIGH; /* TH0寄存器。 */ TL0 = TIMER0_RELOAD_LOW; /* TL0寄存器。 */ EA = 1; /* IE寄存器,允许所有中断。 */ ET0 = 1; /* IE寄存器,允许定时器0中断。 */ TR0 = 1; /* TCON寄存器,开始触发定时器0中断。 */ } void t0int_z(void) interrupt 1 { static unsigned int i = 0; TH0 = TIMER0_RELOAD_HIGH; TL0 = TIMER0_RELOAD_LOW; SEC = 0; POS = pos_table[i]; SEC = pos_num[i]; i++; if (i >= POS_SIZE) { i = 0; } } unsigned char keys(void) { unsigned char keyz = 0xFF; KEY = 0x0F; if (KEY != 0x0F) { delay_ms(10); KEY = 0x0F; switch (KEY) // 确定列。 { case 0x07: keyz = 1; break; case 0x0B: keyz = 2; break; case 0x0D: keyz = 3; break; case 0x0E: keyz = 4; break; } KEY = 0xF0; switch (KEY) // 确定行。 { case 0x70: break; case 0xB0: keyz += 4; break; case 0xD0: keyz += 8; break; case 0xE0: keyz += 12; break; } while (KEY != 0xF0); } return keyz; } void main(void) { static signed char i = POS_SIZE - 1; unsigned char num = 0; t0int_s(); while (1) { num = keys(); if (num <= 0x0A) { num %= 0x0A; pos_num[i--] = sec_table[num]; if (i < 0) { i = POS_SIZE - 1; } } else if (num <= 0x10 ) { if ( memcmp(pos_num, key_table, sizeof(pos_num) ) == 0 ) { memset( pos_num, 0, sizeof(pos_num) ); memcpy( pos_num, open_table, sizeof(open_table) ); } else { memset( pos_num, 0, sizeof(pos_num) ); memcpy( pos_num, err_table, sizeof(err_table) ); } i = POS_SIZE - 1; } } }

程序功能:

按下是s1~s10输入8位0~9的任意数字,当按下s11~s16的任何键时,将校验密码是否正确,如果正确,则在数码管输出OPEN字样,如果失败,则在数码管输出Err字样。

重要函数说明:

1、led数码管显示采用定时器中断程序实现输出段码,参见t0int_z函数;

2、矩阵键盘使用线翻转扫描方法;参见keys函数;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 21:07:15

时间陷阱:当你为市场献上所有清醒时间,市场回报你什么?

外汇交易是否需要长时间盯盘&#xff1f;多数成熟的自营交易员给出的结论是&#xff1a;盯盘越久&#xff0c;判断越不准。很多交易者都经历过类似的场景&#xff1a;坐在屏幕前&#xff0c;原本精神饱满&#xff0c;但看着看着就开始分心、烦躁&#xff0c;甚至出现“随手点单…

作者头像 李华
网站建设 2026/8/20 21:53:07

AI搜索排名GEO优化家居装修业白皮书

AI搜索排名GEO优化家居装修业白皮书引言在数字化时代&#xff0c;家居装修行业面临着激烈的市场竞争。为了在搜索引擎中获得更高的排名&#xff0c;企业需要采用先进的AI搜索排名GEO优化技术。本文将深入探讨AI搜索排名GEO优化在家居装修业中的应用&#xff0c;并推荐中二GEO优…

作者头像 李华
网站建设 2026/8/21 21:40:06

http的会话控制(flask)

http的会话控制所谓的会话&#xff08;session&#xff09;&#xff0c;就是客户端浏览器和服务端网站之间一次完整的交互过程.会话的开始是在用户通过浏览器第一次访问服务端网站开始.会话的结束时在用户通过关闭浏览器以后&#xff0c;与服务端断开.所谓的会话控制&#xff0…

作者头像 李华
网站建设 2026/8/21 20:54:54

EmotiVoice语音合成引擎的实时监控与日志记录功能

EmotiVoice语音合成引擎的实时监控与日志记录功能 在当前AI驱动的语音交互浪潮中&#xff0c;用户早已不再满足于“能说话”的机器。从虚拟偶像到智能客服&#xff0c;人们期待的是富有情感、个性鲜明且响应稳定的语音体验。EmotiVoice作为一款支持多情感表达和零样本声音克隆的…

作者头像 李华
网站建设 2026/8/21 21:16:02

做SEO还在手动选词?InfiniSynpse带你5分钟筛选出优质词!

SEO运营的老难题&#xff1a;如何从900个关键词中找到值得做的那些长尾词or冰点词&#xff1f; 作为SEO运营人员&#xff0c;你一定遇到过这种情况&#xff1a; 从SEMRUSH导出了一个包含几百甚至上千关键词的Excel表格&#xff0c;打开一看&#xff0c;密密麻麻的数据让人不知…

作者头像 李华
网站建设 2026/8/21 21:51:45

G-Helper终极配置指南:华硕设备性能优化全攻略

G-Helper终极配置指南&#xff1a;华硕设备性能优化全攻略 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: http…

作者头像 李华