2407|1

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问大侠以下MAX7219的程序,有什么问题?谢谢 [复制链接]

#include
/*****************************************************************
常用符号定义
******************************************************************/
#define uchar unsigned char
/******************************************************************
定义MAX7219寄存器
*******************************************************************/


#define REG_NO_OP 0x00 // 定义空操作
#define DIG_1 0x01 // 定义数码管1
#define DIG_2 0x02 // 定义数码管2
#define DIG_3 0x03 // 定义数码管3
#define DIG_4 0x04 // 定义数码管4
#define DIG_5 0x05 // 定义数码管5
#define DIG_6 0x06 // 定义数码管6
#define DIG_7 0x07 // 定义数码管7
#define DIG_8 0x08 // 定义数码管8
#define REG_DECODE 0x09 // 定义解码控制
#define REG_INTENSITY 0x0a // 定义显示亮度
#define REG_SCAN_LIMIT 0x0b // 定义扫描限制
#define REG_SHUTDOWN 0x0c // 定义"shutdown"模式
#define REG_DISPLAY_TEST 0x0f // 定义"display test"模式
#define INTENSITY_MIN 0x00 // 定义最低显示亮度
#define INTENSITY_MAX 0x0f // 定义最高显示亮度
/*********************************************************************
定义硬件引脚连接
*********************************************************************/



sbit DATA = P2^0;
sbit CLK = P2^2;
sbit CS = P2^1;




/***********************************************************************
* MAX7219_SendByte() * * 描述: 向MAX7219传送一字节数据
*************************************************************************/
void MAX7219_SendByte (uchar dataout)
{
char i;
for (i=8; i>0; i--)
{
  uchar mask = 1 << (i - 1);
  CLK = 0;
  if (dataout & mask)
    DATA = 1;
  else
    DATA = 0;
  CLK = 1;
}
}


/***********************************************************************
* MAX7219_Write() *  
*************************************************************************/
void MAX7219_Write (uchar reg_number, uchar dataout)
{
  CS = 0;  
  MAX7219_SendByte(reg_number);
  MAX7219_SendByte(dataout);
  CS = 1;
}


/**************************************************************************
* MAX7219_DisplayChar() *
**************************************************************************/
void MAX7219_DisplayChar (char digit, char character)
{
MAX7219_Write(digit, character);
}


/**************************************************************************
* MAX7219_Clear() * * 描述: 清除所有位的显示
***************************************************************************/
void MAX7219_Clear (void)
{
uchar i;
for (i=1; i < 9; i++)
MAX7219_Write(i, 0x0f);
}


/**************************************************************************
* MAX7219_SetBrightness() *
***************************************************************************/
void MAX7219_SetBrightness (char brightness)
{
brightness &= 0x0f;
MAX7219_Write(REG_INTENSITY, brightness);
}

/**************************************************************************
* MAX7219_DisplayTestStart() *
***************************************************************************/
void MAX7219_DisplayTestStart (void)
{
MAX7219_Write(REG_DISPLAY_TEST, 1);  
}


/**************************************************************************
* MAX7219_DisplayTestStop() *
***************************************************************************/
void MAX7219_DisplayTestStop (void)
{
MAX7219_Write(REG_DISPLAY_TEST, 0);  
}


/**************************************************************************
* MAX7219_ShutdownStart() *
***************************************************************************/
void MAX7219_ShutdownStart (void)
{
MAX7219_Write(REG_SHUTDOWN, 0);
}


/**************************************************************************
* MAX7219_ShutdownStop() *
***************************************************************************/
void MAX7219_ShutdownStop (void)
{
   MAX7219_Write(REG_SHUTDOWN, 1);
  }



/**************************************************************************
* MAX7219_Init() *
***************************************************************************/
void MAX7219_Init (void)
{
DATA=1; // 置DATA为1
CLK=1;    // 置CLK 为1
CS=1;    // 置CS 为1
MAX7219_Write(REG_SCAN_LIMIT, 7); // 设置为全显示
MAX7219_Write(REG_DECODE, 0xff); // 所有位设置为 B 解码方式
MAX7219_ShutdownStop();     // 置 MAX7219 为正常显示模式 (非shutdown模式)
MAX7219_DisplayTestStop();     // 置 MAX7219 为正常显示模式 (非test模式)
MAX7219_Clear();       // 清除所有位的显示
MAX7219_SetBrightness(INTENSITY_MAX);    // 置最大亮度
}

最新回复

在main函数中,void MAX7219_DisplayChar (1, 0x02) ;这样的输出都不行。王高手大侠指点。   详情 回复 发表于 2009-4-24 23:00
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在main函数中,void MAX7219_DisplayChar (1, 0x02) ;这样的输出都不行。王高手大侠指点。
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表