作者共发了10篇帖子。 内容转换:不转换▼
 
点击 回复
368 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)
 

本帖信息

点击数:368 回复数:9
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2015-7-18 21:29
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。