完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我是想用动态显示来做一个60秒的计时,现在个位可以正常显示,十位数也能正常进位,但是一直在闪烁,求个解决方案。
以下是代码 #include #define uint unsigned int #define uchar unsigned char ***it led=P1^0; ***it dula=P2^6; ***it wela=P2^7; uchar num; uint ge,shi; uchar code a[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint); void main() { while(1) { wela=1; P0=0xfd; wela=0; P0=0xff; dula=1; P0=a[ge]; dula=0; delay(1000); ge++; if(ge==10) { shi++; ge=0; } wela=1; P0=0xfe; wela=0; P0=0xff; dula=1; P0=a[shi]; dula=0; delay(1000); if(shi==6) { ge=0; shi=0; wela=0; dula=0; led=0; delay(500); led=1; delay(500); } } } void delay(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } |
|
相关推荐
8个回答
|
|
|
|
|
|
#include
#define uint unsigned int #define uchar unsigned char ***it led=P1^0; ***it dula=P2^6; ***it wela=P2^7; uchar num=0; uchar ge=0,shi=0; uchar i=0; uchar code a[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //void delay(uint); void Timer0Init() //50毫秒@12.000MHz { TMOD= 0x01; //设置定时器模式 TL0 = 0xB0; //设置定时初值 TH0 = 0x3C; //设置定时初值 TR0 = 1; //定时器0开始计时 EA=1; //开总中断 ET0=1; //开定时器0中断 } void main() { Timer0Init();//初始化定时器 while(1) { switch(i) { case 0: P0=0x00;//消影 dula=1; dula=0; P0=0xfd;//十位位码 wela=1; wela=0; P0=a[ge];//十位段码 dula=1; dula=0; i=1; break; case 1: P0=0x00;//消影 dula=1; dula=0; P0=0xfe;//个位位码 wela=1; wela=0; P0=a[shi];//个位段码 dula=1; dula=0; i=0; break; } } } /**************中断服务程序*****************/ void timer0() interrupt 1 { TL0 = 0xB0; //设置定时初值 TH0 = 0x3C; //设置定时初值 num++; if(num>=20) //1s { num=0; //清0 ge++; if(ge>=10) //秒个位计数 { ge=0; shi++; //秒十位计数 if(shi>=6) shi=0; } } } /* void delay(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); }*/ |
|
|
|
如果要消除抖动,适当调整延时,增加十位后面的延时时间,缩小各位后面的延时时间,如果还有增加准确度,软件延时是不准确的。你的延时已经远远超出了1秒钟。
|
|
|
|
|
|
|
|
你使用了中断了呀,我只想在单纯的动态显示用消影来做一个计时器 |
|
|
|
jjy1039 发表于 2018-3-30 15:46 好的,我试试,能不能成功。 |
|
|
|
是所有的延时函数都改吗,还是改十位的? |
|
|
|
谢谢支持
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
751 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1330 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1184 浏览 0 评论
899 浏览 0 评论
947 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11865 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 18:17 , Processed in 0.856202 second(s), Total 90, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号