| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2226 人关注过本帖
标题:我用74hc595去点亮数码管 可是只能点亮一个好像在第一个子程序中没有出来是 ...
只看楼主 加入收藏
小恒恒
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-9-15
收藏
 问题点数:0 回复次数:0 
我用74hc595去点亮数码管 可是只能点亮一个好像在第一个子程序中没有出来是怎么回事
程序如下:

#include <iom128v.h> //io端口寄存器配置文件,必须包含
#include<macros.h>
#include<stdio.h>
#include"xxh.c"

#define SET_HC595_latch (PORTE |= (1 << PE4))
#define CLR_HC595_latch (PORTE &= ~(1 << PE4))
#define SET_HC595_sclk (PORTE |= (1 << PE6))
#define CLR_HC595_sclk (PORTE &= ~(1 << PE6))
#define SET_HC595_data (PORTE |= (1 << PE2))
#define CLR_HC595_data (PORTE &= ~(1 << PE2))

//unsigned char Led_Disbuf[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //共阴极
unsigned char Led_Disbuf[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共阳极
//unsigned char ComBuf[8] = {0,0,0,0,0,0,0,0};
unsigned char ComBuf[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//595端口初始化
unsigned char  disbuf[8]={0,0,0,0,0,0,0,0};
unsigned char byte;
unsigned char duan;
unsigned char wei;

/***************************************************************************************************************************/
/*函数功能:单片机初始化
/*入口参数:
/*出口参数:  
/***************************************************************************************************************************/
void HC595_port_init(void)
{
//PORTE&= 0b10101011;
//DDRE|= 0b01010100;//(1 << PE2) | (1 << PE4) | (1 << PE6) ;

}
/***************************************************************************************************************************/
/*函数功能:主函数
/*入口参数:
/*出口参数:  
/***************************************************************************************************************************/

void dataout(unsigned char temp,unsigned char k)
{
unsigned char i,j;

PORTE&= 0b10101011;
DDRE|= 0b01010100;//(1 << PE2) | (1 << PE4) | (1 << PE6) ;


/*********************************************送段码*************************************************************************/
duan=Led_Disbuf[temp];
wei=ComBuf[k-1];

CLR_HC595_latch;
NOP();NOP();NOP();NOP();

for(i=0;i<8;i++)  
{
CLR_HC595_sclk;
NOP();NOP();NOP();NOP();

if((duan&0x80)==0x80)   
{
        
SET_HC595_data;
}
else
{

CLR_HC595_data;
}
duan<<=1;

SET_HC595_sclk;
NOP();NOP();NOP();NOP();
CLR_HC595_sclk;//HC595_clk=0;
}
/*********************************************送位选*************************************************************************/

for(i=0;i<8;i++)  
{
CLR_HC595_sclk;
NOP();NOP();NOP();NOP();

if((wei&0x80)==0x80)   
{         
SET_HC595_data;
}
else
{
CLR_HC595_data;
}
wei<<=1;
SET_HC595_sclk;
NOP();NOP();NOP();NOP();
CLR_HC595_sclk;
}

/*********************************************并出显示*************************************************************************/
CLR_HC595_latch;
NOP();NOP();
SET_HC595_latch;
NOP();NOP();
CLR_HC595_latch;
}

void main(void)
{
    dataout(3,3);  //这里是为了在第三个数码管上显示3!成功显示了 但是好像根本没有执行下面那个程序

    dataout(3,4); //这里是为了在第四个数码管上显示3!没有显示 好像根本没有执行这个个程序

  

}
搜索更多相关主题的帖子: define unsigned char void 显示 
2017-09-15 20:48
快速回复:我用74hc595去点亮数码管 可是只能点亮一个好像在第一个子程序中没有出 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026245 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved