历史上的今天
返回首页

历史上的今天

今天是:2024年10月24日(星期四)

正在发生

2019年10月24日 | PIC单片机驱动TM1616源程序

2019-10-24 来源:51hei

/*本程序适用于没有SIP功能的单片机添加SIP发送功能*/

#include

__CONFIG(0x1832);        

//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 #define clk P10                                        //定义时钟管脚

#define clk RC3         //定义时钟管脚

#define dio RC5        //定义数据管脚

#define stb RC2        //定义片选管脚

//#define nop _nop_();

#define uchar unsigned char

#define uint  unsigned int

const char TABLE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

                    0x77,0x7c,0x39,0x5e,0x79,0x71,0xE0,0x5C,0x3E,0x78,

                    0x37, 0x76, 0x38, 0x01, 0x41, 0x49,0x00};


unsigned char store_bank[4];  //建立数据列队3

//初始化函数体

void init()

   {

     ADCON1=0X07;

     TRISA=0X30;

     TRISB=0X03;

     TRISC=0X10;

     TRISD=0X00;

     PORTD=0XFF;

//    SSPSTAT=0X80;

//    SSPCON=0X31;

     INTCON=0X00;

     PIR1=0X00;

     stb=0;

   }

//---------------------TM1616发送1字节数据子程序------------------------------------------

void tm1616write(uchar wr_date)

{

        uchar i;

        stb =0; //片选管脚

        NOP();

        NOP();

        for(i=0;i<8;i++)//循环运行8次

        {

                clk=0;  //时钟管脚

                NOP();

                NOP();

                if(wr_date&0x01!=0)//查看数据的最小位是否为0

                {

                        dio=1; //数据管脚

                }

                else

                {

                        dio=0;//数据管脚

                }

                NOP();

                NOP();

                clk=1;  //时钟管脚

                NOP();

                wr_date=wr_date>>1;//数据左移1位

        }        

}

//-------------------------TM1616采用固定地址显示数据子程序---------------------------------

void tm1616show(uchar data1,uchar data2,uchar data3,uchar data4)

{       uchar j;

        stb = 1;  //片选管脚

        clk = 1;  //时钟管脚

        dio = 1;  //数据管脚

        tm1616write(0x00); //显示模式设置,设置为4个GRID,7个SEG

        stb=1;      //片选管脚       //显示模式设置完毕,STB置1

        tm1616write(0x44); //数据命令设置,设置普通模式、固定地址、写数据到显示寄存器

        stb=1;   // 片选管脚//数据命令设置完毕,STB置1

                tm1616write(0xC0); //设置显示地址1

                tm1616write(data1);//传输显示数据1

                stb=1;     //片选管脚        //显示数据1发送完毕STB置1

                tm1616write(0xC2);//设置显示地址1

                tm1616write(data2);//传输显示数据1

                stb=1;     //片选管脚        //显示数据1发送完毕STB置1

                tm1616write(0xC4); //设置显示地址1

                tm1616write(data3);//传输显示数据1

                stb=1;     //片选管脚        //显示数据1发送完毕STB置1

                tm1616write(0xC6); //设置显示地址2

                tm1616write(data4);//传输显示数据1

                stb=1;      //片选管脚       //显示数据1发送完毕STB置1

        tm1616write(0x8F);         //控制命令设置,设置显示开、显示最亮

        stb=1;              //片选管脚      //显示数据发送完毕STB置1

}

//T毫秒延时程序'''''''''''''''''''''''''''''''''''''''''''

void  DELAY(unsigned int t )              //延时程序

    {unsigned int y;

     while(t)

     { 

     for(y=98;y--;);     //延时

     t--;

    }}

//运算------------------------------------

void count(uint y)

  {uchar ca;

   ca=y/0x64/0xa;    //求千位数/100=10数据/10等于一个千位数字 余数扔掉

   store_bank[3]=TABLE[ca];

   ca=(y/0x64)%0xa;    //千位数/100留下百位以下数据

   store_bank[2]=TABLE[ca];

   ca=(y%0x64)/0xa;     //求显示的个位

   store_bank[1]=TABLE[ca];

   ca=(y%0x64)%0xa;     //求显示的个位

   store_bank[0]=TABLE[ca];

  }           

//TM1616主函数体---------------------------------------------

void main(void)

