鱼C论坛

 找回密码
 立即注册
查看: 2573|回复: 0

[技术交流] 终于感觉学有所用了《算单片机的点亮数码管的16进制数》

[复制链接]
发表于 2015-1-9 17:51:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习小甲鱼老师视频也有很多天了,今天在学习单片机点亮7段数码管的时候要先选择数码管要亮的灯(数码管一共有a.b.c.d.e.f.g.h个极) 选好灯后要化为二进制数  再化为十六进制数   比如    让数码管显示1 就是b.c两极点亮  二进制比特流就是  0000 0110     要输出的十六进制是 0x06  算一两个还行  要是算1—16那就要算头晕了  于是想到用c编写一个程序  让计算机来帮我解决,于是就写出了这么个东西(输入a到h就可以得到相应的答案,h是dp端 随意选择是否点亮):
http://pan.baidu.com/s/1gds0ccb 弄好的成品
#include <stdio.h>

void main()
{
        while(1)
        {
                int i,x;
                int ZZ[8]={0,0,0,0,0,0,0,0};
                char ch;

                printf("\n请输入数码管想要亮的字母 : ");
                ch = getchar();
                while(ch != '\n')
                {
                        if(ch>='a' && ch<='h')
                        {
                                if(ch == 'a')
                                {
                                        ZZ[0] = 1;
                                }
                                if(ch == 'b')
                                {
                                        ZZ[1] = 1;
                                }
                                if(ch == 'c')
                                {
                                        ZZ[2] = 1;
                                }
                                if(ch == 'd')
                                {
                                        ZZ[3] = 1;
                                }
                                if(ch == 'e')
                                {
                                        ZZ[4] = 1;
                                }
                                if(ch == 'f')
                                {
                                        ZZ[5] = 1;
                                }
                                if(ch == 'g')
                                {
                                        ZZ[6] = 1;
                                }
                                if(ch == 'h')
                                {
                                        ZZ[7] = 1;
                                }
                               
                        }
                        else
                        {
                                printf("对不起您的输入有误,请重新输入!\n");
                                return;
                        }
                        ch = getchar();
                }

                printf("二进制数为 : ");
                for(i=7 ; i>=0 ; i--)
                {
                        printf("%d",ZZ[i]);
                        if(i == 4)
                        {
                                printf(" ");
                        }
                }
               
                x=ZZ[0] + ZZ[1]*2 + ZZ[2]*4 + ZZ[3]*8 + ZZ[4]*16 + ZZ[5]*32 + ZZ[6]*64 + ZZ[7]*128;
                if(x <= 16)
                {
                        printf("       十六进制数为 : 0x0%X\n",x);
                }
                else
                {
                        printf("       十六进制数为 : 0x%X\n",x);
                }
       
        }
}



数码管

数码管
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 14:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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