完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include unsigned char code DispLED[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极 // 0 1 2 3 4 5 6 7 8 9 ***it LS138A = P2^2; //定义138译码器的输入A脚由P2.2控制 74LS138译码器方式 ***it LS138B = P2^3; //定义138译码器的输入脚B由P2.3控制 ***it LS138C = P2^4; //定义138译码器的输入脚C由P2.4控制 ***it been=P1^5; ***it led=P1^1; void scan(); void delayus(unsigned char i); //微妙级别延时函数 void InitT(); unsigned char t=0; unsigned int num=0; void scan() { //显示时间 delayus(13000); P0=DispLED[t]; //个位 LS138A=1; //选择到底用哪一个七段数码管来显示这位数据 LS138B=1; LS138C=1; } void delayus(unsigned int i) { unsigned int x; for(x=i;x!=0;x--) { _nop_; } } void InitT() { TMOD=0x01; //定时器0,工作方式1:16位手动动灌装,定时器1,工作方式0:13位手动灌装 TH0=(65536-50000)/256; //装初值12Mhz晶振,定时50ms计数50000次 TL0=(65536-50000)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 } void T0_time() interrupt 1 //T0中断服务函数 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; if(num==20) // 1秒到 { num=0; if(t==9) // { t=0; } else t++; } } void main() { InitT(); //对定时器进行初始化 while(1) { switch(t) { case 0: been=0; // 开启蜂鸣器 delayus(300); been=1; //关闭蜂鸣器 delayus(300); break; case 9: led=1; //把led灯点亮 delayus(300); led=0; //把led灯关闭 delayus(300); break; default: break; } scan(t); } } 做到的效果是到0响声,到9led亮,有什么地方不对麻烦了。 |
|
相关推荐
1个回答
|
|
本帖最后由 爱我别走 于 2013-7-3 14:24 编辑
延时函数问题。 void delayus(unsigned int i) { unsigned int x; for(x=i;x!=0;x--) { _nop_(); } } //经过调试,在12M晶振条件下, 执行一次delayus(1);时间为19us, 执行一次delayus(2);时间为28us, 由此可以计算出调用delayus(n); 的时间为:(19-(28-19) ) +(28-19)*n=10+n*9; 在你的数码管程序中出现了delayus(13000); 可以计算出延时长为13000*9+10=117010us; 我们除去其他延时,可估计数码管扫描频率只有不到10hz, 蜂鸣器驱动驱动不到频率5hz。 所以最终导致数码管闪烁,或者根本不亮,蜂鸣器不发声。 评分
|
||
|
||
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
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 06:03 , Processed in 0.596158 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号