资源简介
数码管驱动芯片TM1639驱动8个共阴数码管显示按键数值,采用地址自动增加模式显示数据
代码片段和文件信息
/*****************************************************************************
*版权信息:深圳天微电子有限公司
*文 件 名:TM1639-V1.0
*当前版本:V1.0
*MCU 型号:STC12C5608AD
*开发环境:Keil uVision4
*晶震频率:11.0592MHZ
*完成日期:2013-07-30
*程序功能:1.数码管驱动:驱动8段8位LED共阴数码管显示0~7
2.按键功能 : 包含按键读程序驱动函数,按键后数码管第一位分别显示1、2、3、4
*免责声明:1.此程序为TM1639驱动LED数码管演示程序,仅作参考之用。
2.如有直接使用本例程程序造成经济损失的,本公司不承担任何责任
********************************************************************************/
#include //MCU头文件
#include “intrins.h“ //包含nop指令头文件
#define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //宏定义
/********************定义控制端口**********************/
sbit DIO=P3^2; //定义DIO
sbit CLK=P3^3; //定义CLK
sbit STB=P3^4; //定义STB
/********************定义数据*************************/
unsigned char Key[4]={0}; //为存储按键值定义的数组
unsigned char code CODE[16]={0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F0x770x7C0x390x5E0x790x71}; //共阴数码管0~F字型码,以实际电路接法为准
/***************延时函数**************/
void delay_nms(unsigned int n)
{
unsigned int i;
while(n--)
for(i=0;i<550;i++);
}
/***************发送8bit数据,从低位开始**************/
void send_8bit(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
{
CLK=0;
if(dat&0x01)
DIO=1;
else
DIO=0;
_nop_();
_nop_();
_nop_();
CLK=1;
dat>>=1;
}
CLK=0;
DIO=0;
}
/******************发送控制命令***********************/
void send_command(unsigned char word)
{
STB=1;
nop;
STB=0;
send_8bit(word);
}
/****************读取按键值并存储*****
评论
共有 条评论