久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6545|回復: 1
打印 上一主題 下一主題
收起左側

單片機驅動oled的核心代碼

[復制鏈接]
跳轉到指定樓層
樓主

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//
//  UG-2864HSWEG01 (2864-46p) Reference Code
//
//    Dot Matrix: 128*64
//    Driver IC : SSD1306 (Solomon Systech)
//    Interface : 8-bit 68XX/80XX Parallel, 3-/4-wire SPI
//
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
///2012/08/12修改SPI接口22.1184晶體正常,內部和7.3728不能點亮
#include "NEW_8051.H"
#include "zimo.h"
#include "newszimo.h"

/////////////////////////////////
sbit SCLK=P2^0;    //串口時鐘 D0
sbit SDIN=P2^1;    //串口數據 D1
sbit RES=P2^3;    // 復位
sbit CS=P2^2;    // 片選
sbit DC=P3^2;    // 數據/命令
sbit UP=P3^2;
sbit DOWN=P3^3;
//////////////////////////////////
unsigned char code Name[]={43,69,45,69,73,36,73,65,78,58,73,0};
      // kemeidianzi
unsigned char code Tel[]={17,21,25,21,19,24,22,21,18,25,19,0};
      // 15953865293
unsigned char t0=0;t1=0;t2=0;t3=0;
unsigned char temp=0,s=0,min=0,hour=0;
unsigned char state=1;
unsigned int Temperature=0;
/////////////////////////////////
void welcome(void);
void delay(unsigned char i);
unsigned char i;
extern unsigned char code num[10][16];
/***************************************************************************
*                   *
*                   *
*                   Delay Time    延時函數                    *   
*                   *
****************************************************************************/
void uDelay(unsigned char l)
{
while(l--);
}
void Delay(unsigned char n)
{
unsigned char i,j,k;
for(k=0;k<n;k++)
{
  for(i=0;i<131;i++)
  {
   for(j=0;j<15;j++)
   {
    uDelay(203);
   }
  }
}
}

