查看: 2829|回复: 4

[原创] 【高校争霸赛】新型智能插座(4)——软件设计(2)

[复制链接]
  • TA的每日心情
    郁闷
    2021-3-10 19:44
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    126

    主题

    525

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2018
    最后登录
    2023-12-25
    发表于 2016-11-29 13:12:07 | 显示全部楼层 |阅读模式
    本帖最后由 MDebug 于 2016-11-29 13:32 编辑

    接下来是WiFi,OLED。
    首先将电脑连接上WiFiWiFi:cangjingtun,密码:1234567890),然后在网页输入WiFi模块设置好IP192.168.1.1,初始用户名密码都为admin,然后即可进入WiFi模块的设置。此设置是为了安全考虑,可以自己设定WiFi密码,防止其他用户非法访问。手机连接上WiFi后,同样可以使用此方法进行设置
    4.png 5.png
    1. #include "relay.h"
    2. //初始化P013和P016为输出口.并使能这两个口的时钟                    
    3. //RELAY IO初始化
    4. void Relay_Init(void)
    5. {

    6.     Chip_GPIO_Init(LPC_GPIO_PORT);                     
    7.     Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 13, true);       //ÉèÖÃ0.20½Å·½ÏòΪÊäÈë
    8.     Chip_GPIO_PinSetDIR(LPC_GPIO_PORT, 0, 16, true);     //ÉèÖÃ0.21½Å·½ÏòΪ³ö
    9. }
    10. /***********************************华丽的分割线**********************************/
    11. #include "wifi.h"
    12. #include "relay.h"
    13. #include "led.h"
    14. unsigned int Send_WiFi_Data=0;
    15. unsigned int Uart2_Rx=0;

    16. u16 USART_RX_BUF[USART2_REC_LEN];     //接收缓冲,最大USART_REC_LEN个字节.



    17. /***********************************华丽的分割线**********************************/
    18. void UART_SendData(u8 *Data)//wifi_data
    19. {
    20.     int i=0;
    21.     for(i=0;i<8;i++)  
    22.     {
    23.         USART_SendMsg(USART,Data[i]);
    24.       
    25.   }
    26. }

    27. /***********************************华丽的分割线**********************************/

    28. void USART_IRQH(void)                    
    29. {   
    30.    
    31.             if( (USART_RX_BUF[7]==0x59) || (USART_RX_BUF[7]==0x5F))
    32.             {
    33.                         RELAY0 = 1;
    34.                         RELAY1 = 1;
    35.                         
    36.       }
    37.             if( (USART_RX_BUF[7]==0x58) || (USART_RX_BUF[7]==0x5B))
    38.             {
    39.                         RELAY0 = 0;
    40.                         RELAY1 = 0;

    41.       }   
    42.             
    43.    }
    44.       





    复制代码
    OLED:
    1. #include "oled.h"
    2. const unsigned char F6x8[][6] =
    3. {
    4.     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },   // sp
    5.     { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !
    6.     { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },   // "
    7.     { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #
    8.     { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // $
    9.     { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },   // %
    10.     { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },   // &
    11.     { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },   // '
    12.     { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },   // (
    13.     { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },   // )
    14.     { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *
    15.     { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +
    16.     { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },   // ,
    17.     { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },   // -
    18.     { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },   // .
    19.     { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },   // /
    20.     { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0
    21.     { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1
    22.     { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2
    23.     { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3
    24.     { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4
    25.     { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5
    26.     { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6
    27.     { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7
    28.     { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8
    29.     { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9
    30.     { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },   // :
    31.     { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;
    32.     { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },   // <
    33.     { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },   // =
    34.     { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },   // >
    35.     { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?
    36.     { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },   // @
    37.     { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },   // A
    38.     { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B
    39.     { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C
    40.     { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D
    41.     { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E
    42.     { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F
    43.     { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G
    44.     { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H
    45.     { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I
    46.     { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J
    47.     { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K
    48.     { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L
    49.     { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M
    50.     { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N
    51.     { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O
    52.     { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P
    53.     { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q
    54.     { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R
    55.     { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },   // S
    56.     { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T
    57.     { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U
    58.     { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V
    59.     { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W
    60.     { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },   // X
    61.     { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y
    62.     { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z
    63.     { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [
    64.     { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55
    65.     { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
    66.     { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^
    67.     { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },   // _
    68.     { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },   // '
    69.     { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },   // a
    70.     { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b
    71.     { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },   // c
    72.     { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },   // d
    73.     { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },   // e
    74.     { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f
    75.     { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },   // g
    76.     { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h
    77.     { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i
    78.     { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },   // j
    79.     { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k
    80.     { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l
    81.     { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m
    82.     { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n
    83.     { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },   // o
    84.     { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },   // p
    85.     { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },   // q
    86.     { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r
    87.     { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },   // s
    88.     { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t
    89.     { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u
    90.     { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v
    91.     { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w
    92.     { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },   // x
    93.     { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },   // y
    94.     { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z
    95.     { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }    // horiz lines
    96. };

    97. const unsigned char F14x16[] = {
    98. 0x10,0x60,0x02,0x8C,0x00,0x04,0x0C,0x94,0xA5,0x46,0xA4,0x94,0x0C,0x04,0x04,0x04,
    99. 0x7E,0x01,0x00,0x81,0x61,0x1E,0x00,0x00,0x00,0xFE,0x01,0x01,/*"¼Ã",0*/

    100. 0x04,0xE4,0x24,0x24,0x64,0xA4,0x24,0x3F,0x24,0xA4,0x64,0x24,0x24,0xE4,0x00,0xFF,
    101. 0x00,0x08,0x09,0x09,0x09,0x7F,0x09,0x09,0x09,0x48,0x80,0x7F,/*"ÄÏ",1*/

    102. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x80,0x80,
    103. 0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,/*"´ó",2*/

    104. 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x04,0x04,
    105. 0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,/*"ѧ",3*/

    106. 0x10,0x0C,0x04,0x84,0x14,0x64,0x05,0x06,0xF4,0x04,0x04,0x04,0x04,0x14,0x04,0x84,
    107. 0x84,0x44,0x47,0x24,0x14,0x0C,0x07,0x0C,0x14,0x24,0x44,0x84,/*"ʵ",4*/

    108. 0x02,0xFA,0x82,0x82,0xFE,0x80,0x40,0x20,0x50,0x4C,0x43,0x4C,0x50,0x20,0x08,0x18,
    109. 0x48,0x84,0x44,0x3F,0x40,0x44,0x58,0x41,0x4E,0x60,0x58,0x47,/*"Ñé",5*/

    110. 0x10,0x0C,0x24,0x24,0xA4,0x64,0x25,0x26,0x24,0x24,0xA4,0x24,0x24,0x14,0x40,0x40,
    111. 0x48,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x4B,0x48,0x40,/*"ÊÒ",6*/

    112. };

    113. const unsigned char F16x16[] = {

    114. 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0xF0,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    115. 0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,/*"1",0*/

    116. 0x00,0x00,0x60,0x50,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x98,0xF0,0x70,0x00,0x00,
    117. 0x00,0x00,0x20,0x30,0x28,0x28,0x24,0x24,0x22,0x22,0x21,0x20,0x30,0x18,0x00,0x00,/*"2",1*/

    118. 0x00,0x00,0xC0,0xE0,0x30,0x10,0x08,0x08,0x08,0x08,0x08,0x18,0x30,0xE0,0xC0,0x00,
    119. 0x00,0x00,0x07,0x0F,0x18,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x18,0x0F,0x07,0x00,/*"0",2*/

    120. 0x00,0xE0,0xF0,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x18,0x10,0xF0,0xC0,0x00,0x00,
    121. 0x00,0x00,0x11,0x33,0x22,0x22,0x22,0x22,0x22,0x32,0x11,0x1D,0x0F,0x03,0x00,0x00,/*"9",3*/

    122. 0x00,0x00,0x00,0x08,0x08,0x08,0x08,0xF8,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    123. 0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,/*"l",4*/

    124. 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,
    125. 0x00,0x18,0x3D,0x25,0x24,0x22,0x22,0x22,0x22,0x12,0x3F,0x3F,0x20,0x20,0x00,0x00,/*"a",5*/

    126. 0x00,0x08,0x08,0xF8,0xFC,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,
    127. 0x00,0x00,0x00,0x3F,0x1F,0x11,0x21,0x20,0x20,0x20,0x20,0x20,0x11,0x1F,0x0E,0x00,/*"b",6*/

    128. 0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,
    129. 0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,/*"?",0*/

    130. 0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,
    131. 0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"?",1*/

    132. 0x24,0x24,0xA4,0xFE,0x23,0x22,0x40,0x30,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
    133. 0x08,0x06,0x01,0xFF,0x01,0x02,0x10,0x0C,0x43,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,/*"?",2*/

    134. 0x10,0x10,0x14,0xD4,0x54,0x54,0x54,0xFC,0x52,0x52,0x52,0xD3,0x12,0x10,0x10,0x00,
    135. 0x40,0x40,0x50,0x57,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x57,0x50,0x40,0x40,0x00,/*"?",3*/

    136. 0x20,0x20,0x20,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBE,0x20,0x20,0x20,0x00,
    137. 0x00,0x80,0x80,0xAF,0xAA,0xAA,0xAA,0xFF,0xAA,0xAA,0xAA,0xAF,0x80,0x80,0x00,0x00,/*"?",4*/

    138. };
    139. const unsigned char  F8X16[]=
    140. {
    141.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
    142.   0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//!1
    143.   0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//"2
    144.   0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//#3
    145.   0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$4
    146.   0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//%5
    147.   0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//&6
    148.   0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//'7
    149.   0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//(8
    150.   0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//)9
    151.   0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//*10
    152.   0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+11
    153.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//,12
    154.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//-13
    155.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//.14
    156.   0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,///15
    157.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//016
    158.   0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//117
    159.   0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//218
    160.   0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//319
    161.   0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//420
    162.   0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//521
    163.   0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//622
    164.   0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//723
    165.   0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//824
    166.   0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//925
    167.   0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//:26
    168.   0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//;27
    169.   0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//<28
    170.   0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//=29
    171.   0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//>30
    172.   0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//?31
    173.   0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@32
    174.   0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A33
    175.   0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B34
    176.   0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C35
    177.   0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D36
    178.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E37
    179.   0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F38
    180.   0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G39
    181.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H40
    182.   0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I41
    183.   0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J42
    184.   0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K43
    185.   0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L44
    186.   0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M45
    187.   0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N46
    188.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O47
    189.   0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P48
    190.   0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q49
    191.   0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R50
    192.   0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S51
    193.   0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T52
    194.   0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U53
    195.   0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V54
    196.   0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W55
    197.   0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X56
    198.   0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y57
    199.   0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z58
    200.   0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[59
    201.   0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\60
    202.   0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//]61
    203.   0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^62
    204.   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_63
    205.   0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//`64
    206.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a65
    207.   0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b66
    208.   0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c67
    209.   0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d68
    210.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e69
    211.   0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f70
    212.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g71
    213.   0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h72
    214.   0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i73
    215.   0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j74
    216.   0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k75
    217.   0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l76
    218.   0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m77
    219.   0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n78
    220.   0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o79
    221.   0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p80
    222.   0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q81
    223.   0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r82
    224.   0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s83
    225.   0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t84
    226.   0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u85
    227.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v86
    228.   0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w87
    229.   0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x88
    230.   0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y89
    231.   0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z90
    232.   0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{91
    233.   0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//|92
    234.   0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//}93
    235.   0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~94

    236. };


    237. /*写指令到LCD模块*/
    238. void transfer_command_lcd(int data1)   
    239. {
    240.     char i;
    241.     lcd_rs(0);;;
    242.     lcd_cs1(0);
    243.     for(i=0;i<8;i++)
    244.    {lcd_sclk(0);;;
    245.         
    246.         if(data1&0x80) {lcd_sid(1);;;}
    247.         else {lcd_sid(0);;;}
    248.         lcd_sclk(1);
    249.         __nop();;;
    250.     //    lcd_sclk(0);;;
    251.          data1<<=1;
    252.    }
    253.          lcd_rs(1);;;
    254.      lcd_cs1(1);
    255. }

    256. /*写数据到LCD模块*/
    257. void transfer_data_lcd(int data1)
    258. {
    259.     char i;
    260.     lcd_rs(1);;;
    261.     lcd_cs1(0);
    262.     for(i=0;i<8;i++)
    263.    {
    264.         lcd_sclk(0);;;
    265.         if(data1&0x80) {lcd_sid(1);;;}
    266.         else {lcd_sid(0);;;}
    267.         lcd_sclk(1);;;
    268.         __nop();;;
    269.         //lcd_sclk(0);;;
    270.          data1<<=1;
    271.    }lcd_rs(1);;;
    272.      lcd_cs1(1);
    273. }

    274. /*延时*/
    275. void delay(int n_ms)               
    276. {
    277. int j,k;
    278. for(j=0;j<n_ms;j++)
    279. for(k=0;k<5500;k++);
    280. }
    281. #if 0
    282. void waitkey()
    283. {
    284. repeat:
    285.       if (P2&0x01) goto repeat;
    286.     else delay(6);
    287.     if (P2&0x01) goto repeat;
    288.     else
    289.     delay(40);;
    290. }
    291. #endif


    292. /*LCD模块初始化*/
    293. void initial_lcd()
    294. {
    295.    
    296.     delay(400);
    297.     GBZK_GPIO_Config();
    298.     lcd_cs1(0);
    299.     Rom_CS(1);
    300.       
    301.     transfer_command_lcd(0xAE);   //display off
    302.     transfer_command_lcd(0x20);    //Set Memory Addressing Mode   
    303.     transfer_command_lcd(0x10);    //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid
    304.     transfer_command_lcd(0xb0);    //Set Page Start Address for Page Addressing Mode,0-7
    305.     transfer_command_lcd(0xc8);    //Set COM Output Scan Direction
    306.     transfer_command_lcd(0x00);//---set low column address
    307.     transfer_command_lcd(0x10);//---set high column address
    308.     transfer_command_lcd(0x40);//--set start line address
    309.     transfer_command_lcd(0x81);//--set contrast control register
    310.     transfer_command_lcd(0xFF);
    311.     transfer_command_lcd(0xa1);//--set segment re-map 0 to 127
    312.     transfer_command_lcd(0xa6);//--set normal display
    313.     transfer_command_lcd(0xa8);//--set multiplex ratio(1 to 64)
    314.     transfer_command_lcd(0x3F);//
    315.     transfer_command_lcd(0xa4);//0xa4,Output follows RAM content;0xa5,Output ignores RAM content
    316.     transfer_command_lcd(0xd3);//-set display offset
    317.     transfer_command_lcd(0x00);//-not offset
    318.     transfer_command_lcd(0xd5);//--set display clock divide ratio/oscillator frequency
    319.     transfer_command_lcd(0xf0);//--set divide ratio
    320.     transfer_command_lcd(0xd9);//--set pre-charge period
    321.     transfer_command_lcd(0x22); //
    322.     transfer_command_lcd(0xda);//--set com pins hardware configuration
    323.     transfer_command_lcd(0x12);
    324.     transfer_command_lcd(0xdb);//--set vcomh
    325.     transfer_command_lcd(0x20);//0x20,0.77xVcc
    326.     transfer_command_lcd(0x8d);//--set DC-DC enable
    327.     transfer_command_lcd(0x14);//
    328.     transfer_command_lcd(0xaf);//--turn on oled panel
    329.     lcd_cs1(1);
    330. }

    331. void lcd_address(uchar page,uchar column)
    332. {

    333.     transfer_command_lcd(0xb0 + column);   /*设置页地址*/
    334.     transfer_command_lcd(((page & 0xf0) >> 4) | 0x10);    /*设置列地址的高4位*/
    335.     transfer_command_lcd((page & 0x0f) | 0x00);    /*设置列地址的低4位*/   
    336. }

    337. /*全屏清屏*/
    338. void clear_screen()
    339. {
    340.     unsigned char i,j;
    341.     lcd_cs1(0);
    342.     Rom_CS(1);   
    343.     for(i=0;i<8;i++)
    344.     {
    345.         transfer_command_lcd(0xb0+i);
    346.         transfer_command_lcd(0x00);
    347.         transfer_command_lcd(0x10);
    348.         for(j=0;j<132;j++)
    349.         {
    350.               transfer_data_lcd(0x00);
    351.         }
    352.     }
    353.      lcd_cs1(1);
    354. }

    355. /*显示128x64点阵图像*/
    356. void display_128x64(const uchar *dp)
    357. {
    358.     uint i,j;
    359.     lcd_cs1(0);
    360.     for(j=0;j<8;j++)
    361.     {
    362.         lcd_address(0,j);
    363.         for (i=0;i<128;i++)
    364.         {   
    365.             transfer_data_lcd(*dp);                    /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
    366.             dp++;
    367.         }
    368.     }
    369.     lcd_cs1(1);
    370. }


    371. /*显示16x16点阵图像、汉字、生僻字或16x16点阵的其他图标*/
    372. void display_graphic_16x16(uint page,uint column,const uchar *dp)
    373. {
    374.     uint i,j;
    375.      lcd_cs1(0);
    376.     Rom_CS(1);     
    377.     for(j=2;j>0;j--)
    378.     {
    379.         lcd_address(column,page);
    380.         for (i=0;i<16;i++)
    381.         {   
    382.             transfer_data_lcd(*dp);                    /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
    383.             dp++;
    384.         }
    385.         page++;
    386.     }
    387.     lcd_cs1(1);
    388. }


    389. /*显示8x16点阵图像、ASCII, 或8x16点阵的自造字符、其他图标*/
    390. void display_graphic_8x16(uint page,uchar column,uchar *dp)
    391. {
    392.     uint i,j;
    393.     lcd_cs1(0);   
    394.     for(j=2;j>0;j--)
    395.     {
    396.         lcd_address(column,page);
    397.         for (i=0;i<8;i++)
    398.         {   
    399.             transfer_data_lcd(*dp);                    /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/
    400.             dp++;
    401.         }
    402.         page++;
    403.     }
    404.     lcd_cs1(1);
    405. }


    406. /*显示5*7点阵图像、ASCII, 或5x7点阵的自造字符、其他图标*/
    407. void display_graphic_5x7(uint page,uchar column,uchar *dp)
    408. {
    409.     uint col_cnt;
    410.     uchar page_address;
    411.     uchar column_address_L,column_address_H;
    412.     page_address = 0xb0+page-1;
    413.    
    414.     lcd_cs1(0);   
    415.    
    416.     column_address_L =(column&0x0f)-1;
    417.     column_address_H =((column>>4)&0x0f)+0x10;
    418.    
    419.     transfer_command_lcd(page_address);         /*Set Page Address*/
    420.     transfer_command_lcd(column_address_H);    /*Set MSB of column Address*/
    421.     transfer_command_lcd(column_address_L);    /*Set LSB of column Address*/
    422.    
    423.     for (col_cnt=0;col_cnt<6;col_cnt++)
    424.     {   
    425.         transfer_data_lcd(*dp);
    426.         dp++;
    427.     }
    428.     lcd_cs1(1);
    429. }

    430. /****送指令到晶联讯字库IC***/
    431. void send_command_to_ROM( uchar datu )
    432. {
    433.     uchar i;
    434.     for(i=0;i<8;i++ )
    435.     {
    436.         if(datu&0x80)
    437.             {lcd_sid(1);;;__nop();}
    438.         else
    439.             {lcd_sid(0);;; __nop(); }
    440.             datu = datu<<1;
    441.             lcd_sclk(0);;;__nop();
    442.             lcd_sclk(1);;;__nop();
    443.     }
    444. }

    445. /****从晶联讯字库IC中取汉字或字符数据(1个字节)***/
    446. static uchar get_data_from_ROM( )
    447. {
    448.    
    449.     uchar i;
    450.     uchar ret_data=0;
    451.     lcd_sclk(1);;;  __nop();
    452.     GBZK_ROMOUTSET();
    453.     for(i=0;i<8;i++)
    454.     {
    455.         Rom_OUT(1);;; __nop();
    456.         lcd_sclk(0);;;__nop();
    457.         ret_data=ret_data<<1;
    458.         if( ROM_OUT )
    459.             {ret_data=ret_data+1;;;__nop();}
    460.         else
    461.             {ret_data=ret_data+0;;;__nop();    }
    462.         lcd_sclk(1);
    463.     }
    464.     GBZK_ROMOUTRESET();
    465.     return(ret_data);
    466. }



    467. /*从相关地址(addrHigh:地址高字节,addrMid:地址中字节,addrLow:地址低字节)中连续读出DataLen个字节的数据到 pBuff的地址*/
    468. /*连续读取*/
    469. void get_n_bytes_data_from_ROM(uchar addrHigh,uchar addrMid,uchar addrLow,uchar *pBuff,uchar DataLen )
    470. {
    471.     uchar i;
    472.     Rom_CS(0);
    473.     lcd_cs1(1);   
    474.     lcd_sclk(0);
    475.     send_command_to_ROM(0x03);
    476.     send_command_to_ROM(addrHigh);
    477.     send_command_to_ROM(addrMid);
    478.     send_command_to_ROM(addrLow);
    479.     for(i = 0; i < DataLen; i++ )
    480.          *(pBuff+i) =get_data_from_ROM();
    481.     Rom_CS(1);
    482. }


    483. /******************************************************************/
    484. //x,y,text
    485. ulong  fontaddr=0;
    486. void display_GB2312_string(uchar y,uchar x,uchar *text)
    487. {
    488.     uchar i= 0;
    489.     uchar addrHigh,addrMid,addrLow ;
    490.     uchar fontbuf[32];            
    491.     while((text[i]>0x00))
    492.     {
    493.         if(((text[i]>=0xb0) &&(text[i]<=0xf7))&&(text[i+1]>=0xa1))
    494.         {                        
    495.             /*国标简体(GB2312)汉字在晶联讯字库IC中的地址由以下公式来计算:*/
    496.             /*Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0*/
    497.             /*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
    498.             fontaddr = (text[i]- 0xb0)*94;
    499.             fontaddr += (text[i+1]-0xa1)+846;
    500.             fontaddr = (ulong)(fontaddr*32);
    501.             
    502.             addrHigh = (fontaddr&0xff0000)>>16;  /*地址的高8位,共24位*/
    503.             addrMid = (fontaddr&0xff00)>>8;      /*地址的中8位,共24位*/
    504.             addrLow = fontaddr&0xff;         /*地址的低8位,共24位*/
    505.             get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32 );/*取32个字节的数据,存到"fontbuf[32]"*/
    506.             display_graphic_16x16(y,x,fontbuf);/*显示汉字到LCD上,y为页地址,x为列地址,fontbuf[]为数据*/
    507.             i+=2;
    508.             x+=16;
    509.         }
    510.         else if(((text[i]>=0xa1) &&(text[i]<=0xa3))&&(text[i+1]>=0xa1))
    511.         {                        
    512.             /*国标简体(GB2312)15x16点的字符在晶联讯字库IC中的地址由以下公式来计算:*/
    513.             /*Address = ((MSB - 0xa1) * 94 + (LSB - 0xA1))*32+ BaseAdd;BaseAdd=0*/
    514.             /*由于担心8位单片机有乘法溢出问题,所以分三部取地址*/
    515.             fontaddr = (text[i]- 0xa1)*94;
    516.             fontaddr += (text[i+1]-0xa1);
    517.             fontaddr = (ulong)(fontaddr*32);
    518.             
    519.             addrHigh = (fontaddr&0xff0000)>>16;  /*地址的高8位,共24位*/
    520.             addrMid = (fontaddr&0xff00)>>8;      /*地址的中8位,共24位*/
    521.             addrLow = fontaddr&0xff;         /*地址的低8位,共24位*/
    522.             get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32 );/*取32个字节的数据,存到"fontbuf[32]"*/
    523.             display_graphic_16x16(y,x,fontbuf);/*显示汉字到LCD上,y为页地址,x为列地址,fontbuf[]为数据*/
    524.             i+=2;
    525.             x+=16;
    526.         }
    527.         else if((text[i]>=0x20) &&(text[i]<=0x7e))   
    528.         {                        
    529.             unsigned char fontbuf[16];            
    530.             fontaddr = (text[i]- 0x20);
    531.             fontaddr = (unsigned long)(fontaddr*16);
    532.             fontaddr = (unsigned long)(fontaddr+0x3cf80);            
    533.             addrHigh = (fontaddr&0xff0000)>>16;
    534.             addrMid = (fontaddr&0xff00)>>8;
    535.             addrLow = fontaddr&0xff;

    536.             get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,16 );/*取16个字节的数据,存到"fontbuf[32]"*/
    537.             
    538.             display_graphic_8x16(y,x,fontbuf);/*显示8x16的ASCII字到LCD上,y为页地址,x为列地址,fontbuf[]为数据*/
    539.             i+=1;
    540.             x+=8;
    541.         }
    542.         else
    543.             i++;   
    544.     }
    545.    
    546. }

    547. void display_string_5x7(uchar y,uchar x,uchar *text)
    548. {
    549.     unsigned char i= 0;
    550.     unsigned char addrHigh,addrMid,addrLow ;
    551.     while((text[i]>0x00))
    552.     {
    553.         if((text[i]>=0x20) &&(text[i]<=0x7e))   
    554.         {                        
    555.             unsigned char fontbuf[8];            
    556.             fontaddr = (text[i]- 0x20);
    557.             fontaddr = (unsigned long)(fontaddr*8);
    558.             fontaddr = (unsigned long)(fontaddr+0x3bfc0);            
    559.             addrHigh = (fontaddr&0xff0000)>>16;
    560.             addrMid = (fontaddr&0xff00)>>8;
    561.             addrLow = fontaddr&0xff;

    562.             get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,8);/*取8个字节的数据,存到"fontbuf[32]"*/
    563.             
    564.             display_graphic_5x7(y,x,fontbuf);/*显示5x7的ASCII字到LCD上,y为页地址,x为列地址,fontbuf[]为数据*/
    565.             i+=1;
    566.             x+=6;
    567.         }
    568.         else
    569.         i++;   
    570.     }
    571.    
    572. }



    573. /*显示5*7点阵图像、num, 或5x7点阵的自造字符、其他图标*/
    574. void display_graphic_num_5x7(u8 page,u8 column,u8 *dp)
    575. {
    576.     u8 col_cnt;
    577.     u8 page_address;
    578.     u8 column_address_L,column_address_H;
    579.     page_address = 0xb0+page-1;
    580.    
    581.     lcd_cs1(0);   
    582.    
    583.     column_address_L =(column&0x0f)-1;
    584.     column_address_H =((column>>4)&0x0f)+0x10;
    585.    
    586.     transfer_command_lcd(page_address);         /*Set Page Address*/
    587.     transfer_command_lcd(column_address_H);    /*Set MSB of column Address*/
    588.     transfer_command_lcd(column_address_L);    /*Set LSB of column Address*/
    589.    
    590.     for (col_cnt=0;col_cnt<6;col_cnt++)
    591.     {   
    592.         transfer_data_lcd(*dp);
    593.         dp++;
    594.     }
    595.     lcd_cs1(1);
    596. }



    597. void display_string_small(u8 y,u8 x,u8 *text)
    598. {
    599.     u8 i= 0;
    600.     u8 addrHigh,addrMid,addrLow ;
    601.     while((text[i]>0x00))
    602.     {
    603.         if((text[i]>=0x20)&&(text[i]<=0x7e))   
    604.         {                        
    605.             u8 fontbuf[8];            
    606.             fontaddr = (text[i]- 0x20);
    607.             fontaddr = (unsigned long)(fontaddr*8);
    608.             fontaddr = (unsigned long)(fontaddr+0x3bfc0);            
    609.             addrHigh = (fontaddr&0xff0000)>>16;
    610.             addrMid = (fontaddr&0xff00)>>8;
    611.             addrLow = fontaddr&0xff;
    612.             get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,8);/*取8个字节的数据,存到"fontbuf[32]"*/            
    613.             display_graphic_num_5x7(y,x,fontbuf);/*显示5x7的num到LCD上,y为页地址,x为列地址,fontbuf[]为数据*/
    614.             i+=1;
    615.             x+=6;
    616.         }
    617.         else i++;   
    618.     }
    619. }


    复制代码
                                                                                                             下一篇上传APP和主函数代码
                                                                                                              山东交通学院


    很开心
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    15263
    最后登录
    1970-1-1
    发表于 2016-11-29 15:27:48 | 显示全部楼层
    不错! 支持一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-5 08:29
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    107

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    338
    最后登录
    2018-1-4
    发表于 2016-11-29 16:53:40 | 显示全部楼层
    不错不错   ,很详细
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:51
  • 签到天数: 2628 天

    [LV.Master]伴坛终老

    45

    主题

    5184

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    10677
    最后登录
    2024-4-26
    发表于 2016-11-29 17:38:59 | 显示全部楼层
    有人的模块也用过,赞一个。
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
    发表于 2016-11-29 21:18:13 | 显示全部楼层
    真好,谢谢分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-27 05:54 , Processed in 0.129354 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表