访问电脑版页面

导航:老古开发网手机版AVR单片机ATMega8系列单片机

ATmega8驱动74HC595程序

导读:方式一://PC0接数据口SI 74HC595 第14脚 //PC1接SCK 74HC595第11脚 //PC2接RCK 74HC595第12脚 //74HC595 第13脚(/G)使能 接低电平 //74HC595 第10脚(/SCLR)清零 接高电平#include #include #define ucha
关键字:
atmega8,驱动74hc595,

方式一:

//PC0接数据口SI 74HC595 第14脚
//PC1接SCK 74HC595第11脚
//PC2接RCK 74HC595第12脚
//74HC595 第13脚(/G)使能 接低电平
//74HC595 第10脚(/SCLR)清零 接高电平

#include
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; //七段数码管(共阳)

void delay_nms(unsigned int time) //毫秒级延时
{ unsigned char i;
for(;time;time--)
for(i=1;i<570;i++);
}

void led_on() //点亮LED
{ unsigned char i,k,led;
for(k=0;k<10;k++) //循环显示10个数字
{led=table[k]; //更新要显示的数字
PORTC&=~(1<for(i=0;i<8;i++) //送出8位数据
{PORTC&=~(1<if((led&0x80)!=0)PORTC|=(1<else PORTC&=~(1<led=led<<1; //字符向左移一位
PORTC|=(1<}
PORTC|=(1<delay_nms(10000); //为了看清楚数字,每显示一个数字延时10S
}
}

void main()
{ PORTB=0XFF;
DDRB=0XFF;
PORTC=0XFF;
DDRC=0XFF;
PORTD=0XFF;
DDRD=0XFF;
MCUCR=0X80;
while(1)
{led_on();}
}

方式二:

用AVR的SPI串行发送

/*ATmega8的PB5是SPI时钟输出,

接74HC595/74HC165的移位时钟输入端,

PB3是SPI的MOSI数据输出,接74HC595的串行数据输入端SER;

PB0接74HC595/74HC165的锁存时钟输入端。

*/

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

unsigned char table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; //0~9 十六进制显示字符

void delay_nms(unsigned int time) //微秒级延时

{ unsigned char i;

for(;time;time--)

for(i=1;i<570;i++);

}

void write595() //写595及更新LED显示

{ unsigned char i;

for(i=0;i<10;i++)

{PORTB&=~(1<

SPDR=table[i]; //SPI串行数据发送

while(!(SPSR&(1<

PORTB|=(1<

delay_nms(5000);} //为了看清数字的变化 延时5S

}

void main()

{

PORTB=0X01;

DDRB=0XFF;

PORTC=0XFF;

DDRC=0XFF;

PORTD=0XFF;

DDRD=0XFF;

SPCR=0X52;

while(1)

{write595();}

}

来源:互联网   作者:karen  2018/9/25 16:00:01
栏目: [ ATMega8系列单片机]

相关阅读

atmega8 例程:USART串口通信

ATmega8多数的I/O口外部中断问题

atmega8 例程:系统库函数的延迟

atmega8 例程:PWM

atmega8 例程:AD中断方式采集

ATmega8控制STA013和MMD/SD卡的电路图

atmega8 默认内部RC振荡 + 解锁

用 Atmega8 实现D触发锁存器的功能

ATmega8驱动74HC595程序

基于ATmega8的电动车蓄电池智能管理系统设计

让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义

基于ATmega8的超声波倒车雷达实现方案

ATMega8 查询方式 A/D转换测试程序

8 位AVR® 微处理器 ATmega8515 ATmega8515L

基于Stm32F101和Atmega8的投影机升降控制设计

ATmega8单片机与时钟器件DS3231的接口设计

[转载]基于Atmega8及MSM7512的嵌入式Modem设计

ADF7020+ATMEGA88原理应用

基于ATmega8的新型电动自行车调速控制系统设计

基于ATmega8的电动车蓄电池智能管理系统设计