• 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 打印

    粤11选5基本走势图360: 调试助手,产品分析助手,4位数码管显示???/span>

    [复制链接]
    365|13
    跳转到指定楼层
    楼主
     楼主 | 2018-11-14 18:49 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
    调试用数码管驱动???br /> 1.概述
    调试用数码管驱动??椴庞昧思虻サ牡ハ咧?br /> RS232单向传送协议,波特率固定为38400.
    ??榭山邮苤噶詈褪?。用户端只要按固定的格式传送数据流(数据为连续两个字节的RAM参数内容,)就可以完成想要的显示。方便用于产品开发调试以及学生完成课程设计等。

    端口定义:
    VDD,  接测试板的电源正
    GND,  接测试板的电源地
    DOUT, 接测试板的信号输出,显示??榈氖菔淙攵?br /> 工作电压范围:3.3~5.5V, 注意超过5.5V,可能导致??橛谰盟鸹?,无法恢复。
    可单独控制某一位的亮灭;
    可显示16进制数,最大值FFFF;
    可显示10进制数,最大值9999。扩展显示,可显示65535,采用滚动模式显示;

    2.常用指令介绍:
    控制数据流按固定的5字节格式,前面2字节为命令字,中间两个字节为数据,最后一个字节为前4个字节的校验和。也就是说数据流才用了和校验的方式进行真伪判断。

    A.控制指令:
    控制指令,主要是通过指令告知显示???,接收的目标数据及显示数据的类型。类型分10进制和16进制。该??樵谑褂弥?,需要根据用户的使用情况对传输数据的进制模式和显示数据的进制模式做一次声明。??槟系哪J轿?6进制传输方式和10进制显示模式。用户可才用默认模式做显示,以减少对显示??榈某跏蓟柚?。

    数据传输显示控制指令的数据格式为:0x55+0xaa+传送数据类型+显示数据类型+校验和;
    数据类型解释:
    01,表示字符格式,该格式保留此版本未被才用。

    02,表示16进制数,16进制数不方便观察,但是两个字节可以传输更大的数据范围。4位数码管显示的数据范围也会更大,为0~ffff, 即十进制数范围为0~65535。
    03,表示10进制数,10进制数据显示更为直观,但是4个数码管显示的数据范围则缩小很多,数据范围为0~9999。表示接收到的数据为10进制的数据,如果用十进制显示数据,该数据就不需要做十进制转换处理。

    ??榈鼻鞍姹究山邮苋执浼跋允灸J?。
    1.16进制传输16进制显示;
    2.16进制传输10进制显示;
    3.10进制传输10进制显示;
    4.不支持10进制传输16进制显示的方式。


    显示控制指令:0x55+0xcc+0x0y+0x0x+校验和。其中y是4位二进制数,分别控制对应位的数码管小数点是否需要点亮。x也是4位二进制数,分别用1表示点亮,0表示关闭显示。4个二进制位控制4个数码管。

    B.数据传输指令:
    数据格式:0x55+0xbb+数据1+数据2+校验和;

    1.0x55+0xbb,头码标志;
    2.数据1,高字节;
    3.数据2,低字节;
    4.数据流的校验和;

    例如用户需要将0x1234,传输给显示???,并以16进制显示。需要两串数据流控制。
    1.先对显示??槌跏蓟?,根据要求,此条有时可省
       控制指令0x55+0xaa+0x02+0x02+04, 04为校验和的低8位。
    2.再做数据传输
       传输指令0x55+0xbb+0x12+0x34+56, 56为校验和的低8位。

    用户如果想显示12位AD转换的值,并用10进制显示,操作如下:
    1. 先对显示??槌跏蓟?,根据要求,此条有时可省
       控制指令0x55+0xaa+0x02+0x03+04, 05为校验和的低8位。
    2.再做数据传输,
       传输指令0x55+0xbb+数据高位+数据地位+校验和。

    C.扩展显示指令:
    A.乘积结果显示:
    扩展显示指令为乘积显示指令,这种方式可以最直观的观察系统检测的物理参数。
    比如我们AD采集的量化值,反映的具体物理量,多少毫伏电压mV,多少毫安电流mI等,
    这时是需要用量化值乘以某个系数来体现。为了方便,本系统只提供最大0xffff的10进制显示范围,即00000~65535,扩展显示默认的数据都是16进制格式的。
       扩展指令的命令格式如下:
    0x55+0xc0+数据h+数据l+校验和, 传送一个乘数因子A,一般来说,这个是一个12位以内的AD采集的量化值;

    0x55+0xdx+数据h+数据l+校验和, 传送另一个常数因子B,x表示因子的小数点尾数,这个是将AD量化后,经过电路转换对应的具体物理量,显示??楸匦氲玫揭淮纬J柚煤?,才能正常显示乘积的结果。。
    比如当我们的AD转换的参考电压为3.3V时,如果要求因子B对应的毫伏关系,就看AD是多少位精度的了,如果是8位,每个AD量化值对应的毫伏关系则为3300/255=19.4118;如果AD的精度是12,则每个AD量化值对应的毫伏关系是3300/4096=0.805664。

    使用扩展显示方式时,一定要先传输乘数因子B,乘数因子B,每次使用时,传输一次即可。这样可以减少主控芯片的数据传输压力。并请留意扩展显示的数据范围为0000~65535

    以3.3V的系统举例显示AD采集数据,怎么量化为毫伏值。所采用的AD精度为12位,则每一个AD采集值,对应0.805664毫伏。将0.805664转化为8位二进制数小数的结果为00CE。
    所以第一步需要,将这个系数告知显示???。
    指令0x55+0xd8+0x00+0xce+0x32 ,数据流设定参数;
    再送一组AD结果:
    0x55+0xc0+0x07+0xff+0x1b, 这样就可以得到你想直观看到的测试结果了。   

    B.除法商数显示:
    利用该种显示方法,可以轻松得出,单片机利用内部参考电压做AD转换标准时,所得到的结果显示,利用十进制显示结果,效果非常直观。比如在应广带AD的单片机中,常有1.2V的内置参考电压,很多应用,利用这个参考电压,就可以反推VDD的电压值情况。为了尽量避免小数参与运算,以毫伏表示。 若AD为8位精度的话,此时VDD = 1200*255/AD转换结果=306000/ad结果=04AB50/ad结果;若12位AD精度 VDD = 1200*4095/ad结果=4914000/ad结果=4AFB50/ad结果。有了这种显示,单片机系统检测的数据对不对,就很容易通过万用表来校对了。
    因为被除数的数值比较大,一般需要三个字节来表示。除法商数的显示指令为
    0xdd+被除数高字节+被除数中间字节+被除数低字节+校验和;
    0xdc+0x00+ad结果高4位+ad结果低8位+校验和
    点击进入淘宝快速预定通道, 通道位置:淘宝首页分类栏---开发工---仿真器下面:

    调试用参考程序,系统时钟4MHz,其他始终速率,请自行调整时序:

    //指令周期延时子程序,
    void    delay_5nop(void)
    {
                  goto $+1;
              nop;
                  nop;

    }
    //a_delay,
    //input a ,
    //function a*4t
    void  a_delay(void)
    {
            nop;
            dzsn a
            goto $-2
    }

    void rs232_tx_pro(void)
    {
            byte byte_cnt;
            g_word = fllow;
            byte_cnt = 0;
            while(byte_cnt<5)
            {
                    a = *g_word;
                    UART_Send();
                    delay_5nop();               
                    byte_cnt++;
                    g_word = fllow;
                    g_word += byte_cnt;
                   
             }
           
    }

    //单个字节发送,输入入口A
    //该程序是假定系统时钟为4M时的指令时序参考。
    static        void        UART_Send (void)
    {
            BYTE        cnt;
            BYTE        UART_Data_Out;
            disgint;

            UART_Data_Out        =        A;

            //        Start Bit
            set0        UART_Out;                                    //        1
            cnt        =        8;                                                //        2 ~ 3
            mov  a, 24;
            call a_delay;
    bit_send:  
                            sr                UART_Data_Out;        //        1a
                            t1sn  CF                //  2a
                            goto send_0_bit          //  3b
                            set1  UART_Out          //  3a
                            nop;                    //  4a
                            nop
                            nop
    bit_delay:                       
                            mov a, 24               //  5a
                            call a_delay             //  6a
          dzsn cnt                      //  7a
          goto  bit_send                //  8a
          set1  UART_Out               //  9a
          mov a, 25                     //
          call a_delay
          engint;
          return
    //============
    send_0_bit:
                set0  UART_Out            //5b
          goto  bit_delay               //7b
          


    }               


    欢迎关注微信公共号,一起交流应广单片机:
    沙发
    | 2018-11-14 21:52 | 只看该作者
    其实串口能送数出来了,是不是直接打印到电脑上的超级终端更方便?连驱动都免了,C自带的标准库函数printf()什么数都能打印
    板凳
    | 2018-11-15 08:43 | 只看该作者
    mohanwei 发表于 2018-11-14 21:52
    其实串口能送数出来了,是不是直接打印到电脑上的超级终端更方便?连驱动都免了,C自带的标准库函数printf( ...

    正解
    地板
     楼主 | 2018-11-15 14:12 | 只看该作者
    mohanwei 发表于 2018-11-14 21:52
    其实串口能送数出来了,是不是直接打印到电脑上的超级终端更方便?连驱动都免了,C自带的标准库函数printf( ...

    串口能够打印的是原始数据而已,没有现成完成乘除法的,单片机自己要完成这样的计算处理,很多资源耗掉一大半了,不科学。而且有时也不是去去哪里测试都带个笔记本过去吧。比如你的产品最终都保留了测试数据输出,你还要工厂去买个电脑,再买一个USB转串口的线,告诉对方怎么使用调试终端吗。你让他直接用这个一接,就完了。那个方便不多说了。
    5
    | 2018-11-15 14:27 | 只看该作者
    工控秀才 发表于 2018-11-15 14:12
    串口能够打印的是原始数据而已,没有现成完成乘除法的,单片机自己要完成这样的计算处理,很多资源耗掉一 ...

    难道这样用也不可以?
    printf("P=,R=\n",V*I,V/I);

    以前用51的时候,使用printf()需要占用大约1.1KB的Flash,但是用了一次后,后面再用,只是增加几个字节……远远没有你说的那么夸张
    6
     楼主 | 2018-11-16 15:32 | 只看该作者
    mohanwei 发表于 2018-11-15 14:27
    难道这样用也不可以?
    printf("P=,R=\n",V*I,V/I);

    你可能还没有玩过程序空间只有1~2K的OTP,你一个函数用这么多资源,别的怎么玩。
    7
    | 2018-11-16 17:00 | 只看该作者
    工控秀才 发表于 2018-11-16 15:32
    你可能还没有玩过程序空间只有1~2K的OTP,你一个函数用这么多资源,别的怎么玩。 ...

    0.5k的我都用过,不过都用到这种小容量单片机了,你确定也需要接你这种玩意?
    8
    | 2018-11-17 18:32 | 只看该作者
    直接硬件调试,或者仿真调试
    9
    | 2018-11-18 08:40 | 只看该作者
    说实话肯定没什么市场,压根就不需要这东西,仿真器多好
    10
     楼主 | 2018-11-20 10:28 | 只看该作者
    yklstudent 发表于 2018-11-18 08:40
    说实话肯定没什么市场,压根就不需要这东西,仿真器多好

    仿真器和实体IC是有差别的,无论你怎么说,我自己已经感觉到他的方便性了。
    11
     楼主 | 2018-11-20 10:31 | 只看该作者
    一路向北lm 发表于 2018-11-17 18:32
    直接硬件调试,或者仿真调试

    我随便给你一批空片,让你看看内部1.2V参考电压准不准,准才用于烧录,不准就不用,你用仿真器怎么搞,有我这个东西就只需要烧录一个测试程序,一通电就能够看出来。你怎么测试,怎么样简单,还用说?
    12
     楼主 | 2018-11-20 10:35 | 只看该作者
    yklstudent 发表于 2018-11-18 08:40
    说实话肯定没什么市场,压根就不需要这东西,仿真器多好

    或者说,检查你硬件LAYOUT对AD检测有多大的偏差,有这个东西,也很方便测试,让设计者心里有底。
    13
    | 2018-11-20 10:53 | 只看该作者
    电工需要折腾的精神,给鼓励,顺便提些建议。
    1.直接把串口收到的字节显示,应用程序只要把监测数据送SBUF,也增加不了几个代码。
    2.10进制没必要,用这个的心算能力都很强的。
    3.做为个产品肯定是小众的,中间加两个LED,闲时可以当时钟用。
    14
     楼主 | 2018-11-20 14:24 | 只看该作者
    vrgood 发表于 2018-11-20 10:53
    电工需要折腾的精神,给鼓励,顺便提些建议。
    1.直接把串口收到的字节显示,应用程序只要把监测数据送SBUF, ...

    谢谢你的建议,当初真想了做个6位以上的,这颗IC脚位不够,就保留了4位,弄着玩的。赚钱是次要的,提高知名度吧,哈哈。
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    关闭

    热门推荐上一条 /3 下一条

    快速回复 广东快乐十分走势图 返回列表
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21