完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include <reg52.h> #define duan P0 sbit bai = P2^5; sbit shi = P2^6; sbit ge = P2^7; sbit KEY = P3^6; char array [10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9的数码管编码 void delay(int xms) {
} void interrupt0() interrupt 0
void main() {
} 不知道哪儿出问题了,单片机数码管无法显示930这几个数字,求大佬帮忙解答 |
|
相关推荐
2个回答
|
|
这段代码是用于8051单片机的C语言程序,目的是通过中断实现数码管显示数字930。以下是代码的解释和补充:
1. 包含头文件`reg52.h`,这是8051单片机的寄存器定义文件。 2. 定义端口P0为数码管的段选信号(duan),P2的第5、6、7位分别为百位(bai)、十位(shi)和个位(ge)的控制信号。 3. 定义P3的第6位为按键输入信号(KEY)。 4. 定义一个数组`array[10]`,存储0-9的数码管编码。 5. 定义延时函数`delay(int xms)`,用于产生延时。 6. 定义外部中断0的服务函数`interrupt0() interrupt 0`,当外部中断0发生时,执行该函数。 7. 在中断服务函数中,首先对P0进行取反操作,实现数码管的动态显示。 8. 检测按键是否被按下,如果按下,则延时1000ms,再次检测按键是否仍然被按下。 9. 如果按键仍然被按下,则初始化数码管的控制信号,显示数字9。 10. 接下来,代码中缺少了显示数字3和0的代码。 以下是补充后的完整代码: ```c #include #define duan P0 sbit bai = P2^5; sbit shi = P2^6; sbit ge = P2^7; sbit KEY = P3^6; char array[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9的数码管编码 void delay(int xms) { int i,j; for(i = xms ; i > 0; i--) { for(j = 120; j > 0; j--) { //do nothing } } } void interrupt0() interrupt 0 { P0 = ~P0; // 取反P0,实现动态显示 if (KEY == 0) { delay(1000); // 消抖 if (KEY == 0) { // 初始化 ge = 0; shi = 0; bai = 0; // 显示9 ge = 0; shi = 0; bai = 1; P0 = array[9]; // 显示9 delay(5); // 延时,保持显示 // 显示3 ge = 0; shi = 1; bai = 0; P0 = array[3]; // 显示3 delay(5); // 延时,保持显示 // 显示0 ge = 1; shi = 0; bai = 0; P0 = array[0]; // 显示0 delay(5); // 延时,保持显示 } } } ``` 这段代码实现了在外部中断0发生时,通过按键控制数码管显示数字930的功能。注意,实际应用中可能需要根据具体的硬件连接和需求进行调整。 |
|
|
|
先从简单的开始,随便让数码管的一段亮起来可以做到吗
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
820 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第十一章 KEY实验
388 浏览 0 评论
783 浏览 0 评论
801 浏览 2 评论
飞凌嵌入式-ELFBOARD-ELF 2硬件知识分享-最小系统原理
466 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11933 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-13 02:00 , Processed in 0.451828 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号