亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? ATMEGA8+LM358-125KHzRFID讀卡程序。 功能穩定。 11.0592MHz.不需74X4060。
?? C
?? 第 1 頁 / 共 2 頁
字號:
//包含所需頭文件
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <util/delay.h>

/*------宏定義------*/
#define uchar	unsigned char
#define uint	unsigned int
#define BIT(x)	(1<<(x))

#define good 	0
#define odd_parity_error 	1
#define decode_error		2
#define last_bit_error		3
#define nofind_start		4
#define col_parity_error	5


#define lcd_data_ddr	DDRD
#define lcd_data_port	PORTD
#define lcd_data_pin	PIND

#define lcd_cs1			PB5
#define lcd_cs1_ddr		DDRB
#define lcd_cs1_port	PORTB
#define lcd_cs1_pin		PINB

#define lcd_cs2			PB1
#define lcd_cs2_ddr		DDRB
#define lcd_cs2_port	PORTB
#define lcd_cs2_pin		PINB

#define lcd_rw			PB2
#define lcd_rw_ddr		DDRB
#define lcd_rw_port		PORTB
#define lcd_rw_pin		PINB

#define lcd_a0			PB4
#define lcd_a0_ddr		DDRB
#define lcd_a0_port		PORTB
#define lcd_a0_pin		PINB

#define LCD_CMD_COL  0x00
#define LCD_CMD_PAGE 0xb8
#define LCD_LEFT 0
#define LCD_TOP  0
#define LCD_RIGHT 127
#define LCD_BOTTOM 31

#define adc_on  ADCSRA |= (1 << ADSC);
#define adc_off ADCSRA &= ~(1 << ADSC);

#define ENGLISHCHARDOTSIZE 16
#define ENGLISHCHARSIZE 8
#define CHINESECHARDOTSIZE 32
#define CHINESECHARSIZE 16
#define CHINESECHARNUMBER 4

