历史上的今天
返回首页

历史上的今天

今天是:2025年01月10日(星期五)

正在发生

2018年01月10日 | TLC1549数码管显示程序

2018-01-10 来源:eefocus

TLC1549数码管显示程序

#include"reg52.h" 
#include "intrins.h" 

sbit AD_CS = P3^7; 
sbit AD_DAT = P3^5; 
sbit AD_CLK = P3^4; 
unsigned char i,j,q,p,k;     //

unsigned int AD_Temp,Temp,TempA; 

/**********4个7段数码管锁存器地址************/ 
#define LED1ADDR 0x80 
#define LED2ADDR 0x81 
#define LED3ADDR 0x82 
#define LED4ADDR 0x83 


/******0-9 a-f 的7段数码管显示编码**********/ 

unsigned char ledcode[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00}; 
                           // 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 
/***************存放要显示的数字值********/ 

unsigned char val[4];// 

/***************延时的子程序***************/ 

void delay(unsigned int t) 

unsigned int ii; 
for(i=0;ii//for(j=0;j<10;j++) 



void DelayMS(unsigned int T) 

 for(;T>0;T--); 

/**********4个7段数码管锁存器地址************/ 

TLC1549()     //111111 
  { 
  TempA=0; 
  Temp=0; 
 AD_CS  = 1; 
 AD_CLK = 1; 
 AD_DAT = 1; 
 AD_CS  = 0;   
// DelayMS(10); 
   _nop_(); 
 for(i=0;i<2;i++) 
 { 
  AD_CLK =0; 
  _nop_(); 
  if(AD_DAT) 
   { Temp+=0x01;} 
  Temp  =Temp<<1; 
  AD_CLK=1; 
  _nop_(); 
 } 
 for(i=0;i<8;i++) 
 { 
  AD_CLK =0; 
  _nop_(); 
  if(AD_DAT) 
   {  TempA+=0x01; } 
  TempA =TempA<<1; 
  AD_CLK =1; 
  _nop_(); 
 } 
 AD_CLK =0; 
 AD_CS  =0; 
 AD_Temp= Temp*256+TempA; 
 P0=AD_Temp; 

   j=AD_Temp/1000; 
   q=(AD_Temp%1000)/100; 
   p=AD_Temp%1000%100/10; 
   k=AD_Temp%1000%100%10; 

  
 } 

/*  写锁存器的子程序  */ 
void wraddr(unsigned int addr1,unsigned char d) 
{     

    P2=addr1; 
    P0=d; 

/*  显示子程序  */ 
void display(void) 
{    unsigned int addr[4]={LED1ADDR,LED2ADDR,LED3ADDR,LED4ADDR}; 


     
            delay(50); 
            wraddr(addr[0],ledcode[val[j]]); 
            delay(50); 
            wraddr(addr[1],ledcode[val[q]]); 
            delay(50); 
            wraddr(addr[2],ledcode[val[p]]); 
            delay(50); 
            wraddr(addr[3],ledcode[val[k]]); 
         


/*  初始化子程序  */ 
void init(void) 
{    wraddr(LED1ADDR,0XFF); 
    wraddr(LED2ADDR,0XFF); 
    wraddr(LED3ADDR,0XFF); 
    wraddr(LED4ADDR,0XFF); 
//输入要显示的数值 
    val[0]=1; 
    val[1]=2; 
    val[2]=3; 
    val[3]=4; 

/* 主程序入口  */ 
int main(void) 
{    init(); 

    while(1) 
    {     
    TLC1549(); 
    display(); 


    } 


推荐阅读

史海拾趣

粤翔(FlyWin)公司的发展小趣事
明确需要保护的设备和数据的重要性,以及系统对掉电保护的具体要求。
浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子注重企业文化的建设,致力于为员工提供一个良好的工作环境和发展平台。公司关注员工的学习和成长,为员工提供持续长效的发展机会和有竞争力的薪酬。同时,公司还积极开展各类文化活动和社会公益活动,增强员工的归属感和凝聚力。

这些故事框架展示了浙江东亚电子在电子行业中发展起来的几个重要方面。通过技术创新、产业布局拓展、国际市场开拓、品质管理提升和企业文化建设等方面的努力,公司不断壮大自身实力,成为行业内的佼佼者。

GAPTEC Electronic GmbH & Co. KG公司的发展小趣事

背景:随着全球对环保和可持续发展的重视,Galaxy Microelectronics也开始关注其生产过程中的环保问题。

发展:公司投入巨资建设绿色工厂,采用先进的环保技术和设备,减少生产过程中的能源消耗和废弃物排放。同时,Galaxy Microelectronics还积极推广环保理念,与供应商和客户共同构建绿色供应链。这些举措不仅提升了公司的社会形象,还为其在竞争激烈的市场中赢得了更多客户的青睐。

DART(英国达特)公司的发展小趣事

在快速发展的过程中,DART公司也遇到了不少挑战和危机。例如,某个时期全球电子元器件供应紧张,导致公司面临严重的原材料短缺问题。面对这一挑战,DART公司迅速调整采购策略,积极寻找新的供应商和替代品,并加强与现有供应商的合作和沟通。通过这些措施,公司成功度过了危机,并保持了业务的稳定增长。

Dalian Dlicap Corporation公司的发展小趣事

大连达利凯普科技股份公司自成立以来,始终坚持自主创新和技术研发。公司拥有一支专业的研发团队,致力于射频微波磁介电容器(射频微波MLCC)的研发和生产。通过不懈努力,公司成功掌握了射频微波MLCC的关键核心技术,并获得了全部自主知识产权。这一技术突破不仅使达利凯普在行业内树立了技术领先地位,也为公司赢得了广泛的市场认可。

Galil Motion Control Inc公司的发展小趣事

面对激烈的市场竞争和行业变革,达利凯普积极推进数字化转型和产业升级。公司引入了先进的生产设备和管理系统,实现了生产过程的自动化和智能化。同时,公司还加大了对新材料、新工艺的研发力度,不断提升产品的性能和品质。这些举措使达利凯普在激烈的市场竞争中保持了领先地位,也为公司的持续发展奠定了坚实基础。

问答坊 | AI 解惑

利用运算放大器实现的混频器

混频器常常用一个二极管桥式电路(diodebridge)或一个Gilbert单元(Gilbertcell)来实现。这两类混频器都使用了一个本地振荡器(LO)来跳转射频输入的极性。   当LO为正时,RF输入被混频转换为中频(IF)输出时极性不改变。当LO为负时,RF输入转换为IF时极 ...…

查看全部问答>

关于TAPI的lineInitializeEx的困惑

Windows Embedded CE 6.0帮助文档中介绍,Establishing a Modem Connection的流程如下: lineInitializeEx      ↓ lineOpen      ↓ lineMakeCall      ↓ lineGetMessage & ...…

查看全部问答>

subproject的问题

用windows ce 的template建了个pda的os project 想在这个project下面加一个 subproject 来播放一个 test16bit.wav的文件 这个文件 我是从project property的custom build actions里面加入目录relase的 这个subproject我是这么写的 #include # ...…

查看全部问答>

虚拟网卡动态修改mac

    本人目前维护一个虚拟网卡的微端口驱动程序,代码已经由别人完成,且已经商品化,公司要求我增加一项功能,功能是驱动能够动态的修改虚拟网卡的mac地址。      虚拟网卡mac地址的初始化是通过读一个TXT文件,然 ...…

查看全部问答>

串口输出 程序调试

#include #include void main() { int i=7,j=2; float f=(float)i/j; SCON = 0x50; TMOD |= 0x20; TH1 = 0xf3; TR1 = 1; TI = 1; printf(\"%f\",f); while(1) {} } 这个程序为什么在运行的时候 在串口输入串口 没看到东西啊 ...…

查看全部问答>

一个让人纠结的结果

最近玩单片机的时候谢了一个小代码,但是实在不知道出错在哪里。代码如下         ORG 0000H         ;程序从000H地址开始运行         LJMP        ...…

查看全部问答>

求教!新手求指点

若我有一台17KW  600V的无刷电机,控制器的驱动部分因该选用哪种IGBT和驱动芯片呀,求个型号以供参考,谢谢了…

查看全部问答>

LPCXpresso-CN在IAR下怎么开发,选什么仿真器啊

驱动应该装好了,用lpcxpresso IDE开发无能 板子后面写了IAR,应该可以用IAR来开发 导入了一个IAR里自带的LPC1114的例程 编绎有一警告,无错误 仿真器选择那个呢,我一个个试好像都不行啊, 是不是有其他的选项要设置…

查看全部问答>

Z-Stack中SimpleApp开关结点加入网络流程

(1)开关结点初始化    这时选择的节点类型是终端节点,所以使用f8wEndev.cfg文件,所以在Zglobals.h文件中,我们可以得到下面的定义#define ZG_DEVICETYPE_ENDDEVICE        0x02#define DEVICE_LO ...…

查看全部问答>