完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人刚学stm8想用来驱动TM1629芯片点亮数码管,TM1629的程序是从51单片机上复制过来的,不知为什么不成功,个位数总是闪的很快,延时后个位数就不变了,十位百位数一直是零,是不是stlink下载的时候还要配置呢,希望高手不吝赐教。
#include"stm8s005k6.h" #define uchar unsigned char #define uint unsigned int _Bool dio @PD_ODR:5; _Bool clk @PD_ODR:6; _Bool stb @PD_ODR:7; uchar qian,bai,shi,ge,k,date; void GPIO_Int(void) { PD_CR1|=0xE0; PD_CR2=0x00;//端口输入输出方式控制,cr=1,cr2=0推挽式输出 PD_DDR|=0xE0;//输入输出设置,1设置为输出 // PD_ODR|=0x70;//端口数据寄存器 } uchar SG8_NUM[]= //八段共阴数码管的0—F段码表 { 0Xbf,0X86,0Xdb,0Xcf, 0Xe6,0Xed,0Xfd,0X87, 0Xff,0Xef,0x00 }; void delay(uchar x) { uchar a,b; for(a=0;a for(b=0;b<50;b++); } void ad(void) //取个,十,百,千 位 { qian=date/1000; bai=date%1000/100; shi=date%100/10; ge=date%10; } void indate(uint s) //tm1629 { uint i; stb=0; for(i=0;i<8;i++) { clk=0; if(s&0x01!=0) { dio=1; } else { dio=0; } clk=1; s=s>>1; } } void show_dat (void) //数码管显示 { stb=1; indate(0x40); //数据命令设置 stb=1; indate(0xc0); //地址命令设置 indate(SG8_NUM[8]);//1 indate(SG8_NUM[8]); indate(SG8_NUM[ge]);//2 indate(SG8_NUM[ge]); indate(SG8_NUM[shi]);//3 indate(SG8_NUM[shi]); indate(SG8_NUM[bai]);//4 indate(SG8_NUM[bai]); indate(SG8_NUM[qian]);//5 v indate(SG8_NUM[qian]); indate(SG8_NUM[bai]);//6 v indate(SG8_NUM[bai]); indate(SG8_NUM[8]);//7 indate(SG8_NUM[shi]); indate(SG8_NUM[8]);//8 indate(SG8_NUM[ge]); stb=1; indate(0x8a);//显示控制 } main() { GPIO_Int(); clk=1;delay(1); dio=1;delay(1); stb=0;delay(1); while(1) { for(k=0;k<255;k++) { date=k; ad(); delay(1); show_dat(); delay(1); } // while(1); } } |
|
相关推荐
1 条评论
1个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2255 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2071 浏览 3 评论
4687 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2215 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2757 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 11:19 , Processed in 0.811533 second(s), Total 84, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号