• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

keil5编写程序,显示一个数字,数字在两个地址里

明天的小太阳 2017-09-13 浏览量:1408

用keil5编写程序,显示的一个数字,但是这个数字不在同一个地址里,在两个地址里,一个在地址高四位另外一个在地址第四位,




第一种写法
char pm[4]={0x00,0x00,0x00,0x00};

void ht16c22_dis_PM25_1(int PM25_1)  
{
switch(PM25_1)
{
case 0:
ht16c22_display(0x06,0x00);

ht16c22_display(0x06,0xf0);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0x05);
break;
case 1:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,0x00);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0x05);
break;

case 2:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,0xd0);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0x03);
break;
case 3:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,0x90);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0x07);



第二种写法
char pm_1[10]={0x5f,0x50,0x3d,0x79,0x72,0x6b,0x6f,0x51,0x7f,0x7b};//0-9ÏÔʾʱÐèҪдÈëµÄÊý¾Ý
char dress_06=0x0f;
char pm_2[10]={0x5f,0x50,0x3d,0x79,0x72,0x6b,0x6f,0x51,0x7f,0x7b};//0-9ÏÔʾʱÐèҪдÈëµÄÊý¾Ý
char dress_07=0x0f;
char pm_3[10]={0x5f,0x50,0x3d,0x79,0x72,0x6b,0x6f,0x51,0x7f,0x7b};//0-9ÏÔʾʱÐèҪдÈëµÄÊý¾Ý
char dress_08=0x0f;

void ht16c22_dis_PM25_1(char PM25_1)  
{
switch(PM25_1)
{
case 0:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,(dress_06&0x0f)|(pm_1[0]&0x0f)<<4);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,(pm_1[0]&0xf0)|(pm_1[0]&0xf0)>>4);
break;
case 1:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,(dress_06&0x0f)|(pm_1[1]&0x0f)<<4);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,(pm_1[1]&0xf0)|(pm_1[1]&0xf0)>>4);
break;
case 2:
ht16c22_display(0x06,0x00);
ht16c22_display(0x06,(dress_06&0x0f)|(pm_1[2]&0x0f)<<4);
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,(pm_1[2]&0xf0)|(pm_1[2]&0xf0)>>4);
break;


第三种写法
void ht16c22_dis_PM25_2(int PM25_2)  
{
switch(PM25_2)
{
case 0:
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0xf0|0x05);
ht16c22_display(0x08,0x00);
ht16c22_display(0x08,0x05);
break;
case 1:
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0x00|0x05);
ht16c22_display(0x08,0x00);
ht16c22_display(0x08,0x05);
break;
case 2:
ht16c22_display(0x07,0x00);
ht16c22_display(0x07,0xd0|0x03);
ht16c22_display(0x08,0x00);
ht16c22_display(0x08,0x03);
break;

2.jpg



1.jpg


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 问题是:有一个数字,无符号8位数;要放到2个地址中,一个地址的高4位放这个数的高4位?另一个地址的低4位放这个数的低4位,是这个意思不。

    QQ截图20170913125814.jpg

    右边是16进制显示的结果,下面两个是a和b两个变量的地址。


    • 发布于 2017-09-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 所以您的問題是

    哪種寫法好??


    • 发布于2017-09-13
    • 举报
    • 评论 0
    • 1
    • 0

  • 你的问题是要选择哪种方式吗。这几种方式差不多的。

    你可以综合 执行效率、占用空间大小、易维护这几个因素来选择一个合适的方式。

    • 发布于2017-09-13
    • 举报
    • 评论 0
    • 1
    • 0

  • QQ截图20170913125814.jpg

    a和b两个变量有两个对应的地址,右边下面的2个16进制大数。

    • 发布于2017-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 请楼主把想问的问题补充完整,谢谢
    • 发布于2017-09-13
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

keil5编写程序,显示一个数字,数字在两个地址里