导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[mmppll]max6959是如何驱动4位半LED的源



No.64059
作者:mmppll
邮件:huaimingwang@163.com
ID:26499
登陆:2次
文章数:4篇
最后登陆IP:221.204.49.100
最后登陆:2004/12/27 12:08:26
注册:2004/10/9 17:52:19
财富:118
发帖时间:2004/10/10 9:09:00
发贴者IP:221.204.46.12
标题:mmppll:max6959是如何驱动4位半LED的源码,请高手指点一下,为何led不亮
摘要:No.64059max6959是如何驱动4位半LED的源码,请高手指点一下,为何led不亮 
此主题相关图片如下:
按此在新窗口浏览图片
源码:
/
#include   <AT892051.h>  
.............
extern WrToConfig();
extern WrToDisplay_test();
extern WrToDigit0();
extern void WrToLight();

extern void WrToDecode0_3();

void main()
{
 ...............
 WrToConfig();
 //WrToDisplay_test();
 WrToLight();
 WrToDecode0_3();
Loop:
 WrToDigit0();
 ...... 
goto Loop;
}


#define uchar unsigned char
#define uint unsigned int
#define Byte unsigned char
#define Word unsigned int
#define bool bit
#define true 1
#define false 0

//内存数据定义
#define BR_1K2L  0XE8
#define SlvAdr_W  0X38 //被控器地址+写命令,SLA+W max6959AAPE
#define SlvAdr_R  0XB8 //被控器地址+读命令,SLA+R max6959AAPE

uchar ByteCnt;  //I2C 数据字节计数器

uchar SubAdr; //被控器单元地址
uchar XmtDat[5]; //发送数据缓冲区

uchar Digit[10];

extern void I2CStart(void);
extern void I2CStop(void);
extern bool WaitAck(void);
extern void SendAck(void);
extern void SendNotAck(void);
extern void I2CSendByte(Byte ch);
extern Byte I2CReceiveByte(void);

void WrToConfig()
{
 I2CStart();//发送启动信号,启动I2C 总线

 I2CSendByte(SlvAdr_W);//送器件地址
 WaitAck();

 I2CSendByte(0x04);//发送单元地址=config寄存器地址
 WaitAck();

 I2CSendByte(0x21);//发送config命令not shutdown*/
 WaitAck();

 I2CStop();
}


void WrToDisplay_test()
{
 I2CStart();//发送启动信号,启动I2C 总线

 I2CSendByte(SlvAdr_W);//送器件地址
 WaitAck();

 I2CSendByte(0x07);//发送单元地址=display test 寄存器地謈
 WaitAck();

 I2CSendByte(0x00);//发送显示测试命令
 WaitAck();

 I2CStop();

}
void WrToDigit0()
{
 I2CStart();//发送启动信号,启动I2C 总线

 I2CSendByte(SlvAdr_W);//送器件地址
 WaitAck();

 I2CSendByte(0x20);//发送单元地址=dig0寄存器地址
 WaitAck();

 I2CSendByte(0x0F);//发送显示的数据
 WaitAck();

 I2CStop();
}

void WrToLight()
{
 I2CStart();//发送启动信号,启动I2C 总线

 I2CSendByte(SlvAdr_W);//送器件地址
 WaitAck();

 I2CSendByte(0x02);//发送单元地址=亮度寄存器地址
 WaitAck();

 I2CSendByte(0x3e);//发送亮度数据=22。64mA
 WaitAck();
}
void WrToDecode0_3()
{
 I2CStart();//发送启动信号,启动I2C 总线

 I2CSendByte(SlvAdr_W);//送器件地址
 WaitAck();

 I2CSendByte(0x01);//发送单元地址=亮度寄存器地址
 WaitAck();

 I2CSendByte(0x0f);//发送亮度数据=22。64mA
 WaitAck();
}

/*————————————————————
 〖说明〗I2C总线驱动程序(用两个普通IO模拟I2C总线)
  默认11.0592Mhz的晶振。
 〖版本〗V1.00A Build 0803
 —————————————————————*/
 /*whm*/
 /******* MAX6959接口与AT89C2051接口地址****/
 #include   <AT892051.H>  

 #ifndef SDA
 #define SDA P1_6
 #define SCL P1_5
 #endif

 #define uchar unsigned char
 #define uint unsigned int
 #define Byte unsigned char
 #define Word unsigned int
 #define bool bit
 #define true 1
 #define false 0

 extern uchar SystemError;
 extern void  _nop_(void);
//_nop_()为等待一个时钟周期
 #define SomeNOP(); _nop_();_nop_();_nop_( ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:541毫秒 最大:7276毫秒 查询6次