目前共有10篇帖子。 內容轉換:不轉換▼
 
點擊 回復
349 9
[案例]ATtiny13驅動74HC595
一派護法 十九級
1樓 發表于:2015-7-18 21:11
一派護法 十九級
2樓 發表于:2015-7-18 21:11
「main.c」
#include <avr/io.h>
#define F_CPU 1200000U
#include <util/delay.h>
#include "74HC595.h"

unsigned char display = 0x00;

int main(void)
{
    DDRB = PORTB = 0xff;
    while (1)
    {
        HC595_SerIn(~display);
        HC595_ParOut();
        if (display % 2 == 0)
            PORTB |= _BV(4);
        else
            PORTB &= ~_BV(4);
        _delay_ms(500);
        display++;
    }
    return 0;
}
一派護法 十九級
3樓 發表于:2015-7-18 21:12
「74HC595.c」
#include <avr/io.h>
#include "74HC595.h"

void HC595_ParOut(void)
{
    HC595_STCK0;
    HC595_STCK1;
}

void HC595_SerIn(unsigned char data)
{
    unsigned char i;
    for (i = 0; i < 8; i++)
    {
        HC595_SHCK0; // CLOCK_MAX = 100MHz
        if (data & _BV(7 - i))
            HC595_SD1;
        else
            HC595_SD0;
        HC595_SHCK1;
    }
}
一派護法 十九級
4樓 發表于:2015-7-18 21:12
「74HC595.h」
#define HC595_SHCK1 PORTB|=_BV(2) // PIN11
#define HC595_SHCK0 PORTB&=~_BV(2)
#define HC595_STCK1 PORTB|=_BV(1) // PIN12
#define HC595_STCK0 PORTB&=~_BV(1)
#define HC595_SD1 PORTB|=_BV(0) // PIN14
#define HC595_SD0 PORTB&=~_BV(0)

void HC595_ParOut(void);
void HC595_SerIn(unsigned char data);
一派護法 十九級
5樓 發表于:2015-7-18 21:12
「Makefile」
# make
main.hex: main.c 74HC595.c
    avr-gcc -mmcu=attiny13 -Wall -Os main.c 74HC595.c -o main.o
    avr-objcopy -j .text -j .data -O ihex main.o main.hex

# make run   
run: main.hex
    sudo avrdude -p t13 -c usbasp -e -U flash:w:main.hex
一派護法 十九級
6樓 發表于:2015-7-18 21:14
執行make run編譯並燒寫程序。
一派護法 十九級
7樓 發表于:2015-7-18 21:16
#define HC595_SHCK1 PORTB|=_BV(2) // PIN11
#define HC595_SHCK0 PORTB&=~_BV(2)
#define HC595_STCK1 PORTB|=_BV(1) // PIN12
#define HC595_STCK0 PORTB&=~_BV(1)
#define HC595_SD1 PORTB|=_BV(0) // PIN14
#define HC595_SD0 PORTB&=~_BV(0)

代碼說明:
74HC595的第11腳連接ATtiny的PB2口
第12腳連接ATtiny的PB1口
第14腳連接ATtiny的PB0口
一派護法 十九級
8樓 發表于:2015-7-18 21:17
右下角黃LED的正極連接到單片機的PB4口上。
一派護法 十九級
9樓 發表于:2015-7-18 21:20
單片機熔絲位的設定:E:FF, H:FF, L:2A
晶振採用默認的內部9.6MHz晶振,開啟8分頻。
一派護法 十九級
10樓 發表于:2015-7-18 21:29

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:349 回複數:9
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2015-7-18 21:29
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。