找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2007|回复: 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);
   }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 单片机教程网

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