- 打卡等级:初来乍到
- 打卡总天数:4
- 最近打卡:2025-04-29 02:21:19
已绑定手机
注册会员
- 积分
- 68
|
第九课 数码管 交作业 ,
P33 检测按键 并控制状态 ,1:开始计数 0:停止
void KEY_Task(void)
{
if(P33 == 0)
{
KeyNum++;
if(KeyNum == 11)
{
State[3] = !State[3];
printf("P33按键状态为:%d\r\n", (int)State[3]);
}
}
else
{
KeyNum = 0;
}
}
2:毫秒 累加 ,25ms 累加一次 ,12s 自动清零 ,重新开始
void Time_Count(void)
{
if(State[3])
{
if(++ms1 >= 40)
{
ms1 = 0;
if(++miao1 > 12) miao1 = 0;
}
}
}
3:数码管动态显示 前四位 显示 目标时间,后四位显示 按键控制计数时间
uchar miao = 10,ms = 0,miao1 = 0,ms1 = 0,wei = 0;
void Seg_Task(void) //八位数码管显示
{
uchar temp = 0;
if(wei == 0)
{
temp = miao/10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
else if(wei == 1)
{
temp = miao%10;
Display_595((DuanMa[temp] | 0x80),~WeiMa[wei]);
}
else if(wei == 2)
{
temp = ms/10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
if(wei == 3)
{
temp = ms%10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
else if(wei == 4)
{
temp = miao1/10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
else if(wei == 5)
{
temp = miao1%10;
Display_595((DuanMa[temp] | 0x80),~WeiMa[wei]);
}
if(wei == 6)
{
temp = ms1/10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
else if(wei == 7)
{
temp = ms1%10;
Display_595(DuanMa[temp],~WeiMa[wei]);
}
if(++wei > 7)
{
wei = 0;
}
}
4:任务调度 感觉这个结构体数组 太好用了
static TASK_COMPONENTS Task_Comps[]=
{
{0, 500, 500, LED0_Blink}, //任务1 500ms
{0, 1000, 1000, LED1_Blink}, //任务2 1000ms
{0, 2000, 2000, LED2_Blink}, //任务3 2000ms
{0, 10, 10, KEY_Task},
{0, 1, 1, Seg_Task},
{0, 25, 25, Time_Count},
/* Add new task here */
};
各位高手 多多指教。 |
|