找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机+数码管显示数字错误

查看数: 3852 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-22 12:40

正文摘要:

数码管有几个数字显示错误是为什么? #include <reg52.h>                 //调用单片机头文件 #define uchar unsigned char    ...

回复

ID:267719 发表于 2020-5-22 17:24
楼主译码错了。建议如下译码(共阳),这样错了很容易调整。
#define SEGA 0xfe
#define SEGB 0xfd
#define SEGC 0xf7
#define SEGD 0xdf
#define SEGE 0xef
#define SEGF 0xfb
#define SEGG 0xbf


#define CHAR_0 SEG_A&SEG_B&SEG_C&SEG_D&SEG_E&SEG_F                        //0               
#define CHAR_1 SEG_B&SEG_C                                                                                                                        //1
#define CHAR_2 SEG_A&SEG_B&SEG_D&SEG_E&SEG_G                                                //2
#define CHAR_3 SEG_A&SEG_B&SEG_C&SEG_D&SEG_G                                                //3
#define CHAR_4 SEG_B&SEG_C&SEG_F&SEG_G                                                                        //4
#define CHAR_5 SEG_A&SEG_C&SEG_D&SEG_F&SEG_G                                                //5
#define CHAR_6 SEG_A&SEG_C&SEG_D&SEG_E&SEG_F&SEG_G                        //6
#define CHAR_7 SEG_A&SEG_B&SEG_C                                                                                                //7
#define CHAR_8 SEG_A&SEG_B&SEG_C&SEG_D&SEG_E&SEG_F&SEG_G//8
#define CHAR_9 SEG_A&SEG_B&SEG_C&SEG_D&SEG_F&SEG_G                        //9
#define CHAR_A SEG_A&SEG_B&SEG_C&SEG_E&SEG_F&SEG_G                        //a
#define CHAR_b SEG_C&SEG_D&SEG_E&SEG_F&SEG_G                                                //b
#define CHAR_C SEG_A&SEG_D&SEG_E&SEG_F                                                                        //c
#define CHAR_d SEG_B&SEG_C&SEG_D&SEG_E&SEG_G                                                //d
#define CHAR_E SEG_A&SEG_D&SEG_E&SEG_F&SEG_G                                                //e
#define CHAR_F SEG_A&SEG_E&SEG_F&SEG_G                                                                        //f
#define CHAR_r SEG_E&SEG_G                                                                                                                        //r               
#define CHAR_N SEG_A&SEG_B&SEG_C&SEG_E&SEG_F                                                //N               
#define CHAR_n SEG_C&SEG_E&SEG_G                                                                                                //n               
#define CHAR_H SEG_B&SEG_C&SEG_E&SEG_F&SEG_G                                                //H       
#define CHAR_Blank         0xff


uchar code smg_du[]={CHAR_0,CHAR_1,CHAR_2,CHAR_3,CHAR_4,CHAR_5,CHAR_6,CHAR_7,CHAR_8,CHAR_9,CHAR_A,CHAR_b,CHAR_C,CHAR_d,CHAR_E,CHAR_F,CHAR_Blank};

ID:731394 发表于 2020-5-22 17:20
查看一下是共阴还是共阳 在看数码管的编码是否对应
ID:744327 发表于 2020-5-22 16:51
显示编码是对的。可能是仿真软件问题,仿真软件对延时的要求很精准。
ID:195446 发表于 2020-5-22 16:16
毕竟是仿真,有的元件与实际有差异。楼主把双联数码管改成2个单个数码管,就能正常显示了。
ID:584814 发表于 2020-5-22 15:40
估计是数码管的编码问题

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表