完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`单片机型号:STC-C52 问题来了:按照书本的程序,display(shi,ge);放在main函数的时候,烧写进单片机,数码管完全没亮,流水灯有反应。当我把display(shi,ge);放在void T1_time() interrupt 3 里面的时候,数码管和流水灯都工作,不过数码管十位数产生肉眼可见的闪烁,个位数没有。 #include #define uchar unsigned char #define uint unsigned int ***it dula=P2^0; //段选的引脚是p^0 ,申明U1锁存器的锁存端 ***it wela=P2^1; ***it led1=P1^0; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delayms(uint); void display(uchar,uchar); uchar num,num1,num2,shi,ge; void main() { TMOD=0x11; //设置定时器0和1工作方式1(0001 0001) TH0=(65536-45872)/256; //装初值 TL0=(65536-45872)%256; TH1=(65536-45872)/256; //装初值 TL1=(65536-45872)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 ET1=1; //开定时器1中断 TR0=1; //启动定时器0 TR1=1; //启动定时器1 while(1); //程序在这里不停的对数码管动态扫描同时等待中断发生 { display(shi,ge); //这段代码放这里不运行!!! } } void display(uchar shi,uchar ge)//显示子函数 { dula=1; P0=table[shi];//送段选数据 dula=0; P0=0xff;//送位选数据前关闭所有显示,防止发开位选锁存时 wela=1; //原来段选数据通过位选锁存器造成混乱 P0=0xfe; wela=0; delayms(5);//延时 dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms(5); } void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void T0_time() interrupt 1 { TH0=(65536-45872)/256; //装初值 TL0=(65536-45872)%256; num1++; if(num1==4) //如果到了4次,说明200ms时间到 { num1=0; led1=~led1; //让发光管状态取反 } } void T1_time() interrupt 3 { TH1=(65536-45872)/256; //装初值 TL1=(65536-45872)%256; //display(shi,ge); num2++; if(num2==20) //如果到了20次,说明1s时间到 { num2=0; //然后把num1清0重新再计20次 num++; if(num==60) //这个数用来送数码管显示,到60后归0 num=0; shi=num/10; //把一个2分数分离后分别送数码管显示 ge=num%10; //十位和个位 } } ` |
|
相关推荐
9个回答
|
|
while(1); //程序在这里不停的对数码管动态扫描同时等待中断发生
一眼就看出来了,楼主C语言还是没过关。。。while(1);死循环停在这里了,根本就进不去主循环,当然不显示了,去掉分号
最佳答案
|
|
|
|
T L应该对256取余吧
|
|
|
|
while(1); //程序在这里不停的对数码管动态扫描同时等待中断发生 一眼就看出来了,楼主C语言还是没过关。。。while(1);死循环停在这里了,根本就进不去主循环,当然不显示了,去掉分号 |
|
|
|
在display子函数最后加200毫秒左右延时可去除闪烁,个位显示应该用ge与10取余
|
|
|
|
呵呵,不好意思,应该是400微秒延时
|
|
|
|
这代码写的有点乱。。。
|
|
|
|
问题已解决,谢谢大家,我会继续努力!
|
|
|
|
看来单片机的人还是多
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
322 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-通用文件I/O模型之close
339 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第十五章 按键中断实验
327 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第十一章 FPIOA管理器实验
823 浏览 0 评论
730 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11457 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-13 17:47 , Processed in 0.813293 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号