#include #include "derivative.h" /* derivative-specific definitions */ #define SDA PTT_PTT1 //Data port 1 #define SCL PTT_PTT0 // Clock #define DC PTT_PTT3 #define RST PTT_PTT2 /******************************/ void delay(uint a){ uint b; for(a;a>0;a--) for(b=1000;b>0;b--); } void InitAD(void) { ATD0DIEN=0X00; ATD0CTL1=0X00; ATD0CTL2=0X40; ATD0CTL3=0X8C; ATD0CTL4=0X03; ATD0CTL5=0X20; } /***************************/ const byte tab_hanzi[][32]= //Chinese character library { {0x10,0x80,0x10,0x40,0x10,0x40,0x13,0xFC,0xFC,0x00,0x10,0x00,0x31,0xF0,0x39,0x10}, {0x55,0x10,0x55,0x10,0x91,0x10,0x11,0x12,0x11,0x12,0x12,0x12,0x12,0x0E,0x14,0x00},/*"杭",0*/ {0x10,0x04,0x10,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x54,0xA4,0x52,0x94,0x52,0x94}, {0x90,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x20,0x84,0x20,0x84,0x40,0x04,0x80,0x04},/*"州",1*/ {0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8}, {0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x0A,0x01,0x02,0x01,0x02,0x00,0xFE},/*"电",2*/ {0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x00,0xFF,0xFE}, {0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00},/*"子",3*/ {0x08,0x10,0x1D,0x10,0xF0,0x90,0x10,0x90,0x10,0x10,0xFD,0x10,0x10,0x90,0x38,0x90}, {0x34,0x10,0x50,0x1E,0x53,0xF0,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},/*"科",4*/ {0x10,0x20,0x10,0x20,0x10,0x20,0x13,0xFE,0xFC,0x20,0x10,0x20,0x10,0x20,0x15,0xFC}, {0x18,0x84,0x30,0x88,0xD0,0x48,0x10,0x50,0x10,0x20,0x10,0x50,0x51,0x88,0x26,0x06},/*"技",5*/ {0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00}, {0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08,0xC0,0x06},/*"大",6*/ {0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0}, {0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00},/*"学",7*/ }; /*********************************/ const byte tab_num[][16]= //Digital font { {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",0*/ {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"1",1*/ {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",2*/ {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},/*"3",3*/ {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00},/*"4",4*/ {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00},/*"5",5*/ {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"6",6*/ {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00},/*"7",7*/ {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",8*/ {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00},/*"9",9*/ }; /************************************/ const byte other_char[][16]= { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"=",1*/ {0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00},/*"@",2*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01},/*"-",3*/ {0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00},/*"<",4*/ {0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00},/*">",5*/ {0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00},/*"?",6*/ {0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00},/*"!",7*/ {0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00},/*"*",8*/ {0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00},/*"+",9*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",10*/ {0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00},/*"/",11*/ {0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},/*":",12*/ {0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00},/*"%",13*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00},/*".",14*/ }; void wrdata(byte data){ byte i=8; DC=1; SCL=0; while(i--){ if(data&0x80) SDA=1; else SDA=0; SCL=1; _asm(nop); SCL=0; data<<=1; } } void wrcmd(byte cmd){ byte i=8; DC=0; SCL=0; while(i--){ if(cmd&0x80) SDA=1; else SDA=0; SCL=1; _asm(nop); SCL=0; cmd<<=1; } } /*void display_on(void) { wrcmd(0X8D); //SET DCDC command wrcmd(0X14); //DCDC ON wrcmd(0XAF); //DISPLAY ON } void display_off(void) { wrcmd(0X8D); //SET DCDC command wrcmd(0X10); //DCDC OFF wrcmd(0XAE); //DISPLAY OFF } */ void set_xy(byte x,byte y){ wrcmd((y|0xb0)); wrcmd((x&0x0f)); wrcmd(((x&0xf0)>>4)|0x10); } void clear_oled(void) { byte page,x; set_xy(0,0); for(page=0;page<9;page++) { for(x=0;x<128;x++){wrdata(0x00);} set_xy(0,page); } } void init_oled(void){ DDRT=0XFF; SCL=1; RST=0; _asm(nop); _asm(nop); RST=1; wrcmd(0xae); wrcmd(0xD5); wrcmd(0x80); wrcmd(0xA8); wrcmd(0x3f); wrcmd(0xd3); wrcmd(0x00); wrcmd(0x40); wrcmd(0x8d); wrcmd(0x14); wrcmd(0x20); wrcmd(0x02); wrcmd(0xa1); wrcmd(0xc8); wrcmd(0xea); wrcmd(0x12); wrcmd(0x81); wrcmd(0xef); wrcmd(0xd9); wrcmd(0xf1); wrcmd(0xdb); wrcmd(0x30); wrcmd(0xa4); wrcmd(0xa6); wrcmd(0xaf); clear_oled(); } void display_hanzi(byte x,byte y,byte w) { byte c; set_xy(x,y); for(c=0;c<16;c++) { wrdata(tab_hanzi[w][c]); } set_xy(x,y+1); for(c=16;c<32;c++) { wrdata(tab_hanzi[w][c]); } } void display_num(byte x,byte y,byte w) { byte c; set_xy(x,y); for(c=0;c<8;c++) { wrdata(tab_num[w][c]); } set_xy(x,y+1); for(c=8;c<16;c++) { wrdata(tab_num[w][c]); } } void display_other(byte x,byte y,byte w) { byte c; set_xy(x,y); for(c=0;c<8;c++) { wrdata(other_char[w][c]); } set_xy(x,y+1); for(c=8;c<16;c++) { wrdata(other_char[w][c]); } } void main(void) { unsigned char v; uint t1,t2,t3,t; InitAD(); init_oled(); //EnableInterrupts; for(;;) { while(!ATD0STAT2L_CCF0){ ;} v=ATD0DR0L; t=v*100/255*5; t1=t/100; t2=(t-t1*100)/10; t3=t-t1*100-t2*10; display_num(16,0,t1); display_other(24,0,14); display_num(32,0,t2); display_num(40,0,t3); _FEED_COP(); /* feeds the dog */ } }
Previous article:Temperature detection and heating through the 502AT thermistor on the MC9S128
Next article:The LED driven by the PB port flashes cyclically at a frequency of once per second
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Download from the Internet--ARM Getting Started Notes
- Learn ARM development(22)
- Learn ARM development(21)
- Learn ARM development(20)
- Learn ARM development(19)
- Learn ARM development(14)
- Learn ARM development(15)
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- 【FAQ】How to quickly understand LP50xx devices?
- 【GD32L233C-START Review】6. Make a simple host computer for HID devices
- Inventory of common problems and solutions of crystal oscillators
- MicroPython Hands-on (18) - Sound and light sensor on the control board
- Share a MSP430 emulator firmware downgrade software
- 485 communication control problem of LPC824.
- TI CCS & controlSUITE Troubleshooting Log
- What is differential gain and differential phase?
- Microstrip Circuits (Tsinghua University)
- Introduction and analysis of namespace logical isolation