为了能够使初学者能够有感性认识,现在做了一个阻塞式编程的按键点灯版本.不多说,上代码
#include?? ?"extern.h"
/*端口定义*/ BIT ? ? LED ? ? ? ? ? ?: ? ? ? ?PA.6; ?
BIT ? ? KEY ? ? ? ? : ? ? ? ?PA.7; ?
/*相应于main函数*/ void ? ?FPPA0 (void) { ? ? /*单片机内部RC震动时钟为 IHRC默认为16M,因此,IHRC/2=8M,系统时钟为8M*/ ? ? .ADJUST_IC ? ?SYSCLK=IHRC/2 ? ? ? ? /*端口设置为输出 低*/ ? ? $ LED ?out ,low; ? ? /*输入上拉*/ ? ? $ KEY ?in ,PUll;
? ? /*主循环*/ ? ? while (1) ? ? {
?? ??? ?if(!KEY) ?? ??? ?{ ?? ??? ??? ?/*按键去抖,延时10ms*/ ?? ??? ??? ?.delay 10*8000; ?? ??? ??? ?if(!KEY) ?? ??? ??? ?{ ?? ??? ??? ??? ?/*状态切换*/ ?? ??? ??? ??? ?if(!LED) ?? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? LED=1; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else ?? ??? ??? ??? ?{ ? ? ? ? ? ? ? ? ? ? LED=0; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?/*等待按键释放*/ ?? ??? ??? ??? ?while(!KEY) ?? ??? ??? ??? ?{ ?? ??? ??? ??? ? ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ?} ? ? ? ? ? ? } }
|