lcd202.lst

来自「高奇公司ICD的例子,全部能用,非常好!C语言编程」· LST 代码 · 共 103 行

LST
103
字号
     1: /*********************************************************************
     2: *   Filename:       lcd202.c                                         *
     3: *   Date:           10/19/2002                                       *
     4: *   Edit by Yamato View ,Goldenchip Electronic Co. ,Ltd.             *
     5: *                                                                    *
     6: *   TEL: 86-0591-3375855-721                                         *
     7: *                                                                    *
     8: *********************************************************************/
     9:         #include <pic.h>
    10:         #include "lcd.h"                        
    11: // PORTBITS 
    12: #define PortBit(port,bit)    ((unsigned)&(port)*8+(bit))
    13: #define RS  RA1
    14: #define E   RA0
    15: #define DATA PORTD
    16: 
    17: void Write_Lcd_Cmd( unsigned char cmd )     // 写命令到LCD子程序
    18: { 
    19:     DATA = cmd ;          // 送高4位
    20:     RS = 0;                                 // 设置为发送命令格式
    21:     E = 1;                                  // 发送信号,下降沿触发
    22:         NOP();
    23:         NOP();
    24:     E = 0; 
    25:     Delay5Ms();                             //  
    26: }
    27: 
    28: 
    29: void Write_Lcd_Data( unsigned char data )   // 写数据到LCD的子程序
    30: {
    31:     DATA = data;         // 送高4位
    32:     RS = 1;                                 // 设置为发送数据格式
    33:     E = 1;                                  // 
    34:         NOP();
    35:         NOP();                                  //
    36:     E = 0;                                  // set enable low
    37:     Delay5Ms();                             //  
    38: }
    39: 
    40: void Init_Lcd( void )                       // 初始化 LCD 显示 
    41: {
    42:     DATA = 0x00;                         
    43:     TRISD = 0x00;                       
    44:     TRISA = 0xFC;
    45: 
    46:         Delay15Ms();                            // ~15mS延时 
    47: 
    48:     DATA = 0x38; 
    49:     RS = 0 ;                          
    50:     E = 1;                                  
    51:         NOP();
    52:         NOP();
    53:     E = 0;                                                               
    54:     Delay5Ms(); 
    55:     Delay15Ms();     
    56:      
    57: 
    58:     Write_Lcd_Cmd( 0x38 );                  //                       
    59:     Write_Lcd_Cmd( 0x0C );                  // 开显示
    60:     Write_Lcd_Cmd( 0x06 );                  // 设置指针移动方式
    61:     Write_Lcd_Cmd( 0x01 );                  // 清屏
    62: //              while(1){}            
    63: }
    64: 
    65: void Home_Clr( void )                       // 清屏 
    66: {
    67:     Write_Lcd_Cmd( 0x01 );
    68: }
    69: 
    70: 
    71: void Line_1( void )                        // 从第一行显示
    72: {
    73:     Write_Lcd_Cmd( 0x80 );
    74: }
    75: 
    76: void Line_2( void )                         // 从第2行开始显示
    77: {
    78:     Write_Lcd_Cmd (0xC0 );
    79: }
    80: 
    81: 
    82: 
    83: void Delay15Ms( void )                      // 精确 15ms 延时
    84: {
    85:         unsigned char outer, inner;
    86:         for (outer = 45; outer > 0; outer--)
    87:                 for (inner = 235; inner > 0; inner--);
    88: }
    89: 
    90: void Delay5Ms( void )                       // 精确 5ms 延时
    91: {
    92:         unsigned char outer, inner;
    93:         for (outer = 15; outer > 0; outer--)
    94:                 for (inner = 240; inner > 0; inner--);
    95: }
    96: 
    97: 
    98: void Delay200Us( void )                     // 精确 200us 延时
    99: {
   100:         unsigned char delay;
   101:                 for (delay = 167; delay > 0; delay--);
   102: }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?