历史上的今天
今天是:2024年11月08日(星期五)
2019年11月08日 | TM1640与PIC12F629单片机的结合
2019-11-08 来源:51hei
TM1640是驱动数码管的专用集成电路,可以直接驱动16位共阴数码管,手册请下载附件。
/*******************************
*本程序直接驱动16位共阴数码管,各数码管分别驱动0、1、2、……E、F。
*/
#include __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 输出低电平 }
史海拾趣
|
一台三菱帕杰罗车用音响,故障现象为无声,其余功能工作正常,经查为功放集成电路TA8205AH损坏。TA8205AH为东芝公司生产的22W×2双声道音频功率放大集成电路,采用17引脚封装。每一声道由前置放大级和功率放大级组成,功率放 ...… 查看全部问答> |
|
这样一个电路 输入是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 ...… 查看全部问答> |




