当前位置:网站首页>Extended application of single chip microcomputer-06 independent key
Extended application of single chip microcomputer-06 independent key
2022-07-05 07:41:00 【LCH Nan'an】
subject :

Blue Bridge Cup MCU simulation schematic diagram : Blue Bridge Cup MCU simulation schematic diagram .pdsprj- Handout document resources -CSDN library
Circuit diagram :
Code :
# include<reg52.h>
// Decoder
sbit HC138_C = P2^7;
sbit HC138_B = P2^6;
sbit HC138_A = P2^5;
// LED
sbit L1 = P0^0;
sbit L2 = P0^1;
sbit L3 = P0^2;
sbit L4 = P0^3;
sbit L5 = P0^4;
sbit L6 = P0^5;
// Independent keyboard
sbit S7 = P3^0;
sbit S6 = P3^1;
sbit S5 = P3^2;
sbit S4 = P3^3;
void SwitchHC138(unsigned char channel)
{
switch(channel)
{
case 4:
HC138_C = 1;
HC138_B = 0;
HC138_A = 0;
break;
case 5:
HC138_C = 1;
HC138_B = 0;
HC138_A = 1;
break;
case 6:
HC138_C = 1;
HC138_B = 1;
HC138_A = 0;
break;
case 7:
HC138_C = 1;
HC138_B = 1;
HC138_A = 1;
break;
}
}
void DelayKeys(unsigned char t)
{
while(t--);
}
unsigned char flag=0;
void ScanKeys()
{
if(S7 == 0)
{
DelayKeys(100);
if(S7==0)
{
if(flag==0)
{
L1 = 0;
flag=1;
}
else if(flag == 1)
{
L1 = 1;
flag = 0;
}while(S7 == 0);
}
}
if(S6 == 0)
{
DelayKeys(100);
if(S6==0)
{
if(flag==0)
{
L2 = 0;
flag=2;
}
else if(flag == 2)
{
L2 = 1;
flag = 0;
}while(S6 == 0);
}
}
if(S5 == 0)
{
DelayKeys(100);
if(S5 == 0)
{
if(flag == 1)
{
L3 = 0;
while(S5 == 0); // Close when you let go L3
L3 = 1;
}
else if(flag == 2)// Close when you let go L4
{
L5 = 0;
while(S5 == 0);
L5 = 1;
}
}
}
if(S4 == 0)
{
DelayKeys(100);
if(S4 == 0)
{
if(flag == 1)
{
L4 = 0;
while(S4 == 0); // Close when you let go L3
L4 = 1;
}
else if(flag == 2)// Close when you let go L4
{
L6 = 0;
while(S4 == 0);
L6 = 1;
}
}
}
}
void Init()
{
SwitchHC138(7);
P0=0x00;
SwitchHC138(5);
P0=0x00;
SwitchHC138(4);
P0=0xff;
}
void main()
{
Init();
while(1)
{
ScanKeys();
}
}边栏推荐
- Anaconda pyhton multi version switching
- QT small case "addition calculator"
- RTOS in the development of STM32 single chip microcomputer
- UNIX commands often used in work
- (tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
- Apple script
- Distinction between heap and stack
- Ue5 hot update - remote server automatic download and version detection (simplehotupdate)
- editplus
- Efficiency difference: the add method used by the set directly and the add method used by the set after judgment
猜你喜欢

QT small case "addition calculator"

数字孪生实际应用案例-风机篇

UE5热更新-远端服务器自动下载和版本检测(SimpleHotUpdate)

Idea to view the source code of jar package and some shortcut keys (necessary for reading the source code)

2022 PMP project management examination agile knowledge points (7)

Close of office 365 reading

Don't confuse the use difference between series / and / *

Openxlsx field reading problem

Leetcode solution - number of islands

Light up the running light, rough notes for beginners (1)
随机推荐
(top) pretty girl binary color code portal
MySql——存储引擎
Professional knowledge of public security -- teacher bilitong
Rough notes of C language (1)
行测--资料分析--fb--高照老师
I 用c I 实现队列
公安基础知识--fb
Efficiency difference: the add method used by the set directly and the add method used by the set after judgment
String alignment method, self use, synthesis, newrlcjust
MySQL - storage engine
Apple input method optimization
Oracle-触发器和程序包
Selenium element positioning
Explanation of parallel search set theory and code implementation
CADD course learning (6) -- obtain the existing virtual compound library (drugbank, zinc)
Cygwin installation
Rename directory in C [closed] - renaming a directory in C [closed]
数字孪生实际应用案例-风机篇
·Practical website·
[untitled]