找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2117|回复: 1
收起左侧

单片机TM1620程序刚做出来,测试没问题,先记录一下,有感兴趣的朋友可以参考下

[复制链接]
ID:476556 发表于 2021-6-8 09:49 | 显示全部楼层 |阅读模式
原本想做个别的,因为中途被打断了,这里记录一下:程序是18B20温度传感器+TM1620,我使用的是共阴极数码管。


#include "tm1260.h"

//---重定义关键词---//

void sendDataToTM1620(unsigned char sdata){
//在时钟的上升沿进行移位写入,低位先传
        unsigned char a;
         stb = 0;
        _nop_();
        _nop_();

        for(a=0;a<8;a++){
                if(sdata&0x01)
                        din = 1;
                else
                        din = 0;
                sdata >>= 1;
                clk = 0;
                _nop_();
                _nop_();
                clk = 1;

        }

}
void initialTM1620(int temp){
  unsigned char i,TempNum[4]={0};
        unsigned char code TubYinNum[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };//0-9 //共阴极
        unsigned char code TubYanNum[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };//0-9
        
        TempNum[0] = TubYinNum[temp/100];//温度十位
        TempNum[1] = TubYinNum[temp%100/10];//温度个位
        TempNum[1] = TempNum[1]|0x80;//加上小数点
        TempNum[2] = TubYinNum[temp%10];//温度小数点
        
        stb = 1;
  din = 1;
  clk = 1;
        _nop_();
        stb = 0;
        sendDataToTM1620(0x02);//显示模式设置,设置为6个GRID,8个SEG
        stb = 1;
        _nop_();
        stb = 0;
        sendDataToTM1620(setAddrMode);//固定地址 44
//  sendDataToTM1620(0x0C);//显示寄存器的c0H单元开始   
        //地址数据清零        
        for(i=0;i<3;i++){//因为控制的是3位数码管,所以这里循环只有3
                stb = 1;
                _nop_();
                stb = 0;         
                _nop_();
                sendDataToTM1620(0xc0+i*2);//选择要写入的地址
                sendDataToTM1620(TempNum[ i]);//写入数值

        }
        //设置亮度和开关
        stb = 1;
        _nop_();
        stb = 0;
        _nop_();
        //0x88是最暗的,8F是最亮的这期间的数可以任意选
       //当时还带着蓝牙模块,大体测了下亮度设为88的情况下电流好像是120ma左右(图片是80的亮度),8F大约是180ma左右。
        sendDataToTM1620(0x88);//显示控制参数,点亮数码屏幕,亮度可以通过改变低三位调节   
        stb = 1;
        _nop_();
}
void OffTM1620()
{//息屏函数
        stb = 1;
        _nop_();
        stb = 0;
        _nop_();
        sendDataToTM1620(0x80);//关闭显示
        stb = 1;
        _nop_();
}
51hei图片_20210608093529.png
51hei图片_20210608093629.png
51hei.png

温度测试2.rar

287.15 KB, 下载次数: 72, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:308903 发表于 2022-12-9 08:43 | 显示全部楼层
还需要原理图啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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