搜索
bottom↓
回复: 29

嘉立创每月的福利,弄一个开发单片机参数用的显示板

[复制链接]

出0入0汤圆

发表于 2020-9-11 21:30:18 | 显示全部楼层 |阅读模式
本帖最后由 freshuman 于 2020-9-11 22:04 编辑

每一次想显示单片机当前的参数,麻烦就作一个RS485+数码管的显示板
新唐003+TM1650驱动方案;
空板:
  

焊好的板;
  

刚上电的:

现在解码红外的键值,贼好用,当然可以显示你要显示的数据;


附一个原厂的1650的驱动代码:
/*****************************************************************************
*版权信息:深圳天微电子有限公司
*文 件 名:TM1650-V1.0
*当前版本:V1.0
*MCU 型号:STC12C5608AD
*开发环境:Keil uVision4
*晶震频率:11.0592MHZ      
*完成日期:2013-07-29
*程序功能:1.上电8段4位共阴数码管显示1、2、3、4.
            2.按下K11与DIG1,K12与DIG2 ,K13与DIG3之间的按键,数码管第一位分别显示5、6、7。
*免责声明:1.此程序为TM1650驱动LED数码管演示程序,仅作参考之用。
            2.如有直接使用本例程程序造成经济损失的,本公司不承担任何责任            
********************************************************************************/
#include<reg52.h>                                  //MCU头文件
#include<intrins.h>                                  //包含nop指令头文件
#define uint unsigned int                          //数据类型宏定义
#define uchar unsigned char                          //数据类型宏定义

#define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();  //宏定义


/********************定义控制端口**********************/
sbit SCL=P2^1;                       //时钟线
sbit SDA=P2^0;                       //数据线

uchar keya;                             //定义读出按键返回值

/*************1ms延时*晶振11.0592M********************/
void delay(uint n)
{
  uint i;
  while(n--)
         for(i=0;i<550;i++);
}

