• 大小: 42KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C/C++
  • 标签: OLEDSSD1306  

资源简介

采用atmel168A单片机,采用ssd1306方案,驱动oled的程序,开发环境为AtmelStudio6,语言为C语言。

资源截图

代码片段和文件信息

/*
 * I2C.c
 *
 * Created: 2013-7-24 8:02:13
 *  Author: Administrator
 */ 
/*
 * I2C.c
 *
 * Created: 2013-7-16 9:09:40
 *  Author: Administrator
 */ 
#include 
#include “define.h“

void stay_on(void)
{
DDRB |= (1 << PB0)|(1 << PB1)|(1 << PB2)|(1 << PB6);
PORTB |= (1 << PB6);  //analog on
DDRF |= (1 << PF2);   //stay on
PORTF |= (1 << PF2);
}

void delay_1us(void)
{
asm(“nop“);
}

void delay_Nus(unsigned int a)
{
unsigned int i;
for(i = 0;i < a;i++)
{
delay_1us();
}
}

void delay_1ms(void)
{
unsigned int i;
for(i = 1;i < (unsigned int)(8*143 - 2);i++)
{
;
}
}

void delay_Nms(unsigned int a)
{
unsigned int i;
for(i = 0;i < a;i++)
{
delay_1ms();
}
}

void SCK_H(void){PORTB |= (1 << PB1);}
void SCK_L(void){PORTB &= ~(1 << PB1);}
void SDA_H(void){PORTB |= (1 << PB2);}
void SDA_L(void){PORTB &= ~(1 << PB2);}

void clock(void)
{
delay_Nus(2);
SCK_H();
delay_Nus(2);
SCK_L();
}

void start(void)
{
SDA_H();
SCK_H();
delay_Nus(8);
SDA_L();
delay_Nus(8);
SCK_L();
delay_Nus(8);
}

void stop(void)
{
SDA_L();
SCK_H();
delay_Nus(8);
SDA_H();
delay_Nus(8);
}

unsigned char response(void)
{
unsigned char flag = 0;
DDRB &= ~(1 << PB2);
if(PINB & 0x04)
{
flag = 1;
}
else
{
SCK_H();
delay_Nus(2);
SCK_L();
delay_Nus(2);
}
DDRB |= (1 << PB2);
return flag;
}

void write(unsigned char temp)
{
unsigned char i;
unsigned char dat;
dat = temp;
for(i = 0;i < 8;i++)
{
if(dat & 0x80)
{
SDA_H();
}
else
{
SDA_L();
}
clock();
delay_1us();

dat = dat << 1;
}
SDA_H();

while(response());
}

void write_command(unsigned char temp)
{
start();
write(slave_add);
write(0x00);
write(temp);
stop();
}

void write_gddram(unsigned char dat)
{
start();
write(slave_add);
write(0x40);
write(dat);
stop();
}

void write_command_data(unsigned char commandunsigned char dat)
{
start();
write(slave_add);
write(0x00);
write(command);
write(dat);
stop();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2953  2013-08-14 16:15  oled\oled\Debug\I2C.d

     文件       6916  2013-08-14 16:15  oled\oled\Debug\I2C.o

     文件       3230  2013-08-14 16:15  oled\oled\Debug\main.d

     文件       3008  2013-08-14 16:15  oled\oled\Debug\main.o

     文件        259  2013-08-14 16:10  oled\oled\Debug\makedep.mk

     文件       3419  2013-08-14 16:15  oled\oled\Debug\Makefile

     文件       2992  2013-08-14 16:15  oled\oled\Debug\oled.d

     文件         34  2013-08-14 16:15  oled\oled\Debug\oled.eep

     文件      18318  2013-08-14 16:15  oled\oled\Debug\oled.elf

     文件       7185  2013-08-14 16:15  oled\oled\Debug\oled.hex

     文件      50457  2013-08-14 16:15  oled\oled\Debug\oled.lss

     文件      19205  2013-08-14 16:15  oled\oled\Debug\oled.map

     文件      17020  2013-08-14 16:15  oled\oled\Debug\oled.o

     文件       7034  2013-08-14 16:15  oled\oled\Debug\oled.srec

     文件       1611  2013-08-14 16:15  oled\oled\define.h

     文件       2180  2013-07-26 08:27  oled\oled\font_lib.h

     文件       2113  2013-07-26 10:35  oled\oled\I2C.c

     文件        780  2013-08-14 16:11  oled\oled\main.c

     文件       5933  2013-07-26 14:15  oled\oled\oled.c

     文件       5018  2013-07-26 17:23  oled\oled\oled.cproj

     文件        883  2013-07-24 08:00  oled\oled.atsln

    ..A..H.     16896  2013-08-14 15:27  oled\oled.atsuo

     目录          0  2013-08-14 16:15  oled\oled\Debug

     目录          0  2013-07-26 16:24  oled\oled

     目录          0  2013-07-24 08:00  oled

----------- ---------  ---------- -----  ----

               177444                    25


评论

共有 条评论

相关资源