- 打卡等级:偶尔看看I
- 打卡总天数:15
- 最近打卡:2025-05-06 15:23:14
版主
- 积分
- 2514

|
发表于 2025-1-3 10:28:50
|
显示全部楼层
打卡第十集
任务一、P2口流水灯,P10闪烁
#include "io.h"
u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol ;
void LED0_Blink(void)
{
State1=!State1;
P00=State1;
}
void LED1_Blink(void)
{
State2=!State2;
P01=State2;
}
void LED2_Blink(void)
{
State3=!State3;
P02=State3;
}
void KEY_Task(void)
{
if( P32 == 0 )
{
Key_Vol++;
if( Key_Vol==5 )
{
//按键按下的任务
printf( "按键单击\r\n" );
}
}
else
{
Key_Vol = 0;
}
}
u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
LED40_SetPort(2,~P2_STATE);
P2_STATE = (P2_STATE<<1);
if(P2_STATE==0)
P2_STATE=1;
if(P10_STATE==0)
LED40_SetBit(1,0);
else
LED40_ClrBit(1,0);
P10_STATE = !P10_STATE;
}
任务二、左边数码管显示P32按下次数,右边数码管显示P33按下次数
#include "io.h"
u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol;
u16 Key_Vol_2;
void LED0_Blink(void)
{
State1=!State1;
P00=State1;
}
void LED1_Blink(void)
{
State2=!State2;
P01=State2;
}
void LED2_Blink(void)
{
State3=!State3;
P02=State3;
}
u16 KEY1_COUNT = 0;
u16 KEY2_COUNT = 0;
void KEY_Task(void)
{
if( P32 == 0 )
{
Key_Vol++;
if( Key_Vol==5 )
{
KEY1_COUNT++;
}
}
else
{
Key_Vol = 0;
}
if( P33 == 0 )
{
Key_Vol_2++;
if( Key_Vol_2==5 )
{
KEY2_COUNT++;
}
}
else
{
Key_Vol_2 = 0;
}
}
u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
LED40_SetPort(2,~P2_STATE);
P2_STATE = (P2_STATE<<1);
if(P2_STATE==0)
P2_STATE=1;
if(P10_STATE==0)
LED40_SetBit(1,0);
else
LED40_ClrBit(1,0);
P10_STATE = !P10_STATE;
}
u32 KEY_Count = 0;
void TASK_2(void)
{
KEY_Count = KEY1_COUNT*10000+KEY2_COUNT;
SEG7_ShowLong(KEY_Count,10);
}
任务三、按下数字按键在数码管显示对应的按键数字
#include "io.h"
u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol;
u16 Key_Vol_2;
void LED0_Blink(void)
{
State1=!State1;
P00=State1;
}
void LED1_Blink(void)
{
State2=!State2;
P01=State2;
}
void LED2_Blink(void)
{
State3=!State3;
P02=State3;
}
u16 KEY1_COUNT = 0;
u16 KEY2_COUNT = 0;
void KEY_Task(void)
{
if( P32 == 0 )
{
Key_Vol++;
if( Key_Vol==5 )
{
KEY1_COUNT++;
}
}
else
{
Key_Vol = 0;
}
if( P33 == 0 )
{
Key_Vol_2++;
if( Key_Vol_2==5 )
{
KEY2_COUNT++;
}
}
else
{
Key_Vol_2 = 0;
}
}
u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
LED40_SetPort(2,~P2_STATE);
P2_STATE = (P2_STATE<<1);
if(P2_STATE==0)
P2_STATE=1;
if(P10_STATE==0)
LED40_SetBit(1,0);
else
LED40_ClrBit(1,0);
P10_STATE = !P10_STATE;
}
u32 KEY_Count = 0;
void TASK_2(void)
{
KEY_Count = KEY1_COUNT*10000+KEY2_COUNT;
SEG7_ShowLong(KEY_Count,10);
}
u32 REC_NUM = 0;
void TASK_3(void)
{
SEG7_ShowLong(REC_NUM,10);
}
擎天柱-AI8051U教学视频第10集虚拟LED.zip (157.54 KB, 下载次数: 0)
|
|