请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4460|回复: 2

使用单片机 P1 口直接控制数码管位选

[复制链接]

1

主题

2

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2020-10-29 14:55:11 | 显示全部楼层 |阅读模式
1金钱
普中A2 开发攻略中:
使用单片机 P1 口直接控制数码管位选,而不经过 38 译码器。(温馨
提示:可将选通每位数码管位选值赋值给 P1 口即可)

我只写了一个段选和位选,段选是ok的,位选不管怎么写,led灯只有第一个亮起,看原理图也没看明白位选咋接的,求大神指导下

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

sbit dula=P2^6;
sbit wela=P2^7;

void delay(uint i){
uint j,k;
for(j=i;j>0;j--)
    for(k=110;k>0;k--);   
}

void display(){

   wela=1;
   P0=0xef;
   wela=0;
   P0=0x00;
   dula=1;
   P0=0x07;
   dula=0;
   delay(500);


}

void main(){
while(1){
  display();
}

}

我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有1人回答

回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-8-20 20:31:11 | 显示全部楼层
本帖最后由 浓浓小咖 于 2022-8-20 20:34 编辑

动态数码管课后作业,不用38译码器,显示1314-520
转的~~~~~~~~~~~~~
/*************************************************************************/
#include<reg51.h>
#define qudong  P0  //位码端口
#define duanma  P1 //8位断码p1口

unsigned char code DIG_PLACE[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code smgduan[8]={0x06,0x4f,0x06,0x66,0x40,0x6d,0x5b,0x3f,};//显示1314-520
unsigned char DisplayData[8];


void DigDisplay()
{
  unsigned char i;
  unsigned int j;
  for(i=0;i<8;i++)
        {
                duanma=DIG_PLACE;
                qudong=DisplayData;
                j=10;
                while(j--);
                qudong=0x00;
        }
}


void main()
{
  unsigned char i;
    for(i=0;i<8;i++)
                        {
       DisplayData=smgduan;
                        }
        while(1)
                                {
        DigDisplay();
                                }

}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-18 16:07 , Processed in 0.092013 second(s), 34 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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