完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
第一次使用中颖单片机SH79F166A关于TM1629B的LED驱动编程,烧录成功,但是LED没有点亮,板没有问题,下附有程序代码一开始由于没有设置相关的端口为输出端口,导致数据无法输出,但是在设置了相应的端口寄存器之后,还是无法点亮LED
config.h: #ifndef _CONFIG_H #define _CONFIG_H #include #include #include typedef unsigned char uint8; typedef signed char int8; typedef unsigned int uint16; typedef signed int int16; ***it DIO=P3^7; ***it CLK=P3^6; ***it STB=P3^5; ***it SDA=P3^4; ***it SCL=P3^3; #define dissetmode 0x03 //显示模式设置 #define WriteDataMode_Auto 0x40 //地址自动加1 #define StartAddr 0xC0 #define Disp_ON 0x8F //显示开关 #define Disp_OFF 0x87 #define Comm_Key 0x42 #define DataCount 16 #define NOP _nop_() void SystemInit(); void LEDInit(); void InData(uint8 p); void SelfCheck(); void display(uint8 Data); void KeyScan(); uint8 OutData(); #endif LED.c: #include"config.h" uint8 code DigitLED[]= { 0x3F, //0 0x30, //1 0x5B, //2 0x4F, //3 0x66, //4 0x6D, //5 0x7D, //6 0x07, //7 0x7F, //8 0x6F //9 }; void InData(uint8 p) { uint8 i; for(i=0;i<8;i++) { CLK=0; if((p&0x01)==0x01) { DIO=1; } else { DIO=0; } NOP;NOP;NOP;NOP; CLK=1; p=p>>1; NOP;NOP;NOP;NOP; } } uint8 OutData() { uint8 i; uint8 ReadData; DIO=1; CLK=0; for(i=0;i<8;i++) { CLK=1; ReadData=ReadData>>1; if(DIO==0x01) { ReadData=ReadData|0x80; }else { ReadData=ReadData&0x7F; } CLK=0; NOP;NOP; } DIO=1; return ReadData; } void LEDInit() { DIO=1; CLK=1; STB=1; NOP; STB=0; InData(WriteDataMode_Auto); STB=1; STB=0; InData(StartAddr); } void SelfCheck() { uint8 i; LEDInit(); STB=0; for(i=0;i<10;i++) { InData(DigitLED); } STB=1; NOP;NOP;NOP; STB=0; InData(Disp_ON); STB=1; } main.c: #include"config.h" void main() { SystemInit(); while(1) { //LEDInit(); SelfCheck(); } } void SystemInit() { INSCON&=(~(1<<6)); P3CR=0xF8; P3PCR=0x0; }
|
|
相关推荐
5个回答
|
|
最后问题还是解决了,发现硬件方面还是很重要的,每次进行烧录之前需要把IC的引脚和板子的焊点对应起来。检测到每一个端口都没问题之后,再尝试烧录,如果是我这种新手的话,最好还是先进行简单的方波等波形的检测。在确定能够检测到信号之后,再进行程序的烧录(当然程序也要确定无误才烧录,最好先检测,debug几次)
最佳答案
|
|
|
|
怪了,没看出哪里不对呀。
|
|
|
|
从头理了一遍,把电路板引脚什么的都测了一遍,发现了一些问题,IC有些引脚没有导通。后面又用定时器分频的方式让输出端口显示正弦波,发现一切正常,难道是TM1629B的时序有问题?这时序看得不是很懂,也没感觉哪里有问题。。 |
|
|
|
押尾不忧桑 发表于 2018-3-26 15:43 那会不会是【虚焊】引起的呢? 评分 |
|
|
|
也不是,我把IC和线路都重新检查了一遍,一个个脚地检测了一遍,把不通的,感觉有问题的都重新焊了一遍,最后再尝试输出波形,三条IO口都检测出波形之后,再把程序烧录进去,就好了。。。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 04:20 , Processed in 0.601899 second(s), Total 56, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号