prog_char EnglishCharDot[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",32*/
0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",33*/
0x00,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x00,0x00,/*""",34*/
0x40,0x04,0xC0,0x3F,0x78,0x04,0x40,0x04,0xC0,0x3F,0x78,0x04,0x40,0x04,0x00,0x00,/*"#",35*/
0x00,0x00,0x70,0x18,0x88,0x20,0xFC,0xFF,0x08,0x21,0x30,0x1E,0x00,0x00,0x00,0x00,/*"$",36*/
0xF0,0x00,0x08,0x21,0xF0,0x1C,0x00,0x03,0xE0,0x1E,0x18,0x21,0x00,0x1E,0x00,0x00,/*"%",37*/
0x00,0x1E,0xF0,0x21,0x08,0x23,0x88,0x24,0x70,0x19,0x00,0x27,0x00,0x21,0x00,0x10,/*"&",38*/
0x10,0x00,0x16,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"'",39*/
0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x00,0x00,/*"(",40*/
0x00,0x00,0x02,0x40,0x04,0x20,0x18,0x18,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,/*")",41*/
0x40,0x02,0x40,0x02,0x80,0x01,0xF0,0x0F,0x80,0x01,0x40,0x02,0x40,0x02,0x00,0x00,/*"*",42*/
0x00,0x01,0x00,0x01,0x00,0x01,0xF0,0x1F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,/*"+",43*/
0x00,0x80,0x00,0xB0,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*",",44*/
0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,/*"-",45*/
0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*".",46*/
0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x80,0x01,0x60,0x00,0x18,0x00,0x04,0x00,/*"/",47*/
0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*"0",48*/
0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"1",49*/
0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,/*"2",50*/
0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,/*"3",51*/
0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,/*"4",52*/
0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00,/*"5",53*/
0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,/*"6",54*/
0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00,/*"7",55*/
0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00,/*"8",56*/
0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00,/*"9",57*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00,/*":",58*/
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*";",59*/
0x00,0x00,0x00,0x01,0x80,0x02,0x40,0x04,0x20,0x08,0x10,0x10,0x08,0x20,0x00,0x00,/*"<",60*/
0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x00,0x00,/*"=",61*/
0x00,0x00,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,0x00,0x01,0x00,0x00,/*">",62*/
0x00,0x00,0x70,0x00,0x48,0x00,0x08,0x30,0x08,0x36,0x08,0x01,0xF0,0x00,0x00,0x00,/*"?",63*/
0xC0,0x07,0x30,0x18,0xC8,0x27,0x28,0x24,0xE8,0x23,0x10,0x14,0xE0,0x0B,0x00,0x00,/*"@",64*/
0x00,0x20,0x00,0x3C,0xC0,0x23,0x38,0x02,0xE0,0x02,0x00,0x27,0x00,0x38,0x00,0x20,/*"A",65*/
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00,/*"B",66*/
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00,/*"C",67*/
0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*"D",68*/
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0xE8,0x23,0x08,0x20,0x10,0x18,0x00,0x00,/*"E",69*/
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0xE8,0x03,0x08,0x00,0x10,0x00,0x00,0x00,/*"F",70*/
0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x22,0x38,0x1E,0x00,0x02,0x00,0x00,/*"G",71*/
0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/*"H",72*/
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00,/*"I",73*/
0x00,0xC0,0x00,0x80,0x08,0x80,0x08,0x80,0xF8,0x7F,0x08,0x00,0x08,0x00,0x00,0x00,/*"J",74*/
0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,0x28,0x26,0x18,0x38,0x08,0x20,0x00,0x00,/*"K",75*/
0x08,0x20,0xF8,0x3F,0x08,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x30,0x00,0x00,/*"L",76*/
0x08,0x20,0xF8,0x3F,0xF8,0x00,0x00,0x3F,0xF8,0x00,0xF8,0x3F,0x08,0x20,0x00,0x00,/*"M",77*/
0x08,0x20,0xF8,0x3F,0x30,0x20,0xC0,0x00,0x00,0x07,0x08,0x18,0xF8,0x3F,0x08,0x00,/*"N",78*/
0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/*"O",79*/
0x08,0x20,0xF8,0x3F,0x08,0x21,0x08,0x01,0x08,0x01,0x08,0x01,0xF0,0x00,0x00,0x00,/*"P",80*/
0xE0,0x0F,0x10,0x18,0x08,0x24,0x08,0x24,0x08,0x38,0x10,0x50,0xE0,0x4F,0x00,0x00,/*"Q",81*/
0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0x88,0x03,0x88,0x0C,0x70,0x30,0x00,0x20,/*"R",82*/
0x00,0x00,0x70,0x38,0x88,0x20,0x08,0x21,0x08,0x21,0x08,0x22,0x38,0x1C,0x00,0x00,/*"S",83*/
0x18,0x00,0x08,0x00,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x00,0x18,0x00,0x00,0x00,/*"T",84*/
0x08,0x00,0xF8,0x1F,0x08,0x20,0x00,0x20,0x00,0x20,0x08,0x20,0xF8,0x1F,0x08,0x00,/*"U",85*/
0x08,0x00,0x78,0x00,0x88,0x07,0x00,0x38,0x00,0x0E,0xC8,0x01,0x38,0x00,0x08,0x00,/*"V",86*/
0xF8,0x03,0x08,0x3C,0x00,0x07,0xF8,0x00,0x00,0x07,0x08,0x3C,0xF8,0x03,0x00,0x00,/*"W",87*/
0x08,0x20,0x18,0x30,0x68,0x2C,0x80,0x03,0x80,0x03,0x68,0x2C,0x18,0x30,0x08,0x20,/*"X",88*/
0x08,0x00,0x38,0x00,0xC8,0x20,0x00,0x3F,0xC8,0x20,0x38,0x00,0x08,0x00,0x00,0x00,/*"Y",89*/
0x10,0x20,0x08,0x38,0x08,0x26,0x08,0x21,0xC8,0x20,0x38,0x20,0x08,0x18,0x00,0x00,/*"Z",90*/
0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x02,0x40,0x02,0x40,0x02,0x40,0x00,0x00,/*"[",91*/
0x00,0x00,0x0C,0x00,0x30,0x00,0xC0,0x01,0x00,0x06,0x00,0x38,0x00,0xC0,0x00,0x00,/*"\",92*/
0x00,0x00,0x02,0x40,0x02,0x40,0x02,0x40,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*"]",93*/
0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x00,0x00,/*"^",94*/
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,/*"_",95*/
0x00,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"`",96*/
0x00,0x00,0x00,0x19,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x3F,0x00,0x20,/*"a",97*/
0x08,0x00,0xF8,0x3F,0x00,0x11,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00,/*"b",98*/
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x00,/*"c",99*/
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x88,0x10,0xF8,0x3F,0x00,0x20,/*"d",100*/
0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/*"e",101*/
0x00,0x00,0x80,0x20,0x80,0x20,0xF0,0x3F,0x88,0x20,0x88,0x20,0x88,0x00,0x18,0x00,/*"f",102*/
0x00,0x00,0x00,0x6B,0x80,0x94,0x80,0x94,0x80,0x94,0x80,0x93,0x80,0x60,0x00,0x00,/*"g",103*/
0x08,0x20,0xF8,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20,/*"h",104*/
0x00,0x00,0x80,0x20,0x98,0x20,0x98,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"i",105*/
0x00,0x00,0x00,0xC0,0x00,0x80,0x80,0x80,0x98,0x80,0x98,0x7F,0x00,0x00,0x00,0x00,/*"j",106*/
0x08,0x20,0xF8,0x3F,0x00,0x24,0x00,0x02,0x80,0x2D,0x80,0x30,0x80,0x20,0x00,0x00,/*"k",107*/
0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/*"l",108*/
0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x00,0x80,0x3F,0x80,0x20,0x80,0x00,0x00,0x3F,/*"m",109*/
0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20,/*"n",110*/
0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/*"o",111*/
0x80,0x80,0x80,0xFF,0x00,0xA1,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00,/*"p",112*/
0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0xA0,0x80,0xFF,0x00,0x80,/*"q",113*/
0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x00,0x80,0x01,0x00,0x00,/*"r",114*/
0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00,/*"s",115*/
0x00,0x00,0x80,0x00,0x80,0x00,0xE0,0x1F,0x80,0x20,0x80,0x20,0x00,0x00,0x00,0x00,/*"t",116*/
0x80,0x00,0x80,0x1F,0x00,0x20,0x00,0x20,0x00,0x20,0x80,0x10,0x80,0x3F,0x00,0x20,/*"u",117*/
0x80,0x00,0x80,0x01,0x80,0x0E,0x00,0x30,0x00,0x08,0x80,0x06,0x80,0x01,0x80,0x00,/*"v",118*/
0x80,0x0F,0x80,0x30,0x00,0x0C,0x80,0x03,0x00,0x0C,0x80,0x30,0x80,0x0F,0x80,0x00,/*"w",119*/
0x00,0x00,0x80,0x20,0x80,0x31,0x00,0x2E,0x80,0x0E,0x80,0x31,0x80,0x20,0x00,0x00,/*"x",120*/
0x80,0x80,0x80,0x81,0x80,0x8E,0x00,0x70,0x00,0x18,0x80,0x06,0x80,0x01,0x80,0x00,/*"y",121*/
0x00,0x00,0x80,0x21,0x80,0x30,0x80,0x2C,0x80,0x22,0x80,0x21,0x80,0x30,0x00,0x00,/*"z",122*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x3F,0x02,0x40,0x02,0x40,/*"{",123*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,/*"|",124*/
0x00,0x00,0x02,0x40,0x02,0x40,0x7C,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"}",125*/
0x00,0x00,0x06,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00 /*"~",126*/
};

