灯接在C51的P0.0,现在要求规划程序,让这颗LED灯以1s为距离闪耀。
这儿阐明一下,C51的IO只支撑弱上拉,这就从另一方面代表着单片机的IO上拉的时分只能供给很微小的电流,这个电流或许不足以点亮一颗LED灯(或许这颗LED灯的亮度很低),为了让LED正常发光,个人会运用上拉的办法。这儿粗略地介绍一下运用办法哈
当P0.0低电平的时分LED灯导通,正常点亮,P0.0给高电平的时分LED不导通,平息
考虑到手头的资源问题,我运用现成的开发板来完结这个程序规划,这个开发板运用的是上拉LED,LED1接在P1.0,实践电路图修改后如下:
首要咱们要理解,个人会运用的LED是上拉形式的,P1.0 = 1的时分封闭LED,P1.0 = 0的时分点亮LED
这条指令存放在reg52.h里边,现已对IO组的寄存器的地址进行界说,像P0,P1,P2这些关键字咱们咱们能够直接用。便利咱们对IO的寄存器做相关操作,值得一提的是,IO寄存器是能够位寻址
sbit指令给IO上的一个端口界说姓名,比方说给P1.0(写作P1^0)界说一个叫LED的姓名,下次对这个IO做相关操作的时分用以下办法
所谓的软件推迟,是经过履行空代码,完结推迟的作用,这种推迟完结的推迟有一个特色,时刻禁绝,由于单片机里边每次履行C语言下的一条操作的时刻是不固定的
标题要求咱们推迟1s,如此准确的说到1s,肯定是期望咱们用定时器来完结这个项目
咱们要设置一个规范的16位定时器,设置办法和流程参阅我写过的文章,上面是16位定时器的设置流程