/***************************************************************************
*                   *
*                   *
*                   OLED寫命令函數                       *   
*                   *
****************************************************************************/
void Write_Command(unsigned char Data)
{
unsigned char i;
//  SCLK=1;
CS=0;
DC=0;
SCLK=1;
for (i=0; i<8; i++)
{
  SCLK=0;
  SDIN=(Data&0x80)>>7;
  Data = Data << 1;
  uDelay(5);//內部晶振不能超過100
  SCLK=1;
// uDelay(1);
}
// SCLK=0;
DC=1;
CS=1;
}
/***************************************************************************
*                   *
*                   *
*                   OLED寫數據函數                       *   
*                   *
****************************************************************************/
void Write_Data(unsigned char Data)
{
unsigned char i;
//  SCLK=1;
CS=0;
DC=1;
SCLK=1;
for (i=0; i<8; i++)
{
  SCLK=0;
  SDIN=(Data&0x80)>>7;
  Data = Data << 1;
  uDelay(5);//內部晶振不能超過100
  SCLK=1;
// uDelay(1);
}   
// SCLK=0;
DC=1;
CS=1;
}
/***************************************************************************
*                   *
*                   *
*                   OLED初始化設置函數                     *   
*                   *
****************************************************************************/
void Set_Start_Column(unsigned char d)
{
Write_Command(0x00+d%16);  // Set Lower Column Start Address for Page Addressing Mode
      //   Default => 0x00
Write_Command(0x10+d/16);  // Set Higher Column Start Address for Page Addressing Mode
      //   Default => 0x10
}
void Set_Addressing_Mode(unsigned char d)
{
Write_Command(0x20);   // Set Memory Addressing Mode
Write_Command(d);   //   Default => 0x02
      //     0x00 => Horizontal Addressing Mode
      //     0x01 => Vertical Addressing Mode
      //     0x02 => Page Addressing Mode
}
void Set_Column_Address(unsigned char a, unsigned char b)
{
Write_Command(0x21);   // Set Column Address
Write_Command(a);   //   Default => 0x00 (Column Start Address)
Write_Command(b);   //   Default => 0x7F (Column End Address)
}
void Set_Page_Address(unsigned char a, unsigned char b)
{
Write_Command(0x22);   // Set Page Address
Write_Command(a);   //   Default => 0x00 (Page Start Address)
Write_Command(b);   //   Default => 0x07 (Page End Address)
}
void Set_Start_Line(unsigned char d)
{
Write_Command(0x40|d);   // Set Display Start Line
      //   Default => 0x40 (0x00)
}
void Set_Contrast_Control(unsigned char d)
{
Write_Command(0x81);   // Set Contrast Control
Write_Command(d);   //   Default => 0x7F
}
void Set_Charge_Pump(unsigned char d)
{
Write_Command(0x8D);   // Set Charge Pump
Write_Command(0x10|d);   //   Default => 0x10
      //     0x10 (0x00) => Disable Charge Pump
      //     0x14 (0x04) => Enable Charge Pump
}
void Set_Segment_Remap(unsigned char d)
{
Write_Command(0xA0|d);   // Set Segment Re-Map
      //   Default => 0xA0
      //     0xA0 (0x00) => Column Address 0 Mapped to SEG0
      //     0xA1 (0x01) => Column Address 0 Mapped to SEG127
}
void Set_Entire_Display(unsigned char d)
{
Write_Command(0xA4|d);   // Set Entire Display On / Off
      //   Default => 0xA4
      //     0xA4 (0x00) => Normal Display
      //     0xA5 (0x01) => Entire Display On
}
void Set_Inverse_Display(unsigned char d)
{
Write_Command(0xA6|d);   // Set Inverse Display On/Off
      //   Default => 0xA6
      //     0xA6 (0x00) => Normal Display
      //     0xA7 (0x01) => Inverse Display On
}
void Set_Multiplex_Ratio(unsigned char d)
{
Write_Command(0xA8);   // Set Multiplex Ratio
Write_Command(d);   //   Default => 0x3F (1/64 Duty)
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// 顯示屏開關
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Set_Display_On_Off(unsigned char d)
{
Write_Command(0xAE|d);   // Set Display On/Off
      //   Default => 0xAE
      //     0xAE (0x00) => Display Off
      //     0xAF (0x01) => Display On
}
void Set_Start_Page(unsigned char d)
{
Write_Command(0xB0|d);   // Set Page Start Address for Page Addressing Mode
      //   Default => 0xB0 (0x00)
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// 設置COM輸出掃描方向
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Set_Common_Remap(unsigned char d)
{
Write_Command(0xC0|d);   // Set COM Output Scan Direction
      //   Default => 0xC0
      //     0xC0 (0x00) => Scan from COM0 to 63
      //     0xC8 (0x08) => Scan from COM63 to 0
}
void Set_Display_Offset(unsigned char d)
{
Write_Command(0xD3);   // Set Display Offset
Write_Command(d);   //   Default => 0x00
}
void Set_Display_Clock(unsigned char d)
{
Write_Command(0xD5);   // Set Display Clock Divide Ratio / Oscillator Frequency
Write_Command(d);   //   Default => 0x80
      //     D[3:0] => Display Clock Divider
      //     D[7:4] => Oscillator Frequency
}
void Set_Precharge_Period(unsigned char d)
{
Write_Command(0xD9);   // Set Pre-Charge Period
Write_Command(d);   //   Default => 0x22 (2 Display Clocks [Phase 2] / 2 Display Clocks [Phase 1])
      //     D[3:0] => Phase 1 Period in 1~15 Display Clocks
      //     D[7:4] => Phase 2 Period in 1~15 Display Clocks
}
void Set_Common_Config(unsigned char d)
{
Write_Command(0xDA);   // Set COM Pins Hardware Configuration
Write_Command(0x02|d);   //   Default => 0x12 (0x10)
      //     Alternative COM Pin Configuration
      //     Disable COM Left/Right Re-Map
}
void Set_VCOMH(unsigned char d)
{
Write_Command(0xDB);   // Set VCOMH Deselect Level
Write_Command(d);   //   Default => 0x20 (0.77*VCC)
}
void Set_NOP()
{
Write_Command(0xE3);   // Command for No Operation
}
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Global Variables
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#define XLevelL  0x00
#define XLevelH  0x10
#define XLevel  ((XLevelH&0x0F)*16+XLevelL)
#define Max_Column 128
#define Max_Row  64
#define Brightness 0xff//0xCF
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Patterns
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

unsigned char code king[][128] = {
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0XF0,0X1C,0X04,0X04,0XF8,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,
0X00,0X00,0XFC,0X44,0X44,0X44,0X44,0X00,0X00,0XFC,0X04,0X0C,0X08,0XF0,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X32,0X64,0X04,0XFC,0X04,0XF4,0X0C,0XFC,0X00,
0X00,0XFE,0XFE,0X00,0X20,0XE4,0X00,0X10,0X50,0XD0,0X50,0X10,0XFE,0X12,0X16,0X14,
0X00,0X00,0X12,0X92,0XFE,0X92,0X92,0X40,0X9E,0X92,0X92,0X92,0X92,0X5E,0X00,0X00,
0X00,0XFC,0X04,0X94,0X94,0XB4,0XD6,0XD4,0XB4,0XB4,0X94,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0X0E,0X08,0X08,0X07,0X00,0X00,0X0F,0X08,0X08,0X08,0X08,
0X00,0X00,0X0F,0X08,0X08,0X08,0X08,0X00,0X00,0X0F,0X08,0X08,0X04,0X03,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1C,0X07,0X01,0X11,0X0C,0X03,0X1C,0X19,0X02,
0X10,0X1F,0X0F,0X00,0X00,0X1F,0X0C,0X06,0X08,0X0F,0X08,0X04,0X03,0X0E,0X10,0X1C,
0X00,0X00,0X02,0X01,0X1F,0X00,0X01,0X10,0X12,0X12,0X1F,0X12,0X12,0X12,0X10,0X00,
0X1C,0X07,0X00,0X00,0X00,0X10,0X10,0X1F,0X00,0X02,0X03,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X20,0X78,0X8C,0X06,0X00,0X00,
0X00,0X00,0XFE,0X00,0X00,0X00,0X00,0XFE,0X18,0XE0,0X80,0XFE,0X00,0XF8,0XFC,0X02,
0X42,0XDC,0X98,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X00,0X00,0X01,0X06,0X04,0X00,
0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X07,0X00,0X00,0X03,0X07,0X00,0X01,0X03,0X06,
0X04,0X07,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};


/***************************************************************************
*                   *
*                   *
*        Show Regular Pattern 顯示正常模式(全屏)                *   
*                   *
****************************************************************************/
void Fill_RAM(unsigned char Data)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
  Set_Start_Page(i);
  Set_Start_Column(0x00);
  for(j=0;j<128;j++)
  {
   Write_Data(Data);
  }
}
}

