找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3868|回復(fù): 2
收起左側(cè)

MSP430將FFFF轉(zhuǎn)換成十進制數(shù)并在LED上顯示

[復(fù)制鏈接]
ID:436127 發(fā)表于 2018-11-30 20:39 | 顯示全部樓層 |閱讀模式
源の代碼:

#include "TM1638.h"
#include "msp430f6638.h"
#include "stdint.h"
#include "math.h"
#include "string.h"
uint8_t num[8];    [ i]//各個數(shù)碼管顯示的值
uint8_t led_flag[8];
const uint8_t tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x00};

void init_port(void)
{
    P3DIR |= BIT5;
    P3DIR |= BIT4 + BIT2;

    P1DIR |= BIT0;    [ i]// ACLK set out to pins
    P1SEL |= BIT0;

}

const uint8_t tab2[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

void TM1638_Write(unsigned char DATA) {    [ i]//寫數(shù)據(jù)函數(shù){
    unsigned char i;
    DIO_OUT;
    for(i=0;i<8;i++) {
        CLK_low;
        if(DATA & 0x01)
            DIO_high;
        else
            DIO_low;
      CLK_high;
      DATA >>= 1;
    }
}

unsigned char TM1638_Read(void) {    [ i]//讀數(shù)據(jù)函數(shù)
    unsigned char i;
    unsigned char temp=0;
    DIO_IN;
    STB_low;
    for(i=0;i<8;i++) {
          temp>>=1;
          CLK_low;
          _delay_us(100);
          if(DIO_READ)
              temp |= 0x80;
          else
              temp &= 0x7f;
          CLK_high;
    }
    return temp;
}

void Write_COM(unsigned char cmd) {    [ i]//發(fā)送命令字
    CLK_high;
    STB_high;
    STB_low;
    TM1638_Write(cmd);
    STB_high;
}



void Write_DATA(unsigned char add,unsigned char DATA) {    [ i]//指定地址寫入數(shù)據(jù)
    Write_COM(0x44);
    STB_low;
    TM1638_Write(0xc0|add);
    TM1638_Write(DATA);
    STB_high;
}

void init_TM1638(void) {
    unsigned char count = 0;
    unsigned char times = 1;
    while(times--) {
         Write_allLED(tab2[count]);
        count++;
        if(count == 16)
            count = 0;
        _delay_ms(100);
    }
    Write_allLED(0xff);
    _delay_ms(100);
    Write_allLED(0);
}

void  Write_allLED(unsigned char DATA) {
    unsigned char i;
    Write_COM(0x8F);[ i]//顯示控制
    Write_COM(0x40); [ i]//數(shù)據(jù)命令
    STB_low;
    TM1638_Write(0xc0);
    for(i=0;i<16;i++)
    TM1638_Write(DATA);
    STB_high;
}


int main(void) {

    WDTCTL = WDTPW + WDTHOLD;
    init_port();
    init_TM1638();

    char s[10] = {'F', 'F', 'F', 'F'};
    int t = strlen(s);
    long sum = 0;
    for(int i = 0; i < t; i++) {
        if(s >= 'A' && s <= 'Z')
[ i]
            s = (s - 'A') + 10 + '0';
        sum += ((s-'0')*(pow(16,t-1-i)));
    }
    char b[10];
    int index = 0;
    while(sum/10>1){
        b[index] = sum%10;
        index ++;
        sum = sum/10;
    }
    b[index] = sum%10;
    index ++;
    sum = sum/10;
    while(index<10){
        b[index] = 15;
        index++;
    }

    while(1) {
        Write_DATA(4*2,tab[b[7]]);
        Write_DATA(5*2,tab[b[6]]);
        Write_DATA(6*2,tab[b[5]]);
        Write_DATA(7*2,tab[b[4]]);
        Write_DATA(0*2,tab[b[3]]);
        Write_DATA(1*2,tab[b[2]]);
        Write_DATA(2*2,tab[b[1]]);
        Write_DATA(3*2,tab[b[0]]);
    }

}

結(jié)果顯示為:00065535


sy2-2.zip

1.98 KB, 下載次數(shù): 7, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:436127 發(fā)表于 2018-11-30 20:44 | 顯示全部樓層
不知道什么原因后面變成斜體了,大家見諒哈!
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2018-11-30 22:47 | 顯示全部樓層
[i]替換成[ i]即可解決變斜體問題
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表