历史上的今天
返回首页

历史上的今天

今天是:2024年11月08日(星期五)

正在发生

2019年11月08日 | TM1640与PIC12F629单片机的结合

2019-11-08 来源:51hei

TM1640是驱动数码管的专用集成电路,可以直接驱动16位共阴数码管,手册请下载附件。

/*******************************

*本程序直接驱动16位共阴数码管,各数码管分别驱动0、1、2、……E、F。

*/

#include  //PIC12F629


__CONFIG(0x3F84); 


#define clk GPIO0  //时钟信号

#define dio GPIO1   //数据/地址数据

#define uchar unsigned char

#define uint unsigned int

                                                                                                                                                                 //共阴极数码管

const uchar SEGData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};//1-9-F-不输出

//uchar weidata[4];//位变量

//uchar timecnt,keyzh,dpFlag = 0; //控制第二个数码管的dp的显示

//char time, sec;

void init(void); 

void Delay_us(uint); //nus 延时

void tm1640_start(void);//1640开始

void tm1640_stop(void);  //1640停止

void tm1640_wrbyte(uchar); //写一个字节

void tm1640_display(void); //写显示寄存器 并开显示


///=============================================

void main(void)

{


init(); //初始化


while(1)

{

  tm1640_display(); //写寄存器并开显示

}

}


///=======================================

void Delay_us(uint i) //nus 延时

{

  uchar x;              

for(;i>0;i--)

for(x=0;x<3;x++) asm("NOP");

}

///======================================

void tm1640_start(void) //1640开始

{

  clk=1;

   dio=1;

   Delay_us(2);

  dio = 0;

}


void tm1640_stop(void)  //1640停止

{

clk = 0;

  Delay_us(2);

   dio = 0;

    Delay_us(2);

   clk = 1;

  Delay_us(2);

dio = 1;

}

//=========================

void tm1640_wrbyte(uchar oneByte) //写一个字节

{

  uchar i;

  for(i=0;i<8;i++)

  { 

   clk = 0;

   Delay_us(2);

   if(oneByte&0x01) dio = 1; //低位在前

    else dio = 0;

    Delay_us(3);

    oneByte=oneByte>>1;

    clk=1;

    Delay_us(3);

   }

}

//======================

void tm1640_display(void) //写显示寄存器 并开显示

{

uchar i;

tm1640_start();

  tm1640_wrbyte(0x40);// 40H 地址自动加 1 模式,44H 固定地址模式,本程序采用自加 1 模式

   tm1640_stop();

  tm1640_start();

tm1640_wrbyte(0xc0);//设置首地址

for(i=0;i<16;i++)//地址自加,不必每次都写地址。

  {

   tm1640_wrbyte(SEGData[i]); //送数据

  }

  tm1640_stop();

   tm1640_start();

   tm1640_wrbyte(0x8a);//开显示 ,亮度:14/16

  tm1640_stop();

}

///================================================

void init(void)  //初始化程序

{

OPTION=0x80; //禁止弱上拉

WPU= 0x00; //关闭弱上拉

  INTCON = 0X00; //开总中断和T1中断

   TRISIO=0x08; //IO 口做输出

  //IOCB = 0X00; //电平变化触发中断;全关

    CMCON=0x07; // 设置全部为普通数字IO口 关闭所有比较器

   GPIO=0x08; //端口0 输出低电平

}


推荐阅读

史海拾趣

Deutron Electronics Corp公司的发展小趣事

在技术优势的基础上,Deutron Electronics Corp开始了积极的市场拓展和品牌建设工作。公司参加了多个国际电子展会,展示了其创新产品和技术实力,成功吸引了众多潜在客户的关注。同时,公司还加大了对品牌宣传的投入,通过广告、公关等手段提升了品牌知名度和美誉度。这些努力使得Deutron Electronics Corp的产品逐渐在市场上占据了一席之地。

Aeroflex公司的发展小趣事

