当前位置:网站首页>Simple operation with independent keys (hey, a little fancy) (keil5)
Simple operation with independent keys (hey, a little fancy) (keil5)
2022-07-05 07:18:00 【After reading thousands of books, you can pick them up and put 】
Just got a brief understanding
sbit Definition *** One pin ***
sfr Definition *** A parallel port ***( Such as P2 Calculate a parallel port , Yes 8 One pin )
#define It's equivalent to changing names ,( Of course, self understanding , I don't know how to say it in technical terms ) For example, this string of code ***P2=0X8f&(P2|0xe0);// open y4 Latch ***, If you don't want to play so long next , Then you can ***#define Y4 P2=0X8f&(P2|0xe0);*** such , Next, you can write ***Y4;*** Just fine . All in all #define Pins and parallel ports cannot be defined .
#include <STC15F2K60S2.H>
sbit s7 = P3^0;// Definition P30 Pin , It can also be used directly P30
sbit s6 = P3^1;// Definition P31 Pin , It can also be used directly P31
/***************************************************/
void initsystem(unsigned char i)// initialization
{
switch(i)
{
case 4:
P2=0X8f&(P2|0xe0);// open y4 Latch
break;
case 5:
P2=0xbf&(P2|0xe0);// open y5 Latch
break;
case 6:
P2=0xdf&(P2|0xe0);// open y6 Latch
break;
case 7:
P2=0xff&(P2|0xe0);// open y7 Latch
break;
case 0:
P2=0x1f&(P2|0xe0);// Close the latch (y4,y5,y6,y7)
break;
}
}
/***********************************************/
void led_control(unsigned char n,unsigned char q)// Control lights (p0 End , Latch )
{
initsystem(q);
P0 = n;
}
/*******************************************/
void Delay (unsigned int t)// Time delay
{
while(t--);
while(t--);
}
/********************************************/
void LED_Running ()// Running lights
{
unsigned char i;
for (i=0;i<3;i++)// All lights are on and off 3 Time
{
led_control(0x00,4);
Delay (60000);
led_control(0xff,4);
Delay (60000);
}
for(i=1;i<8;i++)// The lights come on in turn
{
led_control(0xff<<i,4);
Delay(60000);
}
for(i=1;i<8;i++)// The lights go out in turn
{
led_control(~(0xff<<i),4);
Delay(60000);
}
}
/**********************************************/
void LED_1()// Interval flashing light
{
led_control(0xaa,4);
Delay (10000);
led_control(0x55,4);
Delay (10000);
}
/*********************************************************/
void key_alone()// Press s7 Execute the running light , Press s6 Perform interval flashing
{
if(s7==0)// or P30==0
Delay(60000);
if(s7==0)// or P30==0
{
LED_Running ();
}
if(s7==1)// or P30==1
{
led_control(0xff,4);
}
/**********************************************/
if(s6==0)// or P31==0
Delay(60000);
if(P31==0)// or P31==0
{
LED_1();
}
if(s6==1)// or P31==1
{
led_control(0xff,4);
}
}
/***************************************************/
void main()// The main function
{
led_control(0Xff,4);initsystem(0);// initialization
led_control(0x00,5);initsystem(0);// initialization
while(1)
{
key_alone();
}
}
边栏推荐
- 基于Cortex-M3、M4的GPIO口位带操作宏定义(可总线输入输出,可用于STM32、ADuCM4050等)
- Implementation of one-dimensional convolutional neural network CNN based on FPGA (VIII) implementation of activation layer
- Logical structure and physical structure
- 逻辑结构与物理结构
- Initialization of global and static variables
- M2DGR 多源多场景 地面机器人SLAM数据集
- Inftnews | drink tea and send virtual stocks? Analysis of Naixue's tea "coin issuance"
- 网易To B,柔外刚中
- GPIO port bit based on Cortex-M3 and M4 with operation macro definition (can be used for bus input and output, STM32, aducm4050, etc.)
- The problem of configuring opencv in qt5.13.2 is solved in detail
猜你喜欢

Word import literature -mendeley

Ros2 - function package (VI)

Docker installs MySQL and uses Navicat to connect

【无标题】

Delayqueue usage and scenarios of delay queue

并发编程 — 如何中断/停止一个运行中的线程?

And play the little chestnut of dynamic agent

SD_CMD_RECEIVE_SHIFT_REGISTER

【软件测试】04 -- 软件测试与软件开发

SD_ CMD_ SEND_ SHIFT_ REGISTER
随机推荐
Ros2 - node (VII)
网易To B,柔外刚中
Target detection series - detailed explanation of the principle of fast r-cnn
程序中的负数存储及类型转换
Ethtool principle introduction and troubleshooting ideas for network card packet loss (with ethtool source code download)
iNFTnews | 喝茶送虚拟股票?浅析奈雪的茶“发币”
D2L installation
Ros2 - Service Service (IX)
2022.06.27_ One question per day
Concurrent programming - how to interrupt / stop a running thread?
ORACLE CREATE SEQUENCE,ALTER SEQUENCE,DROP SEQUENCE
2022 PMP project management examination agile knowledge points (7)
An article was opened to test the real situation of outsourcing companies
Unity ugui how to match and transform coordinates between different UI panels or uis
Matlab在线性代数中的应用(四):相似矩阵及二次型
【软件测试】05 -- 软件测试的原则
Ros2 - workspace (V)
Powermanagerservice (I) - initialization
Executealways of unity is replacing executeineditmode
PostMessage communication