完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用的STC的单片机,共阳极的数码管,用的驱动芯片TM1638,你们看看我的程序,哪里出了问题,数码管不亮啊。帮忙指点下谢谢了。在线等~~~电路图在下面。
程序: #include #define DATA_COMMAND 0X40 #define DISP_COMMAND 0x80 #define ADDR_COMMAND 0XC0 #define uchar unsigned char #define uint unsigned int //TM1638模块引脚定义 ***it DIO=P2^1; ***it CLK=P2^0; ***it STB=P4^0; void display1638(); //uchar data DisBuffer[8]={0,0,0,0,0,0,0,0,0,0}; /*显示缓存区*/ //各个数码管显示的值 //uchar code tab[]={0xc0,0xf9,0xa4,0xb0, //0x99,0x92,0x82,0xf8, //0x80,0x90,0x88,0x83, //0xc6,0xa1,0x86,0x8e}; void TM1638_Write(unsigned char DATA) //写数据函数 { unsigned char i; for(i=0;i<8;i++) { CLK=0; if(DATA&0X01) DIO=1; else DIO=0; DATA>>=1; CLK=1; } } /*unsigned char TM1638_Read(void) //读数据函数 { unsigned char i; unsigned char temp=0; DIO=1; //设置为输入 for(i=0;i<8;i++) { temp>>=1; CLK=0; if(DIO) temp|=0x80; CLK=1; } return temp; } */ void Write_COM(unsigned char cmd) //发送命令 { STB=0; TM1638_Write(cmd); STB=1; } void Write_DATA(unsigned char add,unsigned char DATA) //指定地址写入数据 { Write_COM(0x44); //设置固定地址 STB=0; TM1638_Write(0xc0|add); TM1638_Write(DATA); STB=1; } void init_TM1638(void) { unsigned char i; Write_COM(0x8a);//亮度 Write_COM(0x40); //写 数据命令 //Write_COM(0x88);//开显示 STB=0; TM1638_Write(0xc0); //设置起始地址 for(i=0;i<16;i++) TM1638_Write(0x00); STB=1; } void main() { init_TM1638(); while(1) { display1638(); } } void display1638() { // CLK=0; Write_DATA(0xc0,0x01); Write_DATA(0xc2,0x01); Write_DATA(0xc4,0x01); Write_DATA(0xc6,0x01); Write_DATA(0xc8,0x01); Write_DATA(0xca,0x01); Write_DATA(0xcc,0x00); Write_DATA(0xce,0x00); // CLK=1; }
|
|
相关推荐
42个回答
|
|
有TM1638CMD.H那个头文件吗
|
|
|
|
今天在用tm1640一直没通过
|
|
|
|
/*TM1640的不知道能不能利用一点
#include #include #include"TM1640.H" /******************************************************************************/ /******************************************************************************/ void start_tm1640 (void) //起始条件 { TM_DIO=1;delay_tm1640(); TM_CLK=1;delay_tm1640(); TM_DIO=0;delay_tm1640(); //TM_CLK=0;delay_tm1640(); } /******************************************************************************/ void stop_tm1640 (void) //结束条件 { TM_CLK=0;delay_tm1640(); TM_DIO=0;delay_tm1640(); TM_CLK=1;delay_tm1640(); delay_tm1640(); delay_tm1640(); TM_DIO=1; delay_tm1640(); } /******************************************************************************/ void send_tm1640(unsigned char _data ) { unsigned char i; //static TM_CLK = 0; delay_tm1640(); for( i=0;i<8;i++) { TM_DIO=(bit)(_data&0x01); delay_tm1640(); TM_CLK = 1; _data >>= 1; delay_tm1640(); TM_CLK = 0; _nop_();_nop_();_nop_(); } } /******************************************************************************/ void display_tm1640(unsigned char addr,unsigned char n,unsigned char data *dp_addr ) { unsigned char i; //unsigned char data *pda; start_tm1640(); send_tm1640( writedatamode_z ); //地址自动增加 stop_tm1640(); start_tm1640(); send_tm1640( startaddress|addr ); //从c0H地址起 for(i=0;i send_tm1640( dp_addr[i] ); } stop_tm1640(); start_tm1640(); send_tm1640(disconmode);//传显示控制命令 stop_tm1640(); } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:13 , Processed in 0.425370 second(s), Total 46, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号