当前位置:网站首页>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();
}
}边栏推荐
- Opendrive arc drawing script
- The mutual realization of C L stack and queue in I
- STM32 learning method
- ·Practical website·
- [MySQL] database knowledge record
- cygwin
- Simple operation of nixie tube (keil5)
- Oracle-触发器和程序包
- deepin 20 kivy unable to get a window, abort
- NSIS finds out whether the file exists and sets the installation path
猜你喜欢

Hdu1232 unimpeded project (and collection)

CADD课程学习(6)-- 获得已有的虚拟化合物库(Drugbank、ZINC)

Rough notes of C language (2) -- constants

CADD课程学习(5)-- 构建靶点已知的化合结构(ChemDraw)

How to deal with excessive memory occupation of idea and Google browser

MySql——存储引擎

Close of office 365 reading

Butterfly theme beautification - Page frosted glass effect

Thunderbird tutorial \ easy to use mail client

Clickhouse database installation deployment and remote IP access
随机推荐
Matrix keyboard scan (keil5)
SQL JOINS
repo. conda. An example of COM path error
msys2
From then on, I understand convolutional neural network (CNN)
Hdu1232 unimpeded project (and collection)
Day07 type of mathematical operator automatic conversion relational operator bitwise operator blind date math
editplus
Exit of pyGame, idle and pycharm
RTOS in the development of STM32 single chip microcomputer
QT small case "addition calculator"
Function and usage of function pointer
Opendrive arc drawing script
Practical application cases of digital Twins - fans
Numpy——1.数组的创建
assert_ Usage of param function
Opendrive ramp
Microservice registry Nacos introduction
Oracle-触发器和程序包
数字孪生实际应用案例-风机篇