找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1680|回复: 2
收起左侧

关于单片机+74LS595同时驱动数码管和LED的问题

[复制链接]
ID:365235 发表于 2020-5-4 21:47 | 显示全部楼层 |阅读模式
如下的单片机程序,p3.4和p1.0分别输出一串数据,定义两个函数void LED24show(long byteData)和void LED16show(int byteData)用于驱动数码管和LED,当 执行 LED24show(0x7fffff);   LED16show(0x0202);时数码管应当显示00,24个LED小灯应当只有一个亮,但是仿真的结果如下,没有实现要求显示的部分,请大神帮忙看一下。
51hei截图20200504214659.png
#include<reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
void delayms(unsigned int xms);
//****************************************74LS595端口定义
sbit SER1 = P3^4;    //p3.4脚控制串行数据输入
sbit SCK1 = P3^6;    //串行输入时钟
sbit RCK1 = P3^5;    //存储寄存器时钟

sbit SER2 = P1^0;    //p1.0脚控制串行数据输入
sbit SCK2 = P1^2;    //串行输入时钟
sbit RCK2 = P1^1;    //存储寄存器时钟

sbit key=P1^7;
sbit run=P0^0;
//*********************************************************************

void LED24show(long byteData)
{
    char i=0;   
    for(i=0;i<24;i++)
    {
        SER1 = byteData<<23;        //送出23位数据
        byteData= byteData>>1;      

        SCK1 = 0;          //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期
        _nop_();
        _nop_();
        SCK1 = 1;          //变为低电平,为下次准备
    }  

   //位移寄存器数据准备完毕,转移到存储寄存器
   RCK1 = 0;         //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期
   _nop_();
   _nop_();
   RCK1 = 1;

}
void LED16show(int byteData)
{
    char i =0;   
    for(i=0;i<16;i++)
    {
        SER2 = byteData>>15;        //送出15位数据
        byteData= byteData<<1;      

        SCK2 = 0;          //上升沿,让串行输入时钟变为高电平,并延时2个时钟周期
        _nop_();
        _nop_();
        SCK2 = 1;          //变为低电平,为下次准备
    }  

   //位移寄存器数据准备完毕,转移到存储寄存器
   RCK2 = 0;         //上升沿,让存储寄存器时钟变为高电平,并延时2个时钟周期
   _nop_();
   _nop_();
   RCK2 = 1;

}
void main()
{  
while(1)
{
    LED24show(0x7fffff);
    delayms(100);
   LED16show(0x0202);
}                  
}

void delayms(unsigned int xms)                //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
回复

使用道具 举报

ID:89217 发表于 2020-5-5 08:06 | 显示全部楼层
你确定8位单片机能0x7fffff<<23位???反正我是没试过。
回复

使用道具 举报

ID:213173 发表于 2020-5-6 10:32 | 显示全部楼层
无标题.jpg
示例.zip (135.33 KB, 下载次数: 11)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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