找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1432|回复: 3
收起左侧

通过ht1621控制段码屏显示,为什么num值大于255会显示不正常?求解

[复制链接]
ID:858009 发表于 2021-12-10 16:59 | 显示全部楼层 |阅读模式
想问一下这是什么问题?

#include "HT1621B.h"
//                 //  0    1    2    3    4    5    6    7    8    9  
uchar code tab1[11]={0xF0,0x00,0xD0,0x90,0x20,0xB0,0xF0,0x10,0xF0,0xB0};
uchar code tab2[11]={0xA0,0xA0,0x60,0xE0,0xE0,0xC0,0xC0,0xA0,0xE0,0xE0};

uchar ad0,ad1,ad2,num;
void delay_ams(uint v)                //延时程序
{
        uint n,m;
        for(n=v;n>0;n--)
         for(m=110;m>0;m--);
}
/*******************************************************************************
* Function Name  : Show_Init()
* Description    : 显示对应的电压
*******************************************************************************/
void Show_Init(uchar ad0,uchar ad1,uchar ad2)
{
        Write_1621(15,tab1[ad0],4);
        Write_1621(16,tab2[ad0],4);
        Write_1621(17,tab1[ad1],4);
        Write_1621(18,tab2[ad1],4);
        Write_1621(19,tab1[ad2],4);
        Write_1621(20,tab2[ad2],4);
}
void main(void)
{
        uchar i;
        Init_1621();       //初始化HT1621
        HT1621_all_off();  //清空LCD显示
    while(1)
        {
                num=255;    //num值小于255,段码屏显示对应的值,num大于255.显示的值不正常,例如num=260,段码屏显示044,
                ad0=num/100;
                ad1=num%100/10;
                ad2=num%10;
                Show_Init(ad0,ad1,ad2);
   }
}

回复

使用道具 举报

ID:858009 发表于 2021-12-10 17:24 | 显示全部楼层
已解决
回复

使用道具 举报

ID:401564 发表于 2021-12-10 17:29 | 显示全部楼层
num是 unsigned char型变量,它的值只能是0-255之间
超过这个值的,就不是正确值了
回复

使用道具 举报

ID:858009 发表于 2021-12-10 17:31 | 显示全部楼层
Y_G_G 发表于 2021-12-10 17:29
num是 unsigned char型变量,它的值只能是0-255之间
超过这个值的,就不是正确值了

懂了,范围用错了,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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