⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nokia5110.lst

📁 avr基础程序大全
💻 LST
📖 第 1 页 / 共 3 页
字号:
Interrupt Vectors
    00000 940C 0255 JMP	__start|__text_start

Program Code (text area)
__start|__text_start:
    00255 EFCF      LDI	R28,0xFF
    00256 E2D1      LDI	R29,0x21
    00257 BFCD      OUT	0x3D,R28
    00258 BFDE      OUT	0x3E,R29
    00259 51CE      SUBI	R28,0x1E
    0025A 40D0      SBCI	R29,0
    0025B EA0A      LDI	R16,0xAA
    0025C 8308      ST	Y,R16
    0025D 2400      CLR	R0
    0025E ECE6      LDI	R30,0xC6
    0025F E0F5      LDI	R31,5
    00260 E015      LDI	R17,5
    00261 3CE6      CPI	R30,0xC6
    00262 07F1      CPC	R31,R17
    00263 F011      BEQ	0x0266
    00264 9201      ST	Z+,R0
    00265 CFFB      RJMP	0x0261
    00266 8300      ST	Z,R16
    00267 EEE4      LDI	R30,0xE4
    00268 E0F0      LDI	R31,0
    00269 E0A0      LDI	R26,0
    0026A E0B2      LDI	R27,2
    0026B E014      LDI	R17,4
    0026C E000      LDI	R16,0
    0026D BF0B      OUT	0x3B,R16
    0026E 3AEA      CPI	R30,0xAA
    0026F 07F1      CPC	R31,R17
    00270 F021      BEQ	0x0275
    00271 95C8      LPM
    00272 9631      ADIW	R30,1
    00273 920D      ST	X+,R0
    00274 CFF9      RJMP	0x026E
    00275 940E 039C CALL	_main
_exit:
    00277 CFFF      RJMP	_exit
