标题: 使用Proteus学习单片机系列教程-点亮LED [打印本页]

作者: 11166    时间: 2021-1-22 22:27
标题: 使用Proteus学习单片机系列教程-点亮LED
获取本项目代码以及仿真文件
https://github.com/Lighter-z/51-Single-chip


基于Proteus学习单片机系列(一)——点亮LED
基于Proteus学习单片机系列(二)——驱动数码管
基于Proteus学习单片机系列(三)——按键
基于Proteus学习单片机系列(四)——中断
基于Proteus学习单片机系列(五)——定时器实现电子表
基于Proteus学习单片机系列(六)——I2C总线AT24C04
基于Proteus学习单片机系列(七)——实时时钟DS1302
基于Proteus学习单片机系列(八)——AD转换及其应用--TLC549
基于Proteus学习单片机系列(九)——DA转换及其应用--TLC5615
基于Proteus学习单片机系列(十)——LCD1602
基于Proteus学习单片机系列(十一)——LCD12864

1、LED电路设计
2、程序设计

  1. #include<reg51.h>
  2. sbit LED = P0^0;                  //LED接P0.0
  3. void delay(unsigned int x)        //延时函数
  4. {
  5.     while(x--);
  6. }
  7. void main()                          //主函数
  8. {
  9.     while(1)
  10.     {
  11.         LED=0;                          //P0.0输出低电平,LED灭
  12.         delay(5000);                  //调用延时函数,延时一段时间
  13.         LED=1;                          //P0.0输出高电平,LED亮
  14.         delay(5000);                //调用延时函数,延时一段时间
  15.     }
  16. }  
复制代码

(1)单片机程序顺序执行程序,先执行主函数,在主函数内可以调用子函数,子函数不可以调用主函数。单片机程序从主函数入口依次执行每一条指令,执行完后回到主函数进行下次循环。
(2)延时函数,延时就是单片机执行了一个延时函数。单片机执行延时函数的每一条指令时都会浪费一些时间,浪费的时间就是调用延时函数所获得的时间,但是延时函数不能精确延时。
(3)利用位定义让LED等价于P0^0。LED等于0,先让P0^0为低电平关掉LED,延时一段时间再让P0^0为高电平开启LED,在延时一段时间,一直循环达到LED闪烁的目的





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1