{ uint k;

   init();

        while(1)

        { for(k=0;k<9999;k++)

              {count(k);

                tm1616show(store_bank[3],store_bank[2],store_bank[1],store_bank[0]);  //带数据 

                 DELAY(50);

              }   


推荐阅读

史海拾趣

德力西(DELIXI)公司的发展小趣事

进入90年代,德力西进入快速发展阶段。1992年,公司引进外资,成立了“中外合资温州德力西电器有限公司”。随后,通过兼并联合和行业整合,德力西不断扩大生产规模和市场影响力。1994年,经有关部门批准,组建了浙江德力西集团公司,成为浙江省首个省级股份合作制电器企业集团。

意瑞(COSEMITECH)公司的发展小趣事

随着业务的不断发展和市场的不断扩大,意瑞半导体也积极寻求外部投资和战略合作。公司先后获得了得彼投资、架桥投资、深创投等机构超2亿元的股权投资,为公司的持续发展提供了有力的资金保障。此外,意瑞半导体还积极参与各种行业活动和展览,与业界同仁进行深入交流和合作,共同推动半导体行业的发展。

以上五个故事素材可以根据需要进一步扩展和细化,以形成完整的、具有吸引力的电子行业意瑞半导体公司的发展故事。

Electrolube公司的发展小趣事

在电子行业的激烈竞争中,Electrolube公司始终坚持以客户需求为导向,不断创新和拓展产品线。除了UVCL涂层外,公司还推出了一系列树脂、涂料和热管理解决方案的产品组合,为EV电池提供全面保护。

这些产品不仅具有优异的性能表现,而且能够满足不同客户的需求。例如,某些产品具有优异的耐高温性能,适用于高温环境下的电子设备;而另一些产品则具有出色的耐化学腐蚀性能,能够在恶劣的工作环境中保持稳定的性能。

Electrolube公司通过不断的技术创新和产品优化,成功拓展了市场份额,并在电子行业中树立了良好的品牌形象。同时,公司还积极与各大汽车制造商合作,共同推动电动汽车产业的发展。

BLACK&DECKER公司的发展小趣事

BLACK&DECKER一直致力于产品革新和专利申请。1914年,公司为世界第一台配有枪式手柄、扳机开关和通用马达的便携式手电钻申请了专利。这一发明极大地提高了工作效率,并在市场上取得了巨大的成功。此后,BLACK&DECKER不断推出创新产品,如1946年发明的世界上第一台专为家用消费者设计的便携式电钻,以及后续的电动篱笆剪、全绝缘电钻等一系列重要发明。

Eska公司的发展小趣事

Eska公司成立于荷兰北部,自创立之初就专注于造纸业务。公司引进了先进的造纸技术和设备,建立了两座灰板纸厂,配备了3台技术领先的纸板机和2台造纸机。凭借高效的生产能力和优质的产品质量,Eska迅速在造纸行业中崭露头角。Eska的灰板纸以“Eska(青蛙)”品牌销售,因其优良且稳定的质量而享誉全球。

Floeth Electronic Ltd公司的发展小趣事

为了满足全球客户的需求,Eska公司实施了市场拓展和国际化战略。公司在欧洲各大主要城市及美国设立了服务中心,以便为当地客户提供快速可靠的服务。此外,Eska还利用先进的分切设备,为当地客户集中快速地提供载切大小格式灰板的服务。同时,Eska的产品也通过全球代理商、经销商及存货商网络,覆盖到更广泛的市场。

问答坊 | AI 解惑

EVC读取串口的简单问题

本人现在有一个“英创EM9260”套件,想在上面做一个简单的串口程序,实现给一个电度表发送字符串并接收其返回的字符串,然后通过一个lcd屏幕显示返回的字符串。我把套件提供的一个串口通信的示例程序做了简单的修改,但是只能实现发送数据,回收的 ...…

查看全部问答>

求助:TI OMAP3530的问题请教下

有没有使用过OMAP3530的兄弟,有个问题请教下:   在CCS下写的基于DSP/BIOS的程序,能不能访问McBSP? OMAP的技术支持说,OMAP3530是ARM做主控,DSP做运算,只有ARM能控制外设。 但是我在网上查的一些资料,却有人说可以直接访问寄存器 ...…

查看全部问答>

如何获取鼠标点击后的坐标? 位置

如何获取鼠标点击后的坐标?   位置…

查看全部问答>

四口网卡驱动问题

像Intel四口网卡是怎么实现驱动加载之后,用ifconfig命令就可以看到这四个网口的信息(分别为eth0,eth1,eth2,eth3),这个信息的注册是在网卡驱动中完成的还是在driver/net/core/dev.c中完成的?我在网卡驱动代码中根本就没有看到针对四个网口进行处 ...…

查看全部问答>

UL 8750 用於燈具產品的發光二極體光源 安全通則

這是用於燈具產品內的發光二極體光源的評估指南的第一版,適用於發光二極體作為光源的元件,例如發光二極體模組,發光二極體陣列、電源與控制電路。也涵蓋了由最終產品製造商製作的發光二極體光源,它可以是產品的一部分或 ...…

查看全部问答>

LM3S8962自带工程boot_demo_eth经常出现烧录失败的问题。IAR编译的。大家碰到过吗?

LM3S8962自带工程boot_demo_eth经常出现烧录失败的问题。其它工程很少出现。IAR编译的。大家碰到过吗?     用LM Flash Programmer 下载是成功的,没有任何出错的信息。但是下载完成后,就是没有办法跑起来。 用IAR可以调试,但是调 ...…

查看全部问答>

一个关于CAN 电路接口的问题

我在在板子上看见在CAN接口的高低之间接一个2K的电阻有什么作用啊…

查看全部问答>

Hanker试用周计划提交

Hanker试用周计划提交…

查看全部问答>