完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用了个TM1640的数码管驱动IC做了个板,单片机用的是STC的,
,,,,问题来了,,,,, 程序写好了,可是数码管不给面子,就是全黑着脸, 小弟出来乍到是不知所错啊,硬件接法是OK的,强行用电实验过; 下面附上代码还望大侠赐教,,,,,, 还问下date的数据怎么产生(新来的不明白啊) #include #include #define Delay(us) {_nop_();_nop_();_nop_();_nop_();} #define FOSC 18432000L //*******1640驱动************ ***it sda=P0^0; //TM1640数据线 ***it scl=P0^1; //TM1640时钟线 unsigned char date[16] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //***************************** //*********START*************** void start() //1640开始 { //scl=0; sda=1; _nop_(); _nop_(); scl=1; _nop_(); _nop_(); sda=0; _nop_(); _nop_(); scl=0; _nop_(); _nop_(); } //************************************************************** void stop() //1640结束 { scl=0; _nop_(); _nop_(); sda=0; //scl=1; _nop_(); _nop_(); scl=1; _nop_(); _nop_(); sda=1; _nop_(); _nop_(); } //*********************************************************** void write(unsigned char date) //1640写字节 { unsigned char i,aa; aa=date; //sda=0; //scl=0; for(i=0;i<8;i++) { scl=0; if(aa&0x01) { sda=1; _nop_(); _nop_(); } else { sda=0; _nop_(); _nop_(); } scl=1; _nop_(); aa=aa>>1; } //scl=0; //sda=0; } //**************向TM1640发送显示数据*************************** void send(unsigned char date1) //void send() { unsigned char ii; // unsigned char mask; start(); write(0x40); //设置数据,地址加1模式 stop(); start(); write(0xC0); //起始地址 for(ii=0;ii<16;ii++) //16个地址 { write(date1); } /* for(mask=0x80;mask!=0;mask>>=1) { if((mask&date1) == 0) I2C_SDA = 0; else I2C_SDA = 1; I2CDelay(); I2C_SCL = 1; I2CDelay(); I2C_SCL = 0; }*/ stop(); start(); write(0x8f); //控制显示,开显示,脉冲宽度为14/16 stop(); } /* void send1() { unsigned char i; start(); //write(0x40); //设置数据,地址加1模式 write(0x44); //固定地址模式 stop(); start(); write(0x00); write(0xff); stop(); start(); write(0x01); write(0x01); stop(); start(); write(0x02); write(0x01); stop(); start(); write(0x03); write(0x01); stop(); start(); write(0x04); write(0x01); stop(); start(); write(0x05); write(0x01); stop(); start(); write(0x06); write(0x01); stop(); start(); write(0x8f); //控制显示,开显示,脉冲宽度为14/16 stop(); } */ //********************************************************** void delay(unsigned int z) //延时子程序 { unsigned int x,y; for(x=z;x>0;x--) for(y=487;y>0;y--); } void main() { while(1) { send(); } } |
|
相关推荐
6个回答
|
|
你这send里面连个参数都没有闹哪样。。。
|
|
|
|
能具体点,比如加什么,什么,之类的。????
|
|
|
|
|
|
|
|
|
|
类似的资料可以参考一下VK1629D LED驱动原厂中文资料规格书.pdf (1.21 MB )
VK1640 LED驱动原厂中文资料规格书.pdf (927.65 KB ) VK1650 LED驱动原厂中文资料规格书.pdf (403.48 KB ) VK1651 LED驱动原厂中文资料规格书.pdf (587.26 KB ) VK6932 LED驱动原厂中文资料规格书.pdf (930.1 KB ) VK16K33 LED驱动原厂中文资料规格书.pdf (1.18 MB ) VK1628 LED驱动原厂中文资料规格书.pdf (688.73 KB ) VK1629A LED驱动原厂中文资料规格书.pdf (1.13 MB ) VK1629B LED驱动原厂中文资料规格书.pdf (1.48 MB ) VK1629C LED驱动原厂中文资料规格书 (1).pdf (1.74 MB ) VK1629C LED驱动原厂中文资料规格书.pdf (1.74 MB ) VK1629D LED驱动原厂中文资料规格书 (1).pdf (1.21 MB ) |
|
|
|
我按照厂家说明书,在SCLK和DIN上焊接了100pf电容,黑屏不亮……去掉就好了。
|
|
|
|
只有小组成员才能发言,加入小组>>
3284 浏览 9 评论
2960 浏览 16 评论
3464 浏览 1 评论
9008 浏览 16 评论
4054 浏览 18 评论
1126浏览 3评论
579浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
572浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2306浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1863浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 21:15 , Processed in 1.323734 second(s), Total 91, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号