完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
为什么我的stc89c52的单片机实验板不能够同时让蜂鸣器和数码管同时工作。程序代码如下:#include
#define uchar unsigned char #define ON 0 #define OFF 1 ***it FM=P2^3; ***it d=P2^6; ***it w=P2^7; uchar code sz[27]={ 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" //数组 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 0xfc,//红灯亮 25 0xf3,//绿灯亮 26 0xcf,//黄灯亮 27 }; void delay(unsigned int t) //延迟函数 { while(--t); } void main() { while(1) { P0=sz[1]; d=1; d=0; //数字1 P0=0x7f; w=1; w=0; P0=0xff; // w=1; // 所有位都为高电压,位选关闭锁存,以免产生人眼看成乱码 w=0; // P0=sz[2]; d=1; d=0; P0=0xbf; //数字2 w=1; w=0; P0=0xff; w=1; w=0; P0=sz[4]; d=1; d=0; P0=0xdf; //数字4 w=1; w=0; P0=0xff; w=1; w=0; P0=sz[0]; d=1; d=0; P0=0xef; w=1; w=0; P0=0xff; //数字0 w=1; w=0; P0=sz[7]; d=1; d=0; P0=0xf7; w=1; w=0; P0=0xff; //数字7 w=1; w=0; P0=sz[1]; d=1; d=0; P0=0xfb; w=1; w=0; //数字1 P0=0xff; w=1; w=0; P0=sz[0]; d=1; d=0; P0=0xfd; w=1; w=0; //数字0 P0=0xff; w=1; w=0; P0=sz[2]; d=1; d=0; P0=0xfe; w=1; w=0; //数字2 P0=0XFF; w=1; w=0; FM=ON; //蜂鸣器报警 delay(50000); //延迟 FM=OFF; //蜂鸣器关闭 delay(50000); //延迟 } } 而我把延迟函数50000改成500时,数码管显示很弱,当改成5时数码管就有显示了。
|
|
相关推荐
1个回答
|
|
|
是蜂鸣器延时占用数码管动态显示时间,更改如下:
#include #define uint unsigned int #define uchar unsigned char //#define ON 0 //#define OFF 1 ***it FM=P2^3; ***it d=P2^6; ***it w=P2^7; uint count=0; uchar code sz[27]= { 0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" 0x77, //"A" 0x7C, //"B" 0x39, //"C" 0x5E, //"D" 0x79, //"E" //数组 0x71, //"F" 0x76, //"H" 0x38, //"L" 0x37, //"n" 0x3E, //"u" 0x73, //"P" 0x5C, //"o" 0x40, //"-" 0x00, //熄灭 0xfc,//红灯亮 25 0xf3,//绿灯亮 26 0xcf,//黄灯亮 27 }; /*void delay(unsigned int t)//延迟函数 { while(--t); }*/ void main() { while(1) { P0=sz[1]; d=1; d=0; //数字1 P0=0x7f; w=1; w=0; P0=0xff; // w=1; //所有位都为高电压,位选关闭锁存,以免产生人眼看成乱码 w=0; // P0=sz[2]; d=1; d=0; P0=0xbf; //数字2 w=1; w=0; P0=0xff; w=1; w=0; P0=sz[4]; d=1; d=0; P0=0xdf; //数字4 w=1; w=0; P0=0xff; w=1; w=0; P0=sz[0]; d=1; d=0; P0=0xef; w=1; w=0; P0=0xff; //数字0 w=1; w=0; P0=sz[7]; d=1; d=0; P0=0xf7; w=1; w=0; P0=0xff; //数字7 w=1; w=0; P0=sz[1]; d=1; d=0; P0=0xfb; w=1; w=0; //数字1 P0=0xff; w=1; w=0; P0=sz[0]; d=1; d=0; P0=0xfd; w=1; w=0; //数字0 P0=0xff; w=1; w=0; P0=sz[2]; d=1; d=0; P0=0xfe; w=1; w=0; //数字2 P0=0XFF; w=1; w=0; /* FM=ON; //蜂鸣器报警 delay(50000); //延迟 FM=OFF; //蜂鸣器关闭 delay(50000); */ //延迟 if(FM==1) { count++; if(count>=5000) { FM=0; count=0; } } else { count++; if(count>=5000) { FM=1; count=0; } } } }
最佳答案
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2381 浏览 1 评论
4238 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2617 浏览 2 评论
3113 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4570 浏览 5 评论
有套STM32与西门子200程序需要代写,有兴趣的工程师与有联系!
2484浏览 1评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6796浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 05:17 , Processed in 0.646625 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1844