• 单片机——通过对P3口地址的操作流水点亮8位LED


    目录

    实现方法

    程序设计

    用Proteus软件仿真


     

    实现方法


    单片机中存储器(包括特殊功能寄存器)都有固定的地址,正是通过这些固定的地址,单片机才能准确地实现对各个存储器的操作。

    例如,P3口的固定地址是B0H(这在单片机制造时已经分配好,我们只能根据这种分配来使用它,而不可能改变它),P3只不过是地址“B0H”的名字,我们对地址“B0H”的操作实际上就是对P3的操作。

    可作如下定义:sfr x=0xb0;  // 通过关键字“sfr”将x定义为P3的地址“0xb0”定义后,程序中对x的操作也就相当于对地址“0xb0”即P3的操作。

    程序设计


    1. #include //包含单片机寄存器的头文件
    2. sfr x=0xb0; //将x定义为某特殊功能寄存器(P3)的地址“0xb0”
    3. /****************************************
    4. 函数功能:延时一段时间
    5. *****************************************/
    6. void delay(void)
    7. {
    8. unsigned char i,j;
    9. for(i=0;i<250;i++)
    10. for(j=0;j<250;j++)
    11. ; //利用循环等待若干机器周期,从而延时一段时间
    12. }
    13. /*****************************************
    14. 函数功能:主函数
    15. ******************************************/
    16. void main(void)
    17. {
    18. while(1)
    19. {
    20. x=0xfe; //第一个灯亮
    21. delay(); //调用延时函数
    22. x=0xfd; //第二个灯亮
    23. delay(); //调用延时函数
    24. x=0xfb; //第三个灯亮
    25. delay(); //调用延时函数
    26. x=0xf7; //第四个灯亮
    27. delay(); //调用延时函数
    28. x=0xef; //第五个灯亮
    29. delay(); //调用延时函数
    30. x=0xdf; //第六个灯亮
    31. delay(); //调用延时函数
    32. x=0xbf; //第七个灯亮
    33. delay(); //调用延时函数
    34. x=0x7f; //第八个灯亮
    35. delay(); //调用延时函数
    36. }
    37. }

    Proteus软件仿真

     

  • 相关阅读:
    古代日本人没有姓,只有名
    (一)JPA的快速入门
    TheRouter 框架原理
    python import相关内容简单介绍
    写技术博客的一些心得分享
    如何实现业务解耦?spring中事件监听了解一下
    spring+mybatis+多数据源(mysql+oracle)配置
    做3D建模月薪平均多少?
    二元分类模型评估方法
    Php+Nginx项目配置信息配置到环境变量
  • 原文地址:https://blog.csdn.net/qq_50942093/article/details/126990512