psb(19).png (292.44 KB, 下載次數: 94)
下載附件
2014-3-15 01:19 上傳
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//
// 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 數字 溫度
}
}
|