?? tc_clock.s
字號:
.byte 192,222
.byte 196,204
.byte 210,225
.byte 241,204
.byte 218,210
.byte 192,192
.byte 220,196
.byte 222,192
.byte 222,194
.byte 206,220
.byte 206,208
.byte 206,206
.byte 216,227
.byte 42,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,62
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 61,58
.byte 56,56
.byte 60,56
.byte 52,56
.byte 48,32
.byte 48,40
.byte 40,52
.byte 56,63
.byte 62,63
.byte 62,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 60,63
.byte 32,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 1,1
.byte 1,1
.byte 3,3
.byte 15,47
.byte 63,63
.byte 63,31
.byte 31,47
.byte 31,31
.byte 3,15
.byte 11,31
.byte 63,15
.byte 63,47
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 63,63
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.byte 0,0
.dbsym e Tab_pic2 _Tab_pic2 A[1024:64:16]kc
.area text(rom, con, rel)
.dbfile D:\MYDOCU~1\AVR單片機程序\TC_Clock\TC_Clock.c
.dbfunc e delayUS _delayUS fV
; i -> R20,R21
; us -> R22,R23
.even
_delayUS::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 164
; /*******************************************
; *文件名:TC_Clock.c
; *功 能:用定時器/計數器實現模擬時鐘
; * 在12864液晶上顯示
; *晶振頻率:18.432MHz
; *******************************************/
; #include<iom128.h>
; #include<macros.h>
; //#include<stdio.h>
; //#include "LCD12864.c"
; #define uchar unsigned char
; #define uint unsigned int
;
;
; #define LCD_DAT PORTC
; #define LCDENH PORTD=PORTD|(1<<6)
; #define LCDENL PORTD=PORTD&(~(1<<6))
; #define LCDDIH PORTD=PORTD|(1<<7)
; #define LCDDIL PORTD=PORTD&(~(1<<7))
; #define LCDCS1H PORTD=PORTD|(1<<5)
; #define LCDCS1L PORTD=PORTD&(~(1<<5))
; #define LCDCS2H PORTD=PORTD|(1<<4)
; #define LCDCS2L PORTD=PORTD&(~(1<<4))
;
;
; #pragma interrupt_handler Timer1_int:15
; uchar sec=20,min=59,hour=23,year=9,mon=3,date=31,day=7;
; #pragma data:code
; const uchar table[17][16]=
; {
; 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
; 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 10
; 0x00,0x40,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 11
; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空 12
; 0x00,0x04,0xFF,0x94,0x94,0xFF,0x04,0x00,0x22,0x12,0x0B,0x06,0x02,0x07,0x2A,0x10,//其13
; 0xFE,0x12,0x12,0x12,0xFF,0x02,0x00,0x00,0x0F,0x01,0x11,0x21,0x1F,0x00,0x00,0x00,//月 14
;
; };
;
; const uchar Tab_Chinesepoem[][16]=
; {
; {0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00},
; {0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"年",0*/
;
; {0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00},
; {0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00},/*"月",1*/
;
;
;
; {0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00},
; {0x00,0x48,0x46,0x41,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,0x00},/*"星",3*/
;
; {0x00,0x04,0xFF,0x54,0x54,0x54,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00},
; {0x42,0x22,0x1B,0x02,0x02,0x0A,0x33,0x62,0x18,0x07,0x02,0x22,0x42,0x3F,0x00,0x00},/*"期",4*/
;
; {0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x80,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"一",5*/
;
; {0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x00},
; {0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x10,0x00},/*"二",6*/
;
; {0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00},
; {0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},/*"三",7*/
;
; {0x00,0xFE,0x02,0x02,0x02,0xFE,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0x00},
; {0x00,0x7F,0x28,0x24,0x23,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x22,0x7F,0x00,0x00},/*"四",8*/
;
; {0x00,0x02,0x82,0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0xC2,0x82,0x02,0x00,0x00,0x00},
; {0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x30,0x20,0x00},/*"五",9*/
;
; {0x10,0x10,0x10,0x10,0x10,0x91,0x12,0x1E,0x94,0x10,0x10,0x10,0x10,0x10,0x10,0x00},
; {0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x00,0x00,0x01,0x02,0x0C,0x78,0x30,0x00,0x00},/*"六",10*/
;
; {0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00},/*"日",2*/
; };
;
;
; const uchar Tab_pic2[][16] = {
;
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE},
; {0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFC,0xFE,0xFC},
; {0xFE,0xFC,0xFC,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC},
; {0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC},
; {0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF4,0xF8,0xF4,0xF8,0xFC,0xFC,0xFC},
; {0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC},
; {0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC},
; {0x54,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0xBE,0xFF,0x7F,0x3F,0x9F,0x4F,0x27,0x27,0x13,0xCB,0x09,0x01,0x65,0x64,0x65,0x64},
; {0x65,0x64,0x25,0x09,0x89,0x03,0x13,0x27,0x2F,0xCF,0x1F,0x3F,0xFF,0xFF,0xFF,0xFF},
; {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0xF7},
; {0xEF,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
; {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x9F,0xC7,0xF7,0x67,0x4F,0xA7,0x97,0x37,0x87},
; {0xF9,0xFF,0xFB,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F},
; {0x3F,0xFF,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
; {0xFF,0xFE,0x7D,0x9A,0xBC,0x16,0x20,0x80,0xC0,0x60,0x38,0x90,0x80,0x80,0x90,0x60},
; {0x02,0xC1,0x1C,0x82,0x91,0x1C,0x0E,0xC4,0xF0,0xF8,0x7C,0x3E,0x9E,0x4F,0x0F,0x1E},
; {0x0F,0x4F,0x9E,0x3E,0xFC,0xF8,0xF2,0x87,0x1E,0x18,0x81,0x86,0x58,0x81,0x0F,0xFF},
; {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x07,0x89,0xCD,0xCC,0xFE,0xBF},
; {0xD3,0x12,0x09,0xE9,0x19,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
; {0xFF,0x7F,0x7F,0x3F,0x97,0xCB,0x59,0x2C,0x0E,0xF7,0xFF,0x9E,0x83,0x49,0xED,0xE4},
; {0xFA,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0x2F,0x27,0xA0},
; {0xF0,0x3F,0x19,0xCC,0xE5,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
; {0xFF,0xFF,0xC0,0x0C,0x5D,0x5F,0x6D,0x6F,0xEF,0xFF,0x7F,0x3D,0x07,0xC3,0xF9,0xFE},
; {0x80,0x0E,0x30,0xC0,0x08,0x09,0x00,0x07,0x1F,0x3F,0x60,0x80,0x01,0x08,0xFF,0xFF},
; {0xFF,0x00,0x81,0xC0,0x60,0x3F,0x1F,0x03,0x40,0x01,0x01,0xC0,0x38,0x02,0x00,0x0B},
; {0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x05,0x00,0x3F,0x1F,0x40,0x40,0xDA,0x3F,0x97},
; {0x40,0x18,0x38,0x9F,0x60,0x7A,0x7F,0x7F,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0x7F},
; {0xFF,0xFC,0x7B,0xFB,0x79,0x78,0xF2,0x46,0x93,0x3F,0x7F,0x01,0x80,0xFE,0xFF,0xFF},
; {0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xF5,0x76,0xF6,0xF1},
; {0xF9,0xF2,0x6E,0xEC,0x71,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
; {0xF7,0xE9,0x4D,0x0C,0x66,0x46,0x42,0xFF,0x77,0x03,0xF3,0xFB,0xFC,0xFF,0xFF,0xFF},
; {0xAA,0xFF,0xFC,0xF8,0xF3,0xE4,0xC8,0xC8,0x90,0x90,0x20,0x20,0x20,0x40,0x08,0x41},
; {0x40,0x20,0x20,0x20,0x00,0x90,0x90,0xC8,0xE4,0xE2,0xC1,0xA8,0xF0,0x00,0x00,0x00},
; {0x00,0x0B,0x06,0x2A,0x34,0x00,0x00,0x00,0x00,0x1E,0x10,0x1E,0x00,0x1E,0x8C,0x1E},
; {0x80,0x9E,0x80,0xCE,0x9C,0xC2,0xCA,0x9E,0xD6,0x80,0x9E,0x4E,0xCE,0x90,0x02,0x96},
; {0x1E,0x80,0x1E,0x00,0x02,0x1E,0xE0,0xC2,0xDC,0xE6,0xE1,0xFE,0xE1,0xCE,0xD2,0xD2},
; {0xCC,0xC0,0xDE,0xE4,0xE0,0xFB,0xE1,0xC2,0xD6,0xDE,0xC0,0xCC,0xD2,0xD2,0xCC,0xC0},
; {0xDE,0xD0,0xCE,0xC0,0xDA,0xD6,0xC0,0xDE,0xC4,0xCC,0xD2,0xE1,0xF1,0xCC,0xDA,0xD2},
; {0xC0,0xC0,0xDC,0xC4,0xDE,0xC0,0xDE,0xC2,0xCE,0xDC,0xCE,0xD0,0xCE,0xCE,0xD8,0xE3},
; {0x2A,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3E},
; {0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3D,0x3A},
; {0x38,0x38,0x3C,0x38,0x34,0x38,0x30,0x20,0x30,0x28,0x28,0x34,0x38,0x3F,0x3E,0x3F},
; {0x3E,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3C,0x3F},
; {0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x03,0x03,0x0F,0x2F},
; {0x3F,0x3F,0x3F,0x1F,0x1F,0x2F,0x1F,0x1F,0x03,0x0F,0x0B,0x1F,0x3F,0x0F,0x3F,0x2F},
; {0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F},
; {0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
; {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
;
;
; };
; /*****************************************
; *函數名稱: delayUS(us)
; *函數功能 實現1us的延時
; *入口參數 :us
; *出口參數:無
; ****************************************/
; void delayUS(uint us)
; {
.dbline 166
; uint i;
; us=us*3;
ldi R16,3
ldi R17,0
movw R18,R22
xcall empy16s
movw R22,R16
.dbline 167
clr R20
clr R21
xjmp L5
L2:
.dbline 167
L3:
.dbline 167
subi R20,255 ; offset = 1
sbci R21,255
L5:
.dbline 167
; for(i=0;i<us;i++);
cp R20,R22
cpc R21,R23
brlo L2
.dbline -2
L1:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r us 22 i
.dbend
.dbfunc e delayMS _delayMS fV
; i -> R20,R21
; j -> R22,R23
; ms -> R16,R17
.even
_delayMS::
xcall push_gset2
.dbline -1
.dbline 177
; }
; /****************************************
; *函數名稱: delayMS(ms)
; *函數功能 實現1ms的延時
; *入口參數 :ms
; *出口參數:無
;
; ***************************************/
; void delayMS(uint ms)
; {
.dbline 179
; uint i,j;
; for(i=0;i<1541;i++)
clr R20
clr R21
xjmp L10
L7:
.dbline 180
clr R22
clr R23
xjmp L14
L11:
.dbline 180
L12:
.dbline 180
subi R22,255 ; offset = 1
sbci R23,255
L14:
.dbline 180
cp R22,R16
cpc R23,R17
brlo L11
L8:
.dbline 179
subi R20,255 ; offset = 1
sbci R21,255
L10:
.dbline 179
cpi R20,5
ldi R30,6
cpc R21,R30
brlo L7
.dbline -2
L6:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r j 22 i
.dbsym r ms 16 i
.dbend
.dbfunc e LCD_WRITE_DAT _LCD_WRITE_DAT fV
; dat -> R20
.even
_LCD_WRITE_DAT::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 192
; for(j=0;j<ms;j++);
; }
; /****************************************
;
;
; /**************************************
; *函數名稱:LCD——WRITEDAT(dat)
; *函數功能:向LCD寫入數據
; *入口參數:dat
; *出口參數:無
; *************************************/
; void LCD_WRITE_DAT(uchar dat)
; {
.dbline 193
; LCDENL;
cbi 0x12,6
.dbline 194
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 195
; LCDDIH; //選擇為輸入數據
sbi 0x12,7
.dbline 196
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 197
; LCDENH;
sbi 0x12,6
.dbline 198
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 199
; PORTC=dat;
out 0x15,R20
.dbline 200
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 201
; LCDENL;
cbi 0x12,6
.dbline -2
L15:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r dat 20 c
.dbend
.dbfunc e LCD_WRITE_COM _LCD_WRITE_COM fV
; com -> R20
.even
_LCD_WRITE_COM::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 210
; }
; /******************************************
; *函數名稱:LCD_WRITE_COM(com)
; *函數功能:向LCD寫入命令
; *入口參數:com
; *出口參數:無
; ***********************************************/
; void LCD_WRITE_COM(uchar com)
; {
.dbline 211
; LCDENL;
cbi 0x12,6
.dbline 212
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 213
; LCDDIL;
cbi 0x12,7
.dbline 214
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 215
; LCDENH;
sbi 0x12,6
.dbline 216
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 217
; PORTC=com;
out 0x15,R20
.dbline 218
; delayUS(2);
ldi R16,2
ldi R17,0
xcall _delayUS
.dbline 219
; LCDENL;
cbi 0x12,6
.dbline -2
L16:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r com 20 c
.dbend
.dbfunc e LCD_WRITE_ADD_CHAR _LCD_WRITE_ADD_CHAR fV
; i -> R20
; p -> R22
; y -> R10
; x -> R12
.even
_LCD_WRITE_ADD_CHAR::
xcall push_gset4
mov R10,R18
mov R12,R16
ldd R22,y+8
.dbline -1
.dbline 228
; }
; /*******************************************
; *函數名稱:LCD_WRITE_ADD_CHAR(uchar x,y ,uchar *p)
; *函數功能:在坐標xy處寫入西文字符
; *入口參數:x,y 寫入字符的坐標, *p字符編碼表的首地址
; *出口參數:無
; **********************************************/
; void LCD_WRITE_ADD_CHAR(uchar x, uchar y, uchar p)
; {
.dbline 230
; uchar i;
; x=0xb8+x*2;
ldi R24,2
mul R24,R12
mov R24,R0
subi R24,72 ; addi 184
mov R12,R24
.dbline 231
; y=0x40+y*8;
ldi R24,8
mul R24,R10
mov R24,R0
subi R24,192 ; addi 64
mov R10,R24
.dbline 232
; LCD_WRITE_COM(x); //x為行
mov R16,R12
xcall _LCD_WRITE_COM
.dbline 233
; LCD_WRITE_COM(y); // y為列
mov R16,R10
xcall _LCD_WRITE_COM
.dbline 234
; for(i=0;i<8;i++)
clr R20
xjmp L21
L18:
.dbline 235
.dbline 236
ldi R24,16
mul R24,R22
movw R2,R0
ldi R24,<_table
ldi R25,>_table
add R2,R24
adc R3,R25
mov R30,R20
clr R31
add R30,R2
adc R31,R3
lpm R16,Z
xcall _LCD_WRITE_DAT
.dbline 237
L19:
.dbline 234
inc R20
L21:
.dbline 234
cpi R20,8
brlo L18
.dbline 238
; {
; LCD_WRITE_DAT(table[p][i]); //西文字母的上半部分,由8行點構成(每行有8個點)
; }
; LCD_WRITE_COM(x+1);
mov R16,R12
subi R16,255 ; addi 1
xcall _LCD_WRITE_COM
.dbline 239
; LCD_WRITE_COM(y);
mov R16,R10
xcall _LCD_WRITE_COM
.dbline 240
; for(i=0;i<8;i++) //寫入西文字母的下半部分
clr R20
xjmp L25
L22:
.dbline 241
.dbline 242
ldi R24,16
mul R24,R22
movw R2,R0
ldi R24,<_table
ldi R25,>_table
add R2,R24
adc R3,R25
mov R30,R20
clr R31
adiw R30,8
add R30,R2
adc R31,R3
lpm R16,Z
xcall _LCD_WRITE_DAT
.dbline 243
L23:
.dbline 240
inc R20
L25:
.dbline 240
cpi R20,8
brlo L22
.dbline -2
L17:
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r p 22 c
.dbsym r y 10 c
.dbsym r x 12 c
.dbend
.dbfunc e LCD_WRITE_ADD_CHINESE _LCD_WRITE_ADD_CHINESE fV
; i -> R20
; p -> R22
; y -> R10
; x -> R12
.even
_LCD_WRITE_ADD_CHINESE::
xcall push_gset4
mov R10,R18
mov R12,R16
ldd R22,y+8
.dbline -1
.dbline 246
; {
; LCD_WRITE_DAT(table[p][8+i]);
; }
; }
; void LCD_WRITE_ADD_CHINESE(uchar x,uchar y,uchar p)
; {
.dbline 248
; uchar i;
; x=0xb8+x*2;
ldi R24,2
mul R24,R12
mov R24,R0
subi R24,72 ; addi 184
mov R12,R24
.dbline 249
; y=0x40+y*8;
ldi R24,8
mul R24,R10
mov R24,R0
subi R24,192 ; addi 64
mov R10,R24
.dbline 250
; LCD_WRITE_COM(x);
mov R16,R12
xcall _LCD_WRITE_COM
.dbline 251
; LCD_WRITE_COM(y);
mov R16,R10
xcall _LCD_WRITE_COM
.dbline 252
; for(i=0;i<16;i++)
clr R20
xjmp L30
L27:
.dbline 253
.dbline 254
ldi R24,2
mul R24,R22
mov R17,R0
ldi R16,16
muls R16,R17
ldi R24,<_Tab_Chinesepoem
ldi R25,>_Tab_Chinesepoem
movw R2,R0
add R2,R24
adc R3,R25
mov R30,R20
clr R31
add R30,R2
adc R31,R3
lpm R16,Z
xcall _LCD_WRITE_DAT
.dbline 255
L28:
.dbline 252
inc R20
L30:
.dbline 252
cpi R20,16
brlo L27
.dbline 256
; {
; LCD_WRITE_DAT(Tab_Chinesepoem[2*p][i]);
; }
; LCD_WRITE_COM(x+1);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -