• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: TM1620  软件  

资源简介

原厂C 语言 89s51 TM1620 软件 没有任何更改

资源截图

代码片段和文件信息

 /*
 *版权信息:   深圳天微技术部
 *文件名:     TM1620
 *当前版本:   1.0
 *单片机型号: AT89S52
 *开发环境:   Keil uVision3
 *晶震频率:   12M
 *作者:       李建文
 *完成日期:   2009-05-05
 功能:        驱动共阴LED数码屏做时钟显示,可由按键控制时钟暂停,开始,停止以及显示0-9数字
*/
#include
#include
#define nop _nop_();
#define uchar unsigned char
#define uint  unsigned int
sbit stb =P1^0; //定义片选通讯口
sbit clk =P1^1; //定义时钟通讯口
sbit dio =P1^3; //定义数据输入/输出通讯口
bdata uchar y=0;//定义可以位寻址全局变量y
sbit y7 =y^7;
uchar cir_LED[6]={ 0x400x200x020x040x100x08};//数码屏圆圈做动态显示
uchar show[12] = { 0x000x000x3f0x000x380x000x380x000x7b0x000x76};//初始化显示“HELLO”字符代码
           
uchar show_LED2[14];//显示寄存器数组
uchar TIME_secondsseconds_2sub_1sub_2shi_1shi_2; //时间寄存器依次从秒个位至小时十位
uchar TIME_count; //定时中断控制
uchar key_FLAG1;//按键标志位
uchar key_LED;  //按键单独显示赋值寄存器
uchar count6=0;
uchar show_2=0x01;
/*********************************   
功能: TM1620写数据
**********************************/
void write(uchar wr_data)
{
     uchar i;
 stb =0;    //给有效的片选信号(片选信号是低电平有效)
 nop;
 nop;  
 for(i=0;i<8;i++)//开始传送8位数据,每循环一次传送一位数据
 {
     clk =0;
 nop;
 nop;
     wr_data >>= 1;//移位数据,低位在前!
     nop;
     dio = CY;
     nop;
     nop;
     clk =1;
     nop;
   }
}
    
/*********************************
    TM1620控制指令
功能: 驱动LED屏做相应的显示
**********************************/
void xianshi(uchar show_led[14])
{
  uchar h;
  stb = 1;
  clk = 1;
  dio = 1;
  write(0x02);//显示模式设置,设置为6个GRID,8个SEG
  stb = 1;
  write(0x40);//写数据到显示寄存器,采用地址自动加一
  stb = 1;
  write(0xc0);//显示寄存器的00H单元开始
  for(h=0;h<12;h++)
  {    
   write(show_led[h]);//给显示寄存器送数据,
   }
   stb=1;
   write(0x8b);//显示控制参数,点亮数码屏幕,亮度可以通过改变低三位调节
}
/**********************************
     定时中断函数入口
功能: 每50MS中断一次
**********************************/  

评论

共有 条评论