找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机如何通过改变P2口的状态来分别控制P1和P2LED的点亮效果?

查看数: 1591 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-3-27 10:55

正文摘要:

问题是:实现用P2.0至P2.7端口连接的8个开关按键,控制P0口和P1口连接的16个发光二级管,实现不同花样的流水点亮效果。 下面是Proteus仿真图: 我现在遇到的问题就是想要通过改变P2口的状态来分别控制P1 ...

回复

ID:230742 发表于 2022-3-29 10:45
掉坑里出不来了。哈哈。
ID:161164 发表于 2022-3-28 21:08
ION_i 发表于 2022-3-28 17:41
这个是后来改的,改过之后还是之前的效果。

第29行:谁教你在函数中用while(1)的?
ID:161164 发表于 2022-3-28 10:23
你的描述,仿真图和代码都不一至
仿真图上的描述是P2控制P0和P1
仿真图里P2接按键,P0和P1接LED
仿真图下的描述是P2控制不了P1和P2
代码里是P2控制P1和P2
请你再检查一下
ID:1013404 发表于 2022-3-27 20:44
zhxiufan 发表于 2022-3-27 19:08
肯定是程序有问题呀,要获得帮助你需要将你的程序贴出来才行。

好的,正在审核
ID:1013404 发表于 2022-3-27 20:43
部分代码如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. //Delay
  4. void delay(){
  5.         uchar i,j;
  6.         for(i=0;i<255;i++)
  7.         for(j=0;j<255;j++);
  8. }

  9. char GetKey(){
  10.         char key;
  11.         key = ~P2;
  12.         return key;
  13. }


  14. //P2=1,P0 All On.
  15. void P0_All_On(){
  16.         P0 = 0x00;
  17. }

  18. //P1 unidirectional led
  19. void P1_Unidirectional_Led(){
  20.        
  21. }

  22. //P2=0xfd,P1 All On.
  23. void P1_All_On(){       
  24.                 P1 = 0x00;
  25. }

  26. void LedDispose(char key){
  27.         P1 = 0xff;
  28.         P2 = 0xff;
  29.         if(key == 0x01)
  30.                 P0_All_On();
  31.         if(key == 0x02)
  32.                 P1_All_On();
  33. }


  34. void main(){
  35.         char key;
  36.         P2 = 0xff;
  37.         key = ~P2;
  38.         while(1)
  39.         {
  40.                 key = GetKey();
  41. //                state = ~P2;
  42.                 if(key != 0x00)
  43.                 {
  44.                         LedDispose(key);
  45.                 }else{
  46.                         P1 = 0xff;
  47.                         P2 = 0xff;
  48.                 }

  49.         }
  50. }
复制代码
ID:121859 发表于 2022-3-27 19:08
肯定是程序有问题呀,要获得帮助你需要将你的程序贴出来才行。
ID:301191 发表于 2022-3-27 18:06
顶一下

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

Powered by 单片机教程网

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