只需一步,快速开始
热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计
程序如下:#include<reg52.h> //52单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.{ //delay(500);大约延时500ms. uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }void main() //主函数{ uchar a; while(1) //大循环 { a++ ; P1=~a; delay(200); }}
前面那个delay是延时,但主函数这部分我看不懂,请高手指点,谢谢啦
举报
它这个程序的电路图可能是当p1口低电平是 LED 等被点亮. 8位2进制数累加既是:00000000— 00000001— 00000010— 000000011..... 11111111 .
开始的a=0 , 进入循环后,a=1, 既是00000001, 取反后 p1=~a;则P1=FFFFFFF0, 因为是低电平有效 这个时候 P1口的8个LED灯的 最后一个被点亮。。然后
以此类推。 呃,我个人认为是这样的哈, 呵呵 ,希望能帮到你.
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|51黑电子论坛 | 管理员QQ:125739409;技术交流QQ群281945664
Powered by 单片机教程网