prog_int16_t ChineseCode[] = {
		0xb6c1,
		0xbfa8,
		0xc6f7,
		0xbac5
};

prog_char ChineseCharDot[] = {
0x40,0x00,0x42,0x00,0xCC,0x7F,0x04,0x20,0x00,0x10,0x50,0x82,0x94,0x43,0x34,0x22,0xD4,0x12,0x1F,0x0A,0xD4,0x07,0x14,0x0A,0x54,0x12,0x34,0xE2,0x10,0x42,0x00,0x00,//讀0
0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFF,0xFF,0x44,0x00,0x44,0x02,0x44,0x04,0x44,0x0C,0x44,0x38,0x44,0x10,0x40,0x00,0x00,0x00,//卡1
0x40,0x02,0x40,0x02,0x4F,0x7E,0x49,0x45,0x49,0x45,0xC9,0x44,0xCF,0x7C,0x70,0x00,0xC0,0x7C,0xCF,0x44,0x49,0x45,0x59,0x45,0x69,0x7E,0x4F,0x06,0x00,0x02,0x00,0x00,//器2
0x40,0x00,0x40,0x00,0x40,0x00,0x5F,0x02,0xD1,0x07,0x51,0x02,0x51,0x02,0x51,0x22,0x51,0x42,0x51,0x82,0x51,0x42,0x5F,0x3E,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00 //號3
};