FILE: D:\蔺贻立\模块化编程\avr程序\7.nokia5110\nokia5110.h
(0001) 
(0002) 
(0003) #include <iom16v.h>
(0004) #include <MACROS.h>
(0005) 
(0006) // Define I/O pins 
(0007) #define BIT7 0x80
(0008) #define BIT6 0x40
(0009) #define BIT5 0x20
(0010) #define BIT4 0x10
(0011) #define BIT3 0x08
(0012) #define BIT2 0x04
(0013) #define BIT1 0x02
(0014) #define BIT0 0x01
(0015) 
(0016) #define LCD_PORT	PORTC
(0017) #define LCD_DIR		DDRC
(0018) #define LCD_IN		PINC
(0019) 
(0020) #define SCLK    BIT1
(0021) #define SDIN    BIT2
(0022) #define LCD_DC  BIT3
(0023) #define LCD_CE  BIT5
(0024) #define LCD_RST BIT4
(0025) 
(0026) //enable global interrupts
(0027) #define GIE (SREG |= BIT(7))
(0028) //disable global interrupts
(0029) #define GID (SREG &= ~BIT(7))
(0030) #define SLEEP()	asm("sleep")
(0031) 
(0032) /* enables an unsigned char to be used as a series of booleans */
(0033) #define BIT(x)	       (1 << (x))
(0034) #define SETBIT(x, y)   (x |= y)
(0035) #define CLEARBIT(x, y) (x &= ~y)
(0036) #define CHECKBIT(x, y) (x & y)
(0037) 
(0038) #define true 1
(0039) #define True 1
(0040) #define false 0
(0041) #define False 0
(0042) 
(0043) unsigned char AVR_bmp[]=
(0044) {
(0045) /*60x47*/
(0046) 0x00,0x00,0x00,0x00,0x80,0xE0,0xFC,0xFF,0xFF,0xFF,0x7F,0xFF,0xFE,0xFC,0xF0,0xC1,
(0047) 0x0F,0x7F,0xFF,0xFF,0xFE,0xF0,0xC0,0x00,0x00,0x00,0xC0,0xF8,0xFE,0xFF,0xFF,0x3F,
(0048) 0x07,0xC1,0xF0,0xFE,0xFF,0xFF,0xFF,0x1F,0x07,0x8F,0xCF,0xFF,0xFF,0xFF,0xFE,0xFC,
(0049) 0x00,0x80,0xF0,0xFC,0xFF,0xFF,0xFF,0x7F,0x7F,0x78,0x78,0x79,0x7F,0x7F,0xFF,0xFF,
(0050) 0xFC,0xF0,0xC1,0x07,0x1F,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,0xFF,0x1F,0x07,0xC1,0xF0,
(0051) 0xFE,0xFF,0xFF,0x3F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xE7,0x07,0x03,0x01,0x00,
(0052) 0x02,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
(0053) 0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x1F,0x3F,0x1F,0x07,0x00,0x00,0x02,0x03,0x03,
(0054) 0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00
(0055) };
(0056) 
(0057) const unsigned char HZK[][24]={
(0058) //我
(0059) 	{0x8A,0x8A,0x4A,0xFE,0x49,0x28,0x7F,0x88,0x49,0x2A,0x08,0x00,0x00,0x04,0x04,0x07,0x02,0x02,0x01,0x01,0x02,0x04,0x07,0x00},
(0060) //爱
(0061) 	{0x18,0x2A,0x2A,0x2E,0xFA,0xAE,0xA9,0xAD,0xAB,0x29,0x18,0x00,0x04,0x04,0x02,0x05,0x05,0x02,0x02,0x05,0x04,0x04,0x04,0x00},
(0062) //测
(0063) 	{0x89,0xF2,0x00,0xFF,0x01,0xF9,0xFF,0x00,0xFC,0x00,0xFF,0x00,0x00,0x07,0x04,0x04,0x02,0x01,0x02,0x04,0x01,0x04,0x07,0x00},
(0064) //试
(0065) 	{0x11,0xF6,0x00,0x04,0x24,0xE4,0x24,0x24,0xFF,0x05,0x06,0x00,0x00,0x07,0x02,0x01,0x02,0x03,0x01,0x01,0x01,0x02,0x07,0x00},
(0066) //程
(0067) 	{0x8A,0x6A,0xFF,0x49,0x20,0xAF,0xA9,0xE9,0xA9,0xAF,0x20,0x00,0x01,0x00,0x07,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x00},
(0068) //序
(0069) 	{0x00,0xFE,0x42,0x4A,0x4A,0x5B,0xEA,0x5A,0x4A,0xC2,0x42,0x00,0x06,0x01,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00},
(0070) //电
(0071) 	{0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00},
(0072) //子
(0073) 	{0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00},
(0074) //制
(0075) 	{0x18,0xD6,0x54,0xFF,0x54,0x56,0xD4,0x00,0xFC,0x00,0xFF,0x00,0x00,0x03,0x00,0x07,0x00,0x02,0x03,0x00,0x04,0x04,0x07,0x00},
(0076) //作
(0077) 	{0x10,0x08,0xFC,0x13,0x08,0x04,0xFF,0x24,0x24,0x24,0x04,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x07,0x01,0x01,0x01,0x01,0x00},
(0078) 	};
(0079) 
(0080) /**********************************
(0081)  6 x 8 font
(0082)  1 pixel space at left and bottom
(0083)  index = ASCII - 32
(0084) ***********************************/
(0085) const unsigned char font6x8[][6] =
(0086) {
(0087)     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },   // sp
(0088)     { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !
(0089)     { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },   // "
(0090)     { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #
(0091)     { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // $
(0092)     { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },   // %
(0093)     { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },   // &
(0094)     { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },   // '
(0095)     { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },   // (
(0096)     { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },   // )
(0097)     { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *
(0098)     { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +
(0099)     { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },   // ,
(0100)     { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },   // -
(0101)     { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },   // .
(0102)     { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },   // /
(0103)     { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0
(0104)     { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1
(0105)     { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2
(0106)     { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3
(0107)     { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4
(0108)     { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5
(0109)     { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6
(0110)     { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7
(0111)     { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8
(0112)     { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9
(0113)     { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },   // :
(0114)     { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;
(0115)     { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },   // <
(0116)     { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },   // =
(0117)     { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },   // >
(0118)     { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?
(0119)     { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },   // @
(0120)     { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },   // A
(0121)     { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B
(0122)     { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C
(0123)     { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D
(0124)     { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E
(0125)     { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F
(0126)     { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G
(0127)     { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H
(0128)     { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I
(0129)     { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J
(0130)     { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K
(0131)     { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L
(0132)     { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M
(0133)     { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N
(0134)     { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O
(0135)     { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P
(0136)     { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q
(0137)     { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R
(0138)     { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },   // S
(0139)     { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T
(0140)     { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U
(0141)     { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V
(0142)     { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W
(0143)     { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },   // X
(0144)     { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y
(0145)     { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z
(0146)     { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [
(0147)     { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55
(0148)     { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
(0149)     { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^
(0150)     { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },   // _
(0151)     { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },   // '
(0152)     { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },   // a
(0153)     { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b
(0154)     { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },   // c
(0155)     { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },   // d
(0156)     { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },   // e
(0157)     { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f
(0158)     { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },   // g
(0159)     { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h
(0160)     { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i
(0161)     { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },   // j
(0162)     { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k
(0163)     { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l
(0164)     { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m
(0165)     { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n
(0166)     { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },   // o
(0167)     { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },   // p
(0168)     { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },   // q
(0169)     { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r
(0170)     { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },   // s
(0171)     { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t
(0172)     { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u
(0173)     { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v
(0174)     { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w
(0175)     { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },   // x
(0176)     { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },   // y
(0177)     { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z
(0178)     { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }    // horiz lines
(0179) };
(0180) 
(0181) void LCD_init(void);
(0182) void LCD_clear(void);
(0183) void delay_1us(void); 
(0184) void LCD_set_XY(unsigned char x,unsigned char y);
(0185) void LCD_write_char(unsigned char c);
(0186) void LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
(0187) void LCD_write_chinese_string(unsigned char X, unsigned char Y,unsigned char ch_with,unsigned char num,unsigned char line,unsigned char row);
(0188) void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,unsigned char Pix_x,unsigned char Pix_y);
(0189) void LCD_write_byte(unsigned char dat, unsigned char command);
(0190) 
(0191) /******************************************/ 
(0192) void LCD_init(void)
(0193) {
(0194)     //先设置为输出
(0195)     SETBIT(LCD_DIR,SCLK);
_LCD_init:
    00278 9AA1      SBI	0x14,1
(0196)     SETBIT(LCD_DIR,SDIN);
    00279 9AA2      SBI	0x14,2
(0197)     SETBIT(LCD_DIR,LCD_DC);
    0027A 9AA3      SBI	0x14,3
(0198)     SETBIT(LCD_DIR,LCD_CE);
    0027B 9AA5      SBI	0x14,5
(0199)     SETBIT(LCD_DIR,LCD_RST);
    0027C 9AA4      SBI	0x14,4
(0200) 	  
(0201)     // 产生一个让LCD复位的低电平脉冲
(0202) 	CLEARBIT(LCD_PORT,LCD_RST);//LCD_RST = 0;
    0027D 98AC      CBI	0x15,4
(0203)     delay_1us();
    0027E D031      RCALL	_delay_1us
(0204) 	SETBIT(LCD_PORT,LCD_RST);//LCD_RST = 1;
    0027F 9AAC      SBI	0x15,4
(0205)     
(0206) 	// 关闭LCD
(0207) 	CLEARBIT(LCD_PORT,LCD_CE);//LCD_CE = 0;
    00280 98AD      CBI	0x15,5
(0208)     delay_1us();
    00281 D02E      RCALL	_delay_1us
(0209) 	
(0210) 	// 使能LCD
(0211) 	SETBIT(LCD_PORT,LCD_CE);//LCD_CE = 1;
    00282 9AAD      SBI	0x15,5
(0212)     delay_1us();
    00283 D02C      RCALL	_delay_1us
(0213) 
(0214)     LCD_write_byte(0x21, 0);	// 使用扩展命令设置LCD模式
    00284 2722      CLR	R18
    00285 E201      LDI	R16,0x21
    00286 D0FE      RCALL	_LCD_write_byte
(0215)     LCD_write_byte(0xc8, 0);	// 设置偏置电压
    00287 2722      CLR	R18
    00288 EC08      LDI	R16,0xC8
    00289 D0FB      RCALL	_LCD_write_byte
(0216)     LCD_write_byte(0x06, 0);	// 温度校正
    0028A 2722      CLR	R18
    0028B E006      LDI	R16,6
    0028C D0F8      RCALL	_LCD_write_byte
(0217)     LCD_write_byte(0x13, 0);	// 1:48
    0028D 2722      CLR	R18
    0028E E103      LDI	R16,0x13
    0028F D0F5      RCALL	_LCD_write_byte
(0218)     LCD_write_byte(0x20, 0);	// 使用基本命令
    00290 2722      CLR	R18
    00291 E200      LDI	R16,0x20
    00292 D0F2      RCALL	_LCD_write_byte
(0219)     LCD_clear();	            // 清屏
    00293 D005      RCALL	_LCD_clear
(0220)     LCD_write_byte(0x0c, 0);	// 设定显示模式,正常显示
    00294 2722      CLR	R18
    00295 E00C      LDI	R16,0xC
    00296 D0EE      RCALL	_LCD_write_byte
(0221)         
(0222)     // 关闭LCD
(0223)     CLEARBIT(LCD_PORT,LCD_CE);  //LCD_CE = 0;
    00297 98AD      CBI	0x15,5
    00298 9508      RET
_LCD_clear:

⌨️ 快捷键说明

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