完善资料让更多小伙伴认识你,还能领取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个回答
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
哪位大神有MGC3130的STM32 i2C驱动例程分享一下,感谢感谢
3807 浏览 1 评论
stm32f103c8t6用中断采出来的数来回跳?怎么样才能稳定下来?
1520 浏览 2 评论
基于STM32F103C8T6控制多路VL53L0X激光测距传感器
1752 浏览 4 评论
STM32F103RCT6采集不同采样率传感器数据发送到位机数据不完整
1957 浏览 2 评论
4172 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-5-10 11:50 , Processed in 0.352183 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191