打印
[51单片机]

以下代码哪里调用了138和245?

[复制链接]
745|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
快鲨1|  楼主 | 2019-2-28 07:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 快鲨1 于 2019-2-28 22:58 编辑
#include<reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

unsigned char code LedChar[]={
        0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
        0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
        };
unsigned char LedBuff[6]={
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
        };

unsigned char i = 0;
unsigned int cnt = 0;
unsigned char flag1s = 0;

void main()
{
        
        unsigned long sec = 0;
        

        ENLED = 0;
        ADDR3 = 1;
        TMOD = 0x01;
        TH0 = 0xFC;
        TL0 = 0x67;
        TR0 = 1;
        EA = 1;
        ET0 = 1;

        while(1)
        {        
                if(flag1s == 1)                  
                {
                        flag1s = 0;
                        sec++;
                        LedBuff[0] = LedChar[sec%10];
                        LedBuff[1] = LedChar[sec/10%10];
                        LedBuff[2] = LedChar[sec/100%10];
                        LedBuff[3] = LedChar[sec/1000%10];
                        LedBuff[4] = LedChar[sec/10000%10];
                        LedBuff[5] = LedChar[sec/100000%10];
                }

                                       
        }
}

void InterruptTime0() interrupt 1               
{
         TH0 = 0xFC;
         TL0 = 0x67;
         cnt++;
         if(cnt >= 1000)
         {
                 cnt = 0;
                flag1s = 1;
         }

         P0 = 0xFF;
     switch(i)
         {
                 case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0];break;
                 case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1];break;
                  case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2];break;
                 case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3];break;
                 case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4];break;
                 case 5: ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5];break;
                 default:break;
         }
}
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
这一段是调用了138还是245,那另一个在哪里?


捕获.PNG (152.12 KB )

捕获.PNG

相关帖子

沙发
airwill| | 2019-2-28 08:42 | 只看该作者
这要看你的硬件电路的. 通常这两个芯片相关, 会常常在访问 XRAM 时作用

使用特权

评论回复
板凳
Cjy_JDxy| | 2019-2-28 09:01 | 只看该作者
case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0];break;
                 case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1];break;
                  case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2];break;
                 case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3];break;
                 case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4];break;
                 case 5: ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5];break;
感觉这一段应该是操作138的

使用特权

评论回复
地板
Cjy_JDxy| | 2019-2-28 09:02 | 只看该作者
你硬件电路什么样的?

使用特权

评论回复
5
快鲨1|  楼主 | 2019-2-28 22:59 | 只看该作者
Cjy_JDxy 发表于 2019-2-28 09:02
你硬件电路什么样的?

你好,我已经添加了电路的图片了,能给我解答一下吗,麻烦你了!

使用特权

评论回复
6
你瞅啥| | 2019-2-28 23:14 | 只看该作者
二十多年前的老电路就不要用了。

使用特权

评论回复
7
Cjy_JDxy| | 2019-3-1 08:41 | 只看该作者
我感觉245应该接在P0口上,有P0的就是和245有关的

使用特权

评论回复
8
快鲨1|  楼主 | 2019-3-2 23:31 | 只看该作者
Cjy_JDxy 发表于 2019-3-1 08:41
我感觉245应该接在P0口上,有P0的就是和245有关的

谢谢,我已经找到了,这个开发板竟然直接把248的DIR脚直接5v上都不接单片机引脚了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

45

帖子

0

粉丝