/***************************************************************************
*                   *
*                   *
*                   OLED顯示圖形函數          *
*                   *
*  Show Pattern (Partial or Full Screen)部分或全屏幕      *
*                   *
*    a: Start Page  起始頁             *
*    b: End Page  結束頁             *
*    c: Start Column 開始列             *
*    d: Total Columns總柱                             *
*                   *
****************************************************************************/
void Show_Pattern(unsigned char *Data_Pointer, unsigned char a, unsigned char b, unsigned char c, unsigned char d)
{
unsigned char *Src_Pointer;
unsigned char i,j;
Src_Pointer=Data_Pointer;
for(i=a;i<(b+1);i++)
{
  Set_Start_Page(i);
  Set_Start_Column(c);
  for(j=0;j<d;j++)
  {
   Write_Data(*Src_Pointer);
   Src_Pointer++;
  }
}
}

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Sleep Mode 睡眠模式
//
//    "0x00" Enter Sleep Mode  進入睡眠模式
//    "0x01" Exit Sleep Mode 退出睡眠模式
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Sleep(unsigned char a)
{
switch(a)
{
  case 0:
   Set_Display_On_Off(0x00);
   Set_Entire_Display(0x01);
   break;
  case 1:
   Set_Entire_Display(0x00);
   Set_Display_On_Off(0x01);
   break;
}
}
/***************************************************************************
*                   *
*                   *
*                   OLED初始化函數                      *   
*                   *
****************************************************************************/
void OLED_Init_I()    // VCC Generated by Internal DC/DC Circuit
{
unsigned char i;
RES=0;
for(i=0;i<200;i++)
{
  uDelay(800);
// uDelay(200);
}
RES=1;
Set_Display_On_Off(0x00);  // Display Off (0x00/0x01)
Set_Display_Clock(0x80);  // Set Clock as 100 Frames/Sec
Set_Multiplex_Ratio(0x3F);  // 1/64 Duty (0x0F~0x3F)
Set_Display_Offset(0x00);  // Shift Mapping RAM Counter (0x00~0x3F)
Set_Start_Line(0x00);   // Set Mapping RAM Display Start Line (0x00~0x3F)
Set_Charge_Pump(0x04);   // Enable Embedded DC/DC Converter (0x00/0x04)
Set_Addressing_Mode(0x02);  // Set Page Addressing Mode (0x00/0x01/0x02)
Set_Segment_Remap(0x01);  // Set SEG/Column Mapping (0x00/0x01)
Set_Common_Remap(0x00);   // Set COM/Row Scan Direction (0x00/0x08)  ////////////////
Set_Common_Config(0x10);  // Set Sequential Configuration (0x00/0x10)
Set_Contrast_Control(Brightness); // Set SEG Output Current
Set_Precharge_Period(0xF1);  // Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
Set_VCOMH(0x40);   // Set VCOM Deselect Level
Set_Entire_Display(0x00);  // Disable Entire Display On (0x00/0x01)
Set_Inverse_Display(0x00);  // Disable Inverse Display On (0x00/0x01)
Fill_RAM(0x00);    // Clear Screen
Set_Display_On_Off(0x01);  // Display On (0x00/0x01)
}
/***************************************************************************
*                   *
*                   *
*                   顯示字符                              *   
*顯示X,Y坐標處的一個字符。一行可以顯示16個字符。X為0到15,Y為0到3   *                *
****************************************************************************/
void disc(unsigned char X,unsigned char Y,unsigned char * c)
{
unsigned char n;
Set_Common_Remap(0x00);   // Set COM/Row Scan Direction (0x00/0x08)
Write_Command (0xb7-(Y<<1));    //b7 Page Address
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(n=0;n<=15;n+=2)
  Write_Data(*(c+n));
Write_Command (0xb7-(Y<<1)-1);
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(n=1;n<=15;n+=2)
  Write_Data(*(c+n));
}
// X  is 0 to 7
/***************************************************************************
*                   *
*                   *
*                   顯示漢字                              *   
*顯示X,Y坐標處的一個字符。一行可以顯示8個字符。X為0到7,Y為0到3   *                *
****************************************************************************/
void dish(unsigned char X,unsigned char Y,unsigned char * h)
{
unsigned char n;
Set_Common_Remap(0x00);   // Set COM/Row Scan Direction (0x00/0x08)
Write_Command (0xb7-(Y<<1));
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(n=0;n<=31;n+=2)
  Write_Data(*(h+n));
Write_Command (0xb7-(Y<<1)-1);
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(n=1;n<=31;n+=2)
  Write_Data(*(h+n));
}
/***************************************************************************
*                   *
*                   *
*                   顯示數字                              *   
*顯示X,Y坐標處的一個字符。一行可以顯示16個字符。X為0到15,Y為0到3   *                *
****************************************************************************/
void disn(unsigned char X,unsigned char Y,unsigned char n)
{
unsigned char m;
Set_Common_Remap(0x00);   // Set COM/Row Scan Direction (0x00/0x08)
Write_Command (0xb7-(Y<<1));
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(m=0;m<=15;m+=2)
  Write_Data(*(num[n]+m));                    
Write_Command (0xb7-(Y<<1)-1);
if(X%2)
  Write_Command (0x08);
else
  Write_Command (0x00);
Write_Command (0x10+(X>>1));
for(m=1;m<=15;m+=2)
  Write_Data(*(num[n]+m));
}
/***************************************************************************
*                   *
*                   *
*                   一屏顯示32個漢字                      *   
*                   *
****************************************************************************/
void welcome(void)
{
  //一屏顯示32個漢字
// dish(0,0,dian);dish(2,0,zi);dish(4,0,wen);dish(6,0,du);dish(8,0,shidu);dish(10,0,zhou);dish(12,0,yi);dish(14,0,er);
// dish(0,1,dian);dish(2,1,zi);dish(4,1,wen);dish(6,1,du);dish(8,1,shidu);dish(10,1,zhou);dish(12,1,yi);dish(14,1,er);
// dish(0,2,dian);dish(2,2,zi);dish(4,2,wen);dish(6,2,du);dish(8,2,shidu);dish(10,2,zhou);dish(12,2,yi);dish(14,2,er);
// dish(0,3,dian);dish(2,3,zi);dish(4,3,wen);dish(6,3,du);dish(8,3,shidu);dish(10,3,zhou);dish(12,3,yi);dish(14,3,er);

//溫度濕度
  disn(1,0,2);disn(2,0,0);disn(3,0,1);disn(4,0,0);dish(5,0,year);
  disn(7,0,1);disn(8,0,0);dish(9,0,month);disn(11,0,0);disn(12,0,1);dish(13,0,day);
  disn(1,1,1);disn(2,1,2);disc(3,1,mao);disn(4,1,0);
  disn(5,1,0);disc(6,1,mao);disn(7,1,0);disn(8,1,0);
  dish(11,1,zhou);dish(13,1,si);
  dish(1,2,wen);dish(3,2,du);disc(5,2,mao);    //dish 全字
  //disn(6,2,1);
  //disn(7,2,1);disn(8,2,9);disc(9,2,dianhao);disn(10,2,6);//disn 數字
  dish(13,2,dufuhao);//dish
  dish(1,3,shidu);dish(3,3,du);disc(5,3,mao);
  //disn(6,3,1);
  disn(7,3,6);disn(8,3,2);disc(9,3,dianhao);disn(10,3,4);//disn 數字
  disc(12,3,baifhao);disc(13,3,R);disc(14,3,H);//disc半字
   
}