unsigned char Lcd_CurrentX,Lcd_CurrentY,Lcd_Mask;
unsigned char LeftMask[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};
unsigned char RightMask[]={0xff,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f};
unsigned char Mask1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char Mask2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void lcdwaitidle1(void);
void lcdwaitidle2(void);
void lcdwc1(unsigned char cmdcode);
void lcdwc2(unsigned char cmdcode);
void lcdwd1(unsigned char dispdata);
void lcdwd2(unsigned char dispdata);
unsigned char lcdrd1(void);
unsigned char lcdrd2(void);
void lcdwc(unsigned char cmdcode);
void lcdwd(unsigned char dispdata);
void lcdpos(void);
unsigned char lcdrd(void);
void lcdcursornext(void);
void displaybyte(unsigned char dispdata);
void lcdfill(unsigned char FillData);
void lcdreset(void);

void put_char(unsigned int ucdata);



void put_c(unsigned char dat);
void put_s(unsigned char *dat,unsigned char enter);
unsigned char Manchester_decode(void);

volatile unsigned char bit_array[256];
volatile unsigned char test_end = 0;
unsigned char id_code[11] = {0,0,0,0,0,0,0,0,0,0,0};

void delay_ms(unsigned int ms)
{
	while(ms--)
	{
		_delay_ms(1);
	}
}

