找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1510|回复: 3
收起左侧

c8051F单片机流水灯八个只亮四个?

[复制链接]
ID:568095 发表于 2019-6-20 17:27 | 显示全部楼层 |阅读模式
搜狗截图20190620172645.png

单片机源程序如下:
  1. #include "c8051F410.h"
  2. #define NEW_BOARD
  3. #ifdef NEW_BOARD
  4. sbit LED8=P2^1;
  5. sbit LED7=P2^0;
  6. sbit LED6=P0^7;
  7. sbit LED5=P0^6;
  8. sbit LED4=P0^3;
  9. sbit LED3=P0^2;
  10. sbit LED2=P0^1;
  11. sbit LED1=P0^0;
  12. sbit KEY5=P1^7;
  13. sbit KEY4=P1^6;
  14. sbit KEY3=P1^5;
  15. sbit KEY2=P1^4;
  16. sbit KEY1=P1^3;
  17. sbit SPKOUT=P2^2;
  18. #endif
  19. void delay(int m){
  20. int i,j;
  21. for(i=0;i<100;i++)
  22. for(j=0;j<250*m;j++);
  23. }
  24. void init(void);

  25. void main()
  26. {
  27.         unsigned char i;
  28.         init();

  29.         LED1 = 1;
  30.         LED2 = 1;
  31.         LED3 = 1;
  32.         LED4 = 1;
  33.         LED5 = 1;
  34.         LED6 = 1;
  35.         LED7 = 1;
  36.         LED8 = 1;
  37.         //KEY1=1;
  38.         SPKOUT = 0;

  39.     for(i=1;i<9;i++)
  40.         {          if(KEY1==0){
  41.                          SPKOUT = 1;
  42.                
  43.                         LED1 = 0;
  44.                         delay(10);
  45.                         SPKOUT = 0;      
  46.                         LED2 = 0;
  47.                         delay(10);
  48.                         SPKOUT = 1;      
  49.                         LED3 = 0;
  50.                         delay(10);
  51.                         SPKOUT = 0;      
  52.                         LED4 = 0;
  53.                         delay(10);
  54.                         SPKOUT = 1;      
  55.                         LED5 = 0;
  56.                         delay(10);
  57.                         SPKOUT = 0;      
  58.                         LED6 = 0;
  59.                         delay(10);
  60.                         SPKOUT = 1;      
  61.                         LED7 = 0;
  62.                         delay(10);
  63.                         SPKOUT = 0;      
  64.                         LED8 = 0;
  65.                         delay(10);
  66.                         P0=0x00;
  67.         }          }
  68.                         
  69.    }

  70. void init(void)
  71. {
  72.         PCA0MD=0x00;
  73.         OSCICN=0xc7;
  74. #ifdef NEW_BOARD
  75.         P0MDIN=0xFF;
  76.         P0MDOUT=0x10;
  77.         P0SKIP=0xCF;
  78.         P1MDIN=0xFF;
  79.         P1MDOUT=0x00;
  80.         P1SKIP=0xFF;
  81.         P2MDIN=0xFF;
  82.         P2MDOUT=0x04;
  83.         P2SKIP=0xFF;
  84. #endif
  85.         XBR0=0x01;
  86.         XBR1=0x41;
  87. }

复制代码


回复

使用道具 举报

ID:94031 发表于 2019-6-21 06:45 | 显示全部楼层
s2,s3,s4,s5连接了吗。
回复

使用道具 举报

ID:554341 发表于 2019-6-21 09:21 | 显示全部楼层
检查一下连接性
回复

使用道具 举报

ID:225048 发表于 2019-6-21 10:36 | 显示全部楼层
先在主函数里加入While(1)死循环,然后写入P0 = 0;先确定是电路的问题还是程序的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表