随着环保意识的日益提高,Deutron Electronics Corp也积极响应环保号召,致力于实现绿色生产和可持续发展。公司采用环保材料和生产工艺,减少了对环境的污染。同时,公司还加大了对节能减排的投入,提高了资源利用效率。这些努力使得Deutron Electronics Corp在行业内树立了良好的环保形象,也为公司的长期发展奠定了坚实基础。

ENERGIZER公司的发展小趣事

随着环保意识的日益增强,ENERGIZER也积极响应环保号召,致力于研发更环保的电池产品。1988年,公司发明了无汞环保碱性电池,这一创新性的产品不仅性能优良,而且对环境友好,受到了消费者的广泛欢迎。同时,ENERGIZER还积极推广电池回收和再利用的理念,倡导绿色消费,为全球的环保事业做出了积极贡献。

DOMINANT公司的发展小趣事

为了进一步提升市场竞争力,统明亮公司在2016年推出了一款新型直角DomiLED产品。这款LED产品具有高光照强度、低热阻等特点,广泛应用于测光照明领域。新型直角DomiLED的推出,不仅丰富了统明亮的产品线,也进一步巩固了其在LED市场的领先地位。这款产品的成功推出,也充分展示了统明亮公司在LED技术创新方面的实力。

南晶电子(DGNJDZ)公司的发展小趣事

随着市场竞争的加剧,南晶电子意识到技术创新是企业发展的核心动力。公司投入大量研发资金,与多所高校和科研机构建立合作关系,共同研发新型半导体器件。经过不懈努力,南晶电子成功推出了一系列具有自主知识产权的高性能产品,赢得了市场的广泛认可。

Catalyst公司的发展小趣事

为了进一步扩大市场份额,Catalyst公司积极实施国际化战略。公司通过与国外知名企业的合作与交流,引进先进的技术和管理经验,不断提升自身的竞争力。同时,Catalyst还积极参加国际电子展会和论坛,展示公司的最新产品和技术成果,吸引了众多国际客户的关注。通过国际化战略的拓展,Catalyst成功打开了海外市场的大门,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

车用功放IC TA8205AH的应用及代换

一台三菱帕杰罗车用音响,故障现象为无声,其余功能工作正常,经查为功放集成电路TA8205AH损坏。TA8205AH为东芝公司生产的22W×2双声道音频功率放大集成电路,采用17引脚封装。每一声道由前置放大级和功率放大级组成,功率放 ...…

查看全部问答>

TMS320F2812_flash运行时的启动过程

TMS320F2812_flash运行时的启动过程.doc…

查看全部问答>

基于FPGA的RS译码器的设计与实现

基于FPGA的RS译码器的设计与实现论文PDF文档。…

查看全部问答>

ndis上网相对于modem上网有何优势?

从使用角度来看,ndis上网相对于modem上网有何优势? 望高手指教,谢谢!…

查看全部问答>

出售MTK异常重启检测工具

基于ARM体系,能够自动检测并且记录异常发生位置(非打印trace),并能分析出调用函数栈,误差率…

查看全部问答>

再问TCPMP的问题

TCPMP 0.72 EVC4.0 问题:TCPMP对界面的初始化是在哪里?       我希望打开TCPMP的时候直接全屏,并且播放状态。     …

查看全部问答>

大家觉得今年大赛还会有小车类的题目吗?

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 …

查看全部问答>

华为C编程规范和范例

 华为C编程规范和范例…

查看全部问答>

关于pic单片机按键控制时间

这样一个电路 输入是220VAC 输出是220VAC 1.5KW 通过pic单片机控制 两个按键 两个数码管 第一个按键控制一个数码管 显示0-9 第二个控制另一个数码管 显示0-9 比如说 第一个显示8  第二个显示9 实现的是8小时后电路输出9个小时 刚解 ...…

查看全部问答>

LaunchPad 430 G2553 硬件i2c读写EEPROM 24C02的程序

如题,LaunchPad 430 G2553 读写EEPROM 24C02的程序 根据TI官方的SLAA208C的application note修改,理论上支持24c01/02/04/08/16的读写,不过手边只有24C02,所以只在24C02上测试过 硬件:launchpad上的vcc,通过两个5.1k的电阻,将i2c的sda和scl ...…

查看全部问答>