当前位置:网站首页>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();
}
}
边栏推荐
猜你喜欢
Ros2 - install ros2 (III)
Altimeter data knowledge point 2
Mipi interface, DVP interface and CSI interface of camera
M2DGR 多源多场景 地面机器人SLAM数据集
C#学习笔记
Machine learning Seaborn visualization
1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析
arcgis_ spatialjoin
[software testing] 06 -- basic process of software testing
[node] NVM version management tool
随机推荐
C#学习笔记
你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?
C语言数组专题训练
【软件测试】04 -- 软件测试与软件开发
Ros2 - configuration development environment (V)
Three body goal management notes
Initialization of global and static variables
arcgis_ spatialjoin
Altimeter data knowledge point 2
纯碱是做什么的?
乐鑫面试流程
Chapter 2: try to implement a simple bean container
Batch convert txt to excel format
并发编程 — 如何中断/停止一个运行中的线程?
DelayQueue延迟队列的使用和场景
全局变量和静态变量的初始化
Jenkins reported an error. Illegal character: '\ufeff'. Class, interface or enum are required
Oracle code use
D2L installation
【无标题】