//片1測忙
void lcdwaitidle1(void)
{
	lcd_data_port = 0xff;
	lcd_data_ddr  = 0x00;
	_delay_us(1);
	lcd_a0_port  &= ~(1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);

	lcd_rw_port  |=  (1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	
	lcd_cs1_port |=  (1 << lcd_cs1);
	lcd_cs1_ddr  |=  (1 << lcd_cs1);

	while((lcd_data_pin & 0x80) == 0x80);

	lcd_cs1_port &= ~(1 << lcd_cs1);
}

//片2測忙
void lcdwaitidle2(void)
{
	lcd_data_port = 0xff;
	lcd_data_ddr  = 0x00;
	_delay_us(1);
	lcd_a0_port  &= ~(1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);

	lcd_rw_port  |=  (1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	
	lcd_cs2_port |=  (1 << lcd_cs2);
	lcd_cs2_ddr  |=  (1 << lcd_cs2);

	while((lcd_data_pin & 0x80) == 0x80);

	lcd_cs2_port &= ~(1 << lcd_cs2);
}

//寫指令代碼到片1
void lcdwc1(unsigned char cmdcode)
{  
	lcdwaitidle1();
	
	lcd_a0_port  &= ~(1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  &= ~(1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_data_port = cmdcode;
	lcd_data_ddr  = 0xff;
	_delay_us(1);
	lcd_cs1_port |=  (1 << lcd_cs1);
	lcd_cs1_ddr  |=  (1 << lcd_cs1);
	_delay_us(1);
	lcd_cs1_port &= ~(1 << lcd_cs1);
}

//寫指令代碼到片2
void lcdwc2(unsigned char cmdcode)
{
	lcdwaitidle2();
	_delay_us(1);
	lcd_a0_port  &= ~(1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  &= ~(1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_data_port = cmdcode;
	lcd_data_ddr  = 0xff;
	_delay_us(1);
	lcd_cs2_port |=  (1 << lcd_cs2);
	lcd_cs2_ddr  |=  (1 << lcd_cs2);
	_delay_us(1);
	lcd_cs2_port &= ~(1 << lcd_cs2);
}

//寫數據到片1
void lcdwd1(unsigned char dispdata)
{
	lcdwaitidle1();
	
	lcd_a0_port  |=  (1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  &= ~(1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_data_port = dispdata;
	lcd_data_ddr  = 0xff;
	_delay_us(1);
	lcd_cs1_port |=  (1 << lcd_cs1);
	lcd_cs1_ddr  |=  (1 << lcd_cs1);
	_delay_us(1);
	lcd_cs1_port &= ~(1 << lcd_cs1);
}

//寫數據到片2
void lcdwd2(unsigned char dispdata)
{
	lcdwaitidle2();
	
	lcd_a0_port  |=  (1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  &= ~(1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_data_port = dispdata;
	lcd_data_ddr  = 0xff;
	_delay_us(1);
	lcd_cs2_port |=  (1 << lcd_cs2);
	lcd_cs2_ddr  |=  (1 << lcd_cs2);
	_delay_us(1);
	lcd_cs2_port &= ~(1 << lcd_cs2);
}

//讀片1數據
unsigned char lcdrd1(void)
{
	unsigned char i;
	lcdwaitidle1();

	lcd_data_port = 0xff;
	lcd_data_ddr  = 0x00;
	_delay_us(1);
	lcd_a0_port  |=  (1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  |=  (1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_cs1_port |=  (1 << lcd_cs1);
	lcd_cs1_ddr  |=  (1 << lcd_cs1);
	_delay_us(1);
	i = lcd_data_pin;
	_delay_us(1);
	lcd_cs1_port &= ~(1 << lcd_cs1);

	return(i);
}

//讀片2數據
unsigned char lcdrd2(void)
{
	unsigned char i;
	lcdwaitidle2();

	lcd_data_port = 0xff;
	lcd_data_ddr  = 0x00;
	_delay_us(1);
	lcd_a0_port  |=  (1 << lcd_a0);
	lcd_a0_ddr   |=  (1 << lcd_a0);
	_delay_us(1);
	lcd_rw_port  |=  (1 << lcd_rw);
	lcd_rw_ddr   |=  (1 << lcd_rw);
	_delay_us(1);
	lcd_cs2_port |=  (1 << lcd_cs2);
	lcd_cs2_ddr  |=  (1 << lcd_cs2);
	_delay_us(1);
	i = lcd_data_pin;

	lcd_cs2_port &= ~(1 << lcd_cs2);

	return(i);
}

//寫指令代碼
void lcdwc(unsigned char cmdcode)
{  if((Lcd_CurrentX)<61)
      lcdwc1(cmdcode);
   else
      lcdwc2(cmdcode);
}


//寫數據
void lcdwd(unsigned char dispdata)
{  if(Lcd_CurrentX<61)
      lcdwd1(dispdata);
   else
      lcdwd2(dispdata);
}

//內部數據地址指針定位
void lcdpos(void)
{  if(Lcd_CurrentX<61)
      lcdwc(LCD_CMD_COL|(Lcd_CurrentX&0x3f));      //設置地址列指針
   else
      lcdwc(LCD_CMD_COL|((Lcd_CurrentX-61)&0x7f));
   lcdwc(LCD_CMD_PAGE|((Lcd_CurrentY/8)&0x3));     //設置地址頁指針
}

//讀數據
unsigned char lcdrd(void)
{  unsigned char i;
   if(Lcd_CurrentX<61)
   {  i=lcdrd1();      //讀兩次
      i=lcdrd1();
   }
   else
   {  i=lcdrd2();
      i=lcdrd2();
   }
   lcdpos();
   return i;
}

//當前坐標移動到下一個點
void lcdcursornext(void)
{  Lcd_CurrentX++;
   if(Lcd_CurrentX>LCD_RIGHT)
   {  Lcd_CurrentX=LCD_LEFT;
      Lcd_CurrentY+=8;
      if(Lcd_CurrentY>LCD_BOTTOM)
         Lcd_CurrentY=LCD_TOP;
   }
}

void displaybyte(unsigned char dispdata)
{  lcdpos();         //內部數據地址指針定位
   lcdwd(dispdata);  //寫數據
   lcdcursornext();  //當前坐標移動到下一個點
}

//整屏顯示
void lcdfill(unsigned char FillData)
{  for(Lcd_CurrentX=LCD_LEFT,Lcd_CurrentY=LCD_TOP;1;)
   {  displaybyte(FillData);
      if((Lcd_CurrentX==LCD_LEFT)&&(Lcd_CurrentY==LCD_TOP))
         break;
   }
}

//初始化
void lcdreset()
{
	delay_ms(1);
   	lcdwc1(0xe2); lcdwc2(0xe2);   //復位
  	lcdwc1(0xc0); lcdwc2(0xc0);   //設置顯示初始行
  	lcdwc1(0xa0); lcdwc2(0xa0);   //設置列序方向為正向
  	lcdwc1(0xa4); lcdwc2(0xa4);   //設置顯示模式為正常顯示
  	lcdwc1(0xa9); lcdwc2(0xa9);   //設置占空比為1/32
   	lcdwc1(0xaf); lcdwc2(0xaf);   //開顯示
}

/*
LCD顯示函數
*/

void putsizeimage(unsigned char XSIZE,unsigned char YSIZE,unsigned char *s)
{
	unsigned char k,lx,ly,a1,a2,y;
	k = Lcd_CurrentY & 0x7;
	YSIZE += k;
	y = Lcd_CurrentY;
	for(lx = 0;lx < XSIZE;lx++,Lcd_CurrentX++)
	{
		for(Lcd_CurrentY = y,ly = k,a1 = 0;ly < YSIZE;s++)
      	{
      		unsigned char p;
         	//a2=*s;
			a2 = pgm_read_byte(s);
         	for(p=0;p<k;p++)
         	{
         		a2<<=1;
            	if((a1&0x80)==0x80)
            	{
            		a2++;
            	}
            	a1<<=1;
         	}
         	lcdpos();
         	p=YSIZE&0x7;
         	if(ly<8)
         	{
         		if(YSIZE<8)
            	{
            		Lcd_Mask=LeftMask[k]&RightMask[p];
               		a1=lcdrd();
               		a1&=(~Lcd_Mask);
               		a1|=(a2&Lcd_Mask);
               		lcdwd(a1);
               		ly=YSIZE;
               		Lcd_CurrentY+=YSIZE-k;
            	}
            	else
            	{
            		Lcd_Mask=LeftMask[k];
               		a1=lcdrd();
               		a1&=(~Lcd_Mask);
               		a1|=(a2&Lcd_Mask);
               		lcdwd(a1);
               		ly+=8-k;
               		Lcd_CurrentY+=8-k;
            	}
         	}
         	else if(ly>=YSIZE-p)
         	{
         		if(k>=p)
            	{
            		s--;
               		//a1=*s;
               		a1 = pgm_read_byte(s);
               		a2=0;
               		for(p=0;p<k;p++)
               		{
               			a2<<=1;
                  		if((a1&0x80)==0x80)
                  		{
                  			a2++;
                  		}
               	   		a1<<=1;
               		}
               		p=YSIZE&0x7;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女免费视频一区| 久久九九久久九九| 五月激情综合色| 欧美日韩国产精选| 蜜臀久久99精品久久久久久9 | 久久久精品综合| 国产成人av一区二区三区在线| 国产精品久久久久婷婷二区次| 91影院在线免费观看| 亚洲不卡在线观看| 精品国产第一区二区三区观看体验| 国产原创一区二区| 国产精品福利一区二区三区| 欧美影视一区在线| 麻豆精品在线观看| 国产精品免费免费| 欧美精品久久99| 成人一区在线观看| 午夜精品久久久久久不卡8050| 精品美女在线观看| 91视视频在线观看入口直接观看www| 一区二区三区久久久| 欧美大片在线观看一区| 99久久精品免费| 日本va欧美va欧美va精品| 欧美国产精品专区| 91精品在线观看入口| 粉嫩在线一区二区三区视频| 午夜一区二区三区视频| 亚洲精品一区二区三区香蕉| 91首页免费视频| 久久激情五月激情| 亚洲免费观看高清完整版在线观看熊| 337p亚洲精品色噜噜狠狠| 成人黄色a**站在线观看| 亚洲不卡一区二区三区| 国产精品乱子久久久久| 日韩丝袜情趣美女图片| 色婷婷综合视频在线观看| 久久国产剧场电影| 亚洲精品成人a在线观看| 欧美精品一区视频| 色婷婷精品久久二区二区蜜臀av | 在线亚洲一区二区| 国产伦精品一区二区三区视频青涩| 亚洲自拍都市欧美小说| 欧美激情艳妇裸体舞| 日韩欧美一级精品久久| 欧美性色黄大片| 91视频精品在这里| 国产精品一二三在| 美女视频黄免费的久久 | 日韩精品影音先锋| 欧美亚洲国产怡红院影院| jiyouzz国产精品久久| 韩国精品主播一区二区在线观看| 亚洲国产精品欧美一二99| 亚洲图片激情小说| 国产目拍亚洲精品99久久精品| 欧美一区2区视频在线观看| 欧美影片第一页| 欧美在线一二三| 色婷婷久久99综合精品jk白丝| 成人黄色在线视频| 国产传媒欧美日韩成人| 国产一区二区毛片| 久久er精品视频| 久久精品国产99| 激情五月激情综合网| 精一区二区三区| 精品一区二区免费视频| 美女www一区二区| 蜜桃在线一区二区三区| 久久草av在线| 国产又黄又大久久| 风流少妇一区二区| 国产91精品一区二区麻豆网站| 国产精品99久| 成人三级伦理片| proumb性欧美在线观看| 99国内精品久久| 一本到一区二区三区| 欧美在线观看18| 在线不卡免费欧美| 日韩精品中文字幕一区| 久久蜜桃一区二区| 久久久久九九视频| 国产精品美女一区二区三区| 亚洲人123区| 午夜一区二区三区在线观看| 免费人成在线不卡| 国产剧情一区在线| 99久久国产综合精品色伊| 99国产精品久久| 欧美亚洲禁片免费| 欧美成人免费网站| 亚洲国产精品高清| 亚洲一区二区三区中文字幕在线 | 激情图区综合网| 不卡视频一二三四| 欧美日本在线看| 久久久精品黄色| 亚洲精品中文在线影院| 午夜视黄欧洲亚洲| 国产一区三区三区| 在线视频国内一区二区| 日韩欧美中文字幕精品| 国产精品色一区二区三区| 亚洲国产精品一区二区尤物区| 在线观看国产91| 日韩一区二区三区在线视频| 日本一区二区三区dvd视频在线| 天天色综合天天| 激情国产一区二区| av电影一区二区| 337p亚洲精品色噜噜噜| 久久久久久影视| 亚洲国产婷婷综合在线精品| 麻豆精品一区二区综合av| 成人黄色软件下载| 欧美成人三级在线| 亚洲一区免费在线观看| 国产主播一区二区| 精品视频一区二区三区免费| 国产人伦精品一区二区| 舔着乳尖日韩一区| 99久久国产综合精品女不卡 | 欧美v亚洲v综合ⅴ国产v| 亚洲女女做受ⅹxx高潮| 激情综合色丁香一区二区| 91色综合久久久久婷婷| 久久午夜老司机| 天堂在线亚洲视频| 成人app软件下载大全免费| 欧美tk丨vk视频| 日本午夜精品视频在线观看| 99久久综合国产精品| 久久综合给合久久狠狠狠97色69| 亚洲国产成人91porn| 波波电影院一区二区三区| 精品盗摄一区二区三区| 五月婷婷色综合| 在线观看日韩精品| 国产精品欧美极品| 国产成人亚洲综合色影视| 精品1区2区在线观看| 亚瑟在线精品视频| 欧美色图第一页| 亚洲欧美一区二区久久| 成人免费高清在线| 欧美国产激情一区二区三区蜜月| 久久99精品久久久久久国产越南 | 欧美成va人片在线观看| 日韩精品一卡二卡三卡四卡无卡| 91亚洲国产成人精品一区二三| 国产欧美中文在线| 国产乱淫av一区二区三区| 精品国产伦理网| 久久www免费人成看片高清| 日韩免费视频一区二区| 免费在线观看不卡| 91精品国产美女浴室洗澡无遮挡| 亚洲观看高清完整版在线观看| 日本久久电影网| 一区二区三区在线免费视频| 91麻豆蜜桃一区二区三区| 亚洲天天做日日做天天谢日日欢| 成人激情小说网站| 中文字幕亚洲区| 色哦色哦哦色天天综合| 亚洲欧美精品午睡沙发| 色婷婷精品久久二区二区蜜臂av | 久久99热国产| 国产午夜一区二区三区| 国产成+人+日韩+欧美+亚洲| 国产精品视频一二三区| 成人午夜视频免费看| 中文字幕亚洲区| 欧美中文字幕亚洲一区二区va在线 | 久久日一线二线三线suv| 国产乱码字幕精品高清av| 国产午夜精品一区二区| 成人美女在线视频| 一区二区三区日韩欧美| 欧美日本韩国一区| 另类小说色综合网站| 中文字幕av不卡| 91蝌蚪porny九色| 亚洲大型综合色站| 7777精品伊人久久久大香线蕉超级流畅| 天天射综合影视| 国产午夜精品在线观看| 91看片淫黄大片一级在线观看| 亚洲成人激情社区| 日韩精品中文字幕一区二区三区| 国产精品资源网站| 亚洲一级二级三级| 2023国产一二三区日本精品2022| 99精品视频在线观看| 天天免费综合色|