//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//  Main Program
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void main()
{
P0M1=0x00; //P0=OUTPUT解決了屏運行的時候會有亂碼
P0M0=0xFF;
P1M1=0x00; //P1=OUTPUT解決了屏運行的時候會有亂碼
P1M0=0xFF;
OLED_Init_I();
    Fill_RAM(0x00);   // Clear Screen
  Set_Common_Remap(0x08);   // Set COM/Row Scan Direction (0x00/0x08)  兩種顯示字需要的開始地址不同
  Show_Pattern(&king[0][0],0x02,0x06,XLevel+0x00,0x80); //show keimeidianzi
Delay(5);

Fill_RAM(0x00);
while(1)
{
         //顯示32個漢字
welcome();
Temperature = 1000;

t0 = Temperature/1000;
t1 = Temperature%1000/100;
t2 = Temperature%100/10;
t3 = Temperature%10;
disn(7,2,t0);disn(8,2,t1);disn(9,2,t2);disc(10,2,dianhao);disn(11,2,t3);//disn 數字   溫度

}   
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:85865 發表于 2015-8-15 11:51 | 只看該作者
這是什么單片機的代碼呢?看上去不像51的
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合久久综合久久 | 久久久久久久久久久一区二区 | 天天干成人网 | 一区二区在线免费观看 | 免费 视频 1级 | 91久久精品日日躁夜夜躁欧美 | 日本不卡免费新一二三区 | 黄色一级免费 | 午夜三级在线观看 | 中文字幕在线精品 | 亚洲网站免费看 | jav成人av免费播放 | 日本涩涩视频 | 精品久久久久久 | 美女天堂 | 美国一级黄色片 | 亚洲成av人影片在线观看 | 91免费福利在线 | 欧美一区二区三区一在线观看 | 久久精品欧美一区二区三区不卡 | 色婷婷av久久久久久久 | 色婷婷久久久久swag精品 | 国产在线观看一区二区三区 | 日本一区二区三区精品视频 | 人人爽人人爽人人片av | 亚洲综合资源 | 国产精品麻 | 亚洲一区二区三区在线视频 | 特黄特色大片免费视频观看 | 日韩一级 | 午夜免费成人 | 日韩在线视频播放 | 午夜精品久久久久久久99黑人 | 亚洲女人天堂网 | 视频一区二区三区在线观看 | 亚洲每日更新 | 日日操av | 中文字幕第一页在线 | 亚洲精品aⅴ | 国产羞羞视频在线观看 | 四虎影院一区二区 |