历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2021年01月14日 | MSP430F249SPI+TLC549

2021-01-14 来源:eefocus

/******************************************************************
**                                                       
**  File  : SPI.c     | TLC549 |                                    
**  Version  : 1.0     
**  Description  : SPI interface TLC549                                                                       
**  Author  : LightWu                              
**  Date  : 2013-4-15                                                       
**                                                   
*******************************************************************/


#include "MSP430x24x.h"


#define uint unsigned int
#define uchar unsigned char


/***设置数码管显示****/


#define L1_OFF   P4OUT|=BIT0 //关L1
#define L1_NO    P4OUT&=~BIT0 //点亮L1
#define L2_OFF   P4OUT|=BIT1 //关L2
#define L2_NO    P4OUT&=~BIT1 //点亮L2
#define L3_OFF   P4OUT|=BIT2 //关L3
#define L3_NO    P4OUT&=~BIT2 //点亮L3




uchar const Segment1[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //不带小数点编码
uchar const Segment2[]={0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; //带小数点编码


uchar AdcFlag = 0;


uchar TempNum1;
uchar TempNum2;
uchar TempNum3;




void Display( uchar num1, uchar num2, uchar num3 );


void Delay(void)
{
  uint m;
  for(m=1000;m>0;m--);
}


void SpiInit(void)
{
    P3SEL |= 0x0C;                            // P3.3,2 USCI_B0 option select
    P3DIR |= 0x01;                            // P3.0 output direction
    UCB0CTL0 |= UCMSB + UCMST + UCSYNC;       // 3-pin, 8-bit SPI mstr, MSB 1st
    UCB0CTL1 |= UCSSEL_2;                     // SMCLK
    UCB0BR0 = 0x02;
    UCB0BR1 = 0;
    UCB0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**


}


unsigned char TLC549Read(void)
{
    unsigned char Data;
    
    P3OUT &= ~0x01;                         // Enable TLC549, /CS reset
    UCB0TXBUF = 0x00;                       // Dummy write to start SPI
    
    while (!(IFG2 & UCB0RXIFG));            // USCI_B0 RX buffer ready?


    Data = UCB0RXBUF;                       // data = 00|DATA


    P3OUT |= 0x01;                          // Disable TLC549, /CS set


    return(Data);
}






void main(void)
{
    unsigned char Data1;
        // Stop watchdog timer to prevent time out reset
        WDTCTL = WDTPW + WDTHOLD;       //关狗
  
        P4DIR = 0XFF;         //P4设置为输出,位码控制
        P4SEL = 0;
        
        P5DIR = 0XFF;         //P5设置为输出,断码控制
        P5SEL = 0;
        
        P4OUT = 0XFF;         //关闭数码管,共阳极数码管
        
        SpiInit();
        
     
        while(1)
        {
                Data1 = TLC549Read();
            
                TempNum1 = Data1/100;        //百位
                TempNum2 = Data1/10%10;      //十位
                TempNum3 = Data1%10;         //个位
               
                Display(TempNum1,TempNum2,TempNum3);    //显示转换值

        }
        
}


void Display( uchar num1, uchar num2, uchar num3 )
{
    P5OUT = Segment1[ num1 ];//
    L1_NO;
    Delay();
    L1_OFF;
    
    P5OUT = Segment1[ num2 ];//
    L2_NO;
    Delay();
    L2_OFF;
    
    P5OUT = Segment1[ num3 ];//
    L3_NO;
    Delay();
    L3_OFF;
}

推荐阅读

史海拾趣

台湾固锝(GD)公司的发展小趣事
如使用散热器、风扇等散热设备来降低放大器的温度。
ALLIED [Allied Electronics]公司的发展小趣事
通过合理设计电路布局和元件选择来减少功耗和热量产生。
Cotco公司的发展小趣事

面对电子行业日新月异的变化和不断涌现的新挑战,Cotco公司始终保持敏锐的市场触觉和应变能力。公司及时调整战略方向,加大在新兴领域如物联网、智能家居等的投入和研发力度。同时,Cotco也积极拓展国际市场,与全球多个国家和地区的合作伙伴建立合作关系,推动产品的全球化销售和服务。展望未来,Cotco将继续秉承创新、质量和服务的理念,致力于成为全球电子行业的佼佼者。

捷嘉电子(Chequers Electronic)公司的发展小趣事

随着市场需求的不断变化,捷嘉电子意识到只有不断创新才能保持竞争力。于是,公司投入大量资源进行技术研发,特别是在智能控制器PCBA制造及智能产品研发方面取得了显著成果。其中,公司研发的一款新型智能家居控制器,以其卓越的稳定性和易用性受到了市场的热烈欢迎。这款产品的成功,不仅提升了捷嘉电子的品牌知名度,也为其后续发展奠定了坚实的基础。

CNC Tech公司的发展小趣事

为了进一步扩大市场份额和影响力,CNC Tech公司积极实施全球化战略。公司通过参加国际展会、设立海外分支机构等方式,加强与全球客户的交流与合作。同时,CNC Tech还积极引进国际先进的技术和管理经验,不断提升自身的竞争力。在全球化战略的推动下,CNC Tech的产品和服务逐渐打入国际市场,赢得了全球客户的认可和信赖。

APTA Group Inc公司的发展小趣事

除了在经济领域的成功,APTA Group Inc还注重履行社会责任。公司积极参与环保事业,推动绿色生产,减少对环境的影响。同时,APTA还关注社会公益事业,通过捐款捐物等方式回馈社会。这些举措不仅提升了公司的社会形象,也赢得了公众的认可和尊重。


请注意,上述故事是基于假设构建的,并非APTA Group Inc的实际经历。如果您需要更具体的信息,建议直接访问该公司的官方网站或查阅相关新闻报道,以获取更准确的发展故事。

问答坊 | AI 解惑

如下代码为什么不能实现动态扫描

#include #include unsigned char LED_CODE[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f}; void delay(void) { int k;   for(k=0;k…

查看全部问答>

求助:WINCE系统运行后,如何保存个人修改的设置?

WINCE系统起来之后,修改一些配置,比如换个桌面背景,调整背光时间等,掉电之后重新启动又回到没有修改的状态。 如何实现掉电之后能够保存好修改的设置,在上电启动后这些设置还存在??? 希望各位大侠们能够赐教!!!…

查看全部问答>

单片机音乐播放中歌曲的代码

单片机音乐播放中歌曲的代码怎样弄出来的? 我看了网上的一些教程。。一个个的算很麻烦。。而且我对音乐不熟悉。 这样效率很低。。有没有一些快点的方法? 先在这里谢了~…

查看全部问答>

新手请问如何显示对话框

我建了一个win32 application的工程,然后加了一个对话框资源,在对话框上又加了一个按钮,然后编译和模拟,发现对话框没有在屏幕上显示出来,请问怎样才能把对话框显示出来呢? …

查看全部问答>

我在wince中用

我在wince中用SendMessage(m_hCtlHtml, DTM_NAVIGATE, \"file://\\\\files\\\\a.htm\")方法显示了一个网页,但是其中的链接都不能点击,这是为什么?求大家帮帮我!谢谢~…

查看全部问答>

扩展串口芯片16550中断问题

请教各位:     我的串口芯片16550用了外部中断EINT3     在注册表中:我需要加     \"SysIntr\"=dword:3      串口4的中断为EINT3     \"MeMBase\"=dword:0x20000000  &nbs ...…

查看全部问答>

来长沙参加飞思卡尔智能车竞赛第四天。。。。

补上的,因为刚把相关的视频,相片都拷过来,而且整理了大半天,呵呵~ 希望大家谅解~ 我们是属于华南赛区的,7月23号决赛,也就是我来长沙的第四天~ 决赛是按进入决赛的队伍在预赛时的成绩排名,倒序跑的。 首先进行的是电磁组的,接着是 ...…

查看全部问答>

如何消除用三角波调制正弦波后产生的方波的过冲

本人做三角波调制正弦波时候,产生的调制信号的方波在上升沿和下降沿都有过冲现象,如何消除?…

查看全部问答>

DIY一个遥控电源插座

最近想DIY一个遥控电源插座,希望大家给个建议:收集了一些资料,但感觉不太满意,如下:PH303A×2红外脉冲发射电路如下图所示,调节RP1,使其振荡频率为12kHz.红外遥控接收电路:…

查看全部问答>