/**************共阴数码管显示0-F**********************/
uchar display[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //共阴极字段码

/************ START信号*******************************/
void TM1650_START()
{
        SCL=1;
        SDA=1;
        nop;
        SDA=0;
        nop;
        SCL=0;
}
/******************** STOP信号************************/
void TM1650_STOP()
{
        SDA=0;
        nop;
        SCL=1;
        nop;
        SDA=1;
        nop;
        SCL=0;
        SDA=0;
}
/****************写1个字节给TM1650********************/
void write_8bit( uchar dat)
{
         uchar i;
        SCL=0;
        for(i=0;i<8;i++)
                {
                if(dat&0x80)
                {
                        SDA=1;
                        nop;
                        nop;
                        SCL=1;
                        nop;
                        nop;
                        nop;
                        nop;
                        nop;
                        SCL=0;         
                }
                else
                {
                        SDA=0;
                        nop;
                        nop;
                        SCL=1;
                        nop;
                        nop;
                        nop;
                        nop;
                        nop;
                        SCL=0;
                }        
                        dat<<=1;         
                }
                SDA=1;                        //ACK信号
                nop;
                nop;
                nop;
                nop;
                SCL=1;
                nop;
                nop;
                nop;
                nop;
                nop;
                SCL=0;
                nop;
                nop;         
}

/**********************读8bit**************************/
uchar read_8bit()
{
        uchar dat,i;
        SDA=1;
        dat=0;
        for(i=0;i<8;i++)
        {
        SCL=1;                        //时钟上沿
        nop;
        nop;
        nop;
        dat<<=1;
        if(SDA)
         dat++;
        SCL=0;
        nop;
        nop;
        nop;
        nop;
        }
        SDA=0;                            //ACK信号
        nop;
        nop;
        nop;
        SCL=1;
        nop;
        nop;
        nop;
        nop;
        SCL=0;
        nop;
        
        return dat ;

}
/*******************读按键命令************************/
uchar TM1650_read()
{
        uchar key;
        TM1650_START();
    write_8bit(0x49);//读按键指令        
        key=read_8bit();
        TM1650_STOP();
        return key;
}
/*****************发送命令信号***********************/
void TM1650_send(uchar date1,uchar date2)
{
         TM1650_START();
        write_8bit(date1);
        write_8bit(date2);
        TM1650_STOP();
}

/*****************显示函数***********************/
void disp()
{
        TM1650_send(0x48,0x01);                     // 开启显示模式:8段显示,1级亮度
        TM1650_send(0X68,display[1]);  //GID1
        TM1650_send(0X6A,display[2]);  //GID2
        TM1650_send(0X6C,display[3]);  //GID3
        TM1650_send(0X6E,display[4]);  //GID4
}


/**************主函数**************************/
void main(void)
{
   disp();                                            //上电显示1、2、3、4
   delay(1);
   while(1)
        {
                keya=TM1650_read();
                delay(50);
                if (keya!=0)
                {
                        switch(keya)                 //控制数码管显示数字           
                        {            
                        case 0x44:TM1650_send(0X68,display[5]);  break;    //K11与DIG1     
                        case 0x4D:TM1650_send(0X68,display[6]);  break;    //K12与DIG2                  
                        case 0x56:TM1650_send(0X68,display[7]);  break;    //K13与DIG3  
                        default:  break;
                        }
                }        
    }
}


本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2020-9-11 21:34:45 | 显示全部楼层
.... 运用场景是啥呢?
你发的文字都认识,但不知道具体啥意思

出0入0汤圆

 楼主| 发表于 2020-9-11 21:39:13 | 显示全部楼层
huangyiting1990 发表于 2020-9-11 21:34
.... 运用场景是啥呢?
你发的文字都认识,但不知道具体啥意思

难道我的表达那么次,就是每一月嘉立创福利每款板5元包邮,所以作一个数码管显示板。

出0入0汤圆

发表于 2020-9-11 21:39:46 | 显示全部楼层
可以显示STM32单片机里数据吗?

出0入0汤圆

 楼主| 发表于 2020-9-11 21:40:44 | 显示全部楼层
elevator2020 发表于 2020-9-11 21:39
可以显示STM32单片机里数据吗?

串口的RS485随便用

出0入0汤圆

发表于 2020-9-11 21:44:49 | 显示全部楼层
当做好后,发现显示的参数就那么几个,于是再加数码管;
又发现不能显示ASCII,于是上LCD12864吧;
12864只能显示简单的几行,太LOW了,于是上个7寸TFT吧,800X480够不够?
……
最后发现:怎么那么傻,用串口助手调一下不就行了吗

出0入0汤圆

 楼主| 发表于 2020-9-11 21:48:37 | 显示全部楼层
本帖最后由 freshuman 于 2020-9-11 22:53 编辑
yy625 发表于 2020-9-11 21:44
当做好后,发现显示的参数就那么几个,于是再加数码管;
又发现不能显示ASCII,于是上LCD12864吧;
12864只 ...


就一个调试工具要那么高级吗?
有时候就显示那么几个而以;


不是什么时候都可以在电脑上显示用的,户外作业;
用来DMX512地址码,信号值........不说了,
这句话突然想起大学上学的时候我反问教单片机的老师,单片机有什么用,干吗不弄一个奔三的机器回来用,几百块,现在想想是多多幼稚;

本帖子中包含更多资源

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

x

出0入984汤圆

发表于 2020-9-11 21:50:14 | 显示全部楼层
yy625 发表于 2020-9-11 21:44
当做好后,发现显示的参数就那么几个,于是再加数码管;
又发现不能显示ASCII,于是上LCD12864吧;
12864只 ...

确实 买个二手墨水屏标签比这个好玩

出0入4汤圆

发表于 2020-9-11 21:50:32 来自手机 | 显示全部楼层
yy625 发表于 2020-9-11 21:44
当做好后,发现显示的参数就那么几个,于是再加数码管;
又发现不能显示ASCII,于是上LCD12864吧;
12864只 ...

哈哈哈哈哈哈哈,还真是

出0入0汤圆

 楼主| 发表于 2020-9-11 21:58:36 | 显示全部楼层
不是所用操作都要用电脑,示波器,LCD,杀鸡干吗要用牛刀;

出16170入6148汤圆

发表于 2020-9-11 22:00:23 来自手机 | 显示全部楼层
楼主违规了。

不得整段使用大字体。发帖的时候已经有警告。

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2020-9-11 22:05:16 | 显示全部楼层
armok. 发表于 2020-9-11 22:00
楼主违规了。

不得整段使用大字体。发帖的时候已经有警告。

电脑上显示看小字累人,就显大一点好看一点;

出0入0汤圆

发表于 2020-9-11 22:12:49 来自手机 | 显示全部楼层
新塘也是禄的羊毛吧,哈哈哈

出0入0汤圆

 楼主| 发表于 2020-9-11 22:14:20 | 显示全部楼层
本帖最后由 freshuman 于 2020-9-11 22:16 编辑
PCBBOY1991 发表于 2020-9-11 22:12
新塘也是禄的羊毛吧,哈哈哈


新唐不是送的,003我17年用到现在也差不多用了100K个了;
新唐的003用起来顺手了,也没有出现什么大BUG,有一个BUG可以避免的,如果你是RS485+003就会碰到的;

出0入0汤圆

发表于 2020-9-11 22:23:52 | 显示全部楼层
什么bug?

出0入0汤圆

 楼主| 发表于 2020-9-11 22:27:56 | 显示全部楼层

批量机(几十台上千以台同时工作,像景观亮化的灯具都是上千上万台同时工作)使用的时候,先通电信号,再上电主板,MCU不会启动,像死了一样;

出0入0汤圆

发表于 2020-9-11 22:31:45 | 显示全部楼层
这批量的MCU是独立的还是相互之间通讯的?

出0入0汤圆

 楼主| 发表于 2020-9-11 22:36:00 | 显示全部楼层
maxking 发表于 2020-9-11 22:31
这批量的MCU是独立的还是相互之间通讯的?


都是从机,在一条或多条主信号线上,都听主控器或电脑视频播放信号;

出0入0汤圆

 楼主| 发表于 2020-9-11 22:41:15 | 显示全部楼层
新唐003操作IAP 保存数据用,真心没有出现过数据丢失,之前用的STC12,笙泉的片都出现过小概率丢失;

出0入0汤圆

 楼主| 发表于 2020-9-11 23:04:47 | 显示全部楼层
发一个红外键值解码视频,多爽啊,一目了然;
https://www.iqiyi.com/v_18zha12j97w.html

出0入170汤圆

发表于 2020-9-12 08:59:28 | 显示全部楼层
freshuman 发表于 2020-9-11 21:48
就一个调试工具要那么高级吗?
有时候就显示那么几个而以;

显示DMX512地址码,不用RDM手持吗?

出0入16汤圆

发表于 2020-9-12 09:05:04 来自手机 | 显示全部楼层
不错,但是我都是用lcd来显示,能显示更多信息。

出0入0汤圆

 楼主| 发表于 2020-9-12 10:26:58 | 显示全部楼层
本帖最后由 freshuman 于 2020-9-12 10:31 编辑
穿越时空 发表于 2020-9-12 08:59
显示DMX512地址码,不用RDM手持吗?


你觉得有多少景观亮化的灯具会用上RDM,RDM用在景观灯具是多余的,又不是舞台灯;
像这样解码红外键值不爽吗?非要电脑串口吗?

出0入0汤圆

发表于 2020-9-12 11:03:07 | 显示全部楼层
能发一下红外解码的程序吗

出0入0汤圆

 楼主| 发表于 2020-9-12 11:10:21 | 显示全部楼层
haohai 发表于 2020-9-12 11:03
能发一下红外解码的程序吗

论坛一搜大把的,也要自己平时多看看论坛;

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2020-10-11 15:30:22 | 显示全部楼层

NTC查表温度,  003内隙电压
NTC电压ADC值  内隙电压对电压的ADC值
NTC电压值   电源电压值

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2020-10-11 15:33:19 | 显示全部楼层
这个查表NTC温度不受电源电压浮动影响,只受上拉的电阻的精值,同样是3.3V 5.0V电源电压都不会影响温度

出0入0汤圆

发表于 2020-10-31 22:06:37 来自手机 | 显示全部楼层
嘉立创打样,特别适合做这种小工具。用量不多,还便宜啊。

出0入0汤圆

 楼主| 发表于 2020-12-15 15:58:19 | 显示全部楼层


NTC温度也可以作到+-1度

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2020-12-26 21:24:27 来自手机 | 显示全部楼层
都在撸嘉立创的羊毛
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 21:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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