3310 LCD MẪU PROTEUS MẪU CCS ỨNG DỤNG PICBASIC

3310 LCD MẪU PROTEUS MẪU CCS ỨNG DỤNG PICBASIC


Nó là tốt để đánh giá điện thoại cũ cho công việc này, đó là độc đáo thực hiện với Nokia điện thoại LCD :) Các tập tin mô hình proteus cho loại công việc có thể làm việc cho bạn
Có hai ứng dụng cấp doanh số Lưu ý cho CCS được triển khai với PIC16F877 trong hai
go6o diyorki: 
Nếu bạn không có Proteus 6.3 SP1 được cài đặt trên hệ thống của bạn, hãy chọn tệp schema.sec bằng cách nhấp vào phần nhập từ trình đơn tệp isis để lược đồ 
sẽ hoạt động trong các phiên bản cũ hơn .
Nokia3310 Proteus Mô hình tập tin mô phỏng mẫu 3310 LCD mẫu Proteus mẫu Ccs ứng dụng PICBasic
Tải xuống tệp LINK danh sách (ở định dạng TXT) link1578.zip mật khẩu-pass: 320volt.com
Thư viện LPH7779-LCD (Nokia 3310)
////////////////////////////////////////////////// //////////////////////////////
/ *
                     Thư viện LPH7779-LCD (Nokia 3310)
* /
////////////////////////////////////////////////// //////////////////////////////

#bit nok_sclk = lcdport.5 // RB5
#bit nok_sda = lcdport.6 // RB6
#bit nok_dc = lcdport.7 // RB7
# bit nok_cs = lcdport.0 // RB0
# bit nok_res = lcdport.1 // RB1

char CONST TABLE5 [240] = {  // ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
                  0x00,0x00,0x00,0x00,0x00,	// 20 space
						0x00,0x00,0x5f,0x00,0x00,	// 21 !
						0x00,0x07,0x00,0x07,0x00,	// 22 "
						0x14,0x7f,0x14,0x7f,0x14,	// 23 #
						0x24,0x2a,0x7f,0x2a,0x12,	// 24 $
						0x23,0x13,0x08,0x64,0x62,	// 25 %
						0x36,0x49,0x55,0x22,0x50,	// 26 &
						0x00,0x05,0x03,0x00,0x00,	// 27 '
						0x00,0x1c,0x22,0x41,0x00,	// 28 (
						0x00,0x41,0x22,0x1c,0x00,	// 29 )
						0x14,0x08,0x3e,0x08,0x14,	// 2a *
						0x08,0x08,0x3e,0x08,0x08,	// 2b +
						0x00,0x50,0x30,0x00,0x00,	// 2c ,
						0x08,0x08,0x08,0x08,0x08,	// 2d -
						0x00,0x60,0x60,0x00,0x00,	// 2e .
						0x20,0x10,0x08,0x04,0x02,	// 2f /
						0x3e,0x51,0x49,0x45,0x3e,	// 30 0
						0x00,0x42,0x7f,0x40,0x00,	// 31 1
						0x42,0x61,0x51,0x49,0x46,	// 32 2
						0x21,0x41,0x45,0x4b,0x31,	// 33 3
						0x18,0x14,0x12,0x7f,0x10,	// 34 4
						0x27,0x45,0x45,0x45,0x39,	// 35 5
						0x3c,0x4a,0x49,0x49,0x30,	// 36 6
						0x01,0x71,0x09,0x05,0x03,	// 37 7
						0x36,0x49,0x49,0x49,0x36,	// 38 8
						0x06,0x49,0x49,0x29,0x1e,	// 39 9
						0x00,0x36,0x36,0x00,0x00,	// 3a :
						0x00,0x56,0x36,0x00,0x00,	// 3b ;
						0x08,0x14,0x22,0x41,0x00,	// 3c <
						0x14,0x14,0x14,0x14,0x14,	// 3d =
						0x00,0x41,0x22,0x14,0x08,	// 3e >
						0x02,0x01,0x51,0x09,0x06,	// 3f ?
						0x32,0x49,0x79,0x41,0x3e,	// 40 @
						0x7e,0x11,0x11,0x11,0x7e,	// 41 A
						0x7f,0x49,0x49,0x49,0x36,	// 42 B
						0x3e,0x41,0x41,0x41,0x22,	// 43 C
						0x7f,0x41,0x41,0x22,0x1c,	// 44 D
						0x7f,0x49,0x49,0x49,0x41,	// 45 E
						0x7f,0x09,0x09,0x09,0x01,	// 46 F
						0x3e,0x41,0x49,0x49,0x7a,	// 47 G
						0x7f,0x08,0x08,0x08,0x7f,	// 48 H
						0x00,0x41,0x7f,0x41,0x00,	// 49 I
						0x20,0x40,0x41,0x3f,0x01,	// 4a J
						0x7f,0x08,0x14,0x22,0x41,	// 4b K
						0x7f,0x40,0x40,0x40,0x40,	// 4c L
						0x7f,0x02,0x0c,0x02,0x7f,	// 4d M
						0x7f,0x04,0x08,0x10,0x7f,	// 4e N
						0x3e,0x41,0x41,0x41,0x3e};	// 4f O

char CONST TABLE6 [240] = {
                  0x7f,0x09,0x09,0x09,0x06,	// 50 P
						0x3e,0x41,0x51,0x21,0x5e,	// 51 Q
						0x7f,0x09,0x19,0x29,0x46,	// 52 R
						0x46,0x49,0x49,0x49,0x31,	// 53 S
						0x01,0x01,0x7f,0x01,0x01,	// 54 T
						0x3f,0x40,0x40,0x40,0x3f,	// 55 U
						0x1f,0x20,0x40,0x20,0x1f,	// 56 V
						0x3f,0x40,0x38,0x40,0x3f,	// 57 W
						0x63,0x14,0x08,0x14,0x63,	// 58 X
						0x07,0x08,0x70,0x08,0x07,	// 59 Y
						0x61,0x51,0x49,0x45,0x43,	// 5a Z
						0x00,0x7f,0x41,0x41,0x00,	// 5b [
						0x02,0x04,0x08,0x10,0x20,	// 5c \
						0x00,0x41,0x41,0x7f,0x00,	// 5d ñ
						0x04,0x02,0x01,0x02,0x04,	// 5e ^
						0x40,0x40,0x40,0x40,0x40,	// 5f _
						0x00,0x01,0x02,0x04,0x00,	// 60 `
						0x20,0x54,0x54,0x54,0x78,	// 61 a
						0x7f,0x48,0x44,0x44,0x38,	// 62 b
						0x38,0x44,0x44,0x44,0x20,	// 63 c
						0x38,0x44,0x44,0x48,0x7f,	// 64 d
						0x38,0x54,0x54,0x54,0x18,	// 65 e
						0x08,0x7e,0x09,0x01,0x02,	// 66 f
						0x0c,0x52,0x52,0x52,0x3e,	// 67 g
						0x7f,0x08,0x04,0x04,0x78,	// 68 h
						0x00,0x44,0x7d,0x40,0x00,	// 69 i
						0x20,0x40,0x44,0x3d,0x00,	// 6a j
						0x7f,0x10,0x28,0x44,0x00,	// 6b k
						0x00,0x41,0x7f,0x40,0x00,	// 6c l
						0x7c,0x04,0x18,0x04,0x78,	// 6d m
						0x7c,0x08,0x04,0x04,0x78,	// 6e n
						0x38,0x44,0x44,0x44,0x38,	// 6f o
						0x7c,0x14,0x14,0x14,0x08,	// 70 p
						0x08,0x14,0x14,0x18,0x7c,	// 71 q
						0x7c,0x08,0x04,0x04,0x08,	// 72 r
						0x48,0x54,0x54,0x54,0x20,	// 73 s
						0x04,0x3f,0x44,0x40,0x20,	// 74 t
						0x3c,0x40,0x40,0x20,0x7c,	// 75 u
						0x1c,0x20,0x40,0x20,0x1c,	// 76 v
						0x3c,0x40,0x30,0x40,0x3c,	// 77 w
						0x44,0x28,0x10,0x28,0x44,	// 78 x
						0x0c,0x50,0x50,0x50,0x3c,	// 79 y
						0x44,0x64,0x54,0x4c,0x44,	// 7a z
						0x00,0x08,0x36,0x41,0x00,	// 7b {
						0x00,0x00,0x7f,0x00,0x00,	// 7c |
						0x00,0x41,0x36,0x08,0x00,	// 7d }
						0x10,0x08,0x08,0x10,0x08,	// 7e ~
						0x78,0x46,0x41,0x46,0x78};	// 7f ¦

			// 7e,43,40,43,7e --> Ü
         // 7e,43,42,43,7e --> Ö
         // 1e,21,21,71,21 --> Ç
         // 3c,42,53,53,72 --> Ğ

//function prototypes
void 	nokia_init();
void 	nokia_write_command(char bytefornokia_command);
void 	nokia_write_data(char bytefornokia_data);
void 	nokia_write_dorc(char bytefornokia);
void 	nokia_gotoxy(char xnokia, char ynokia);
void  nokia_contrast (byte contrast);
void  nokia_printchar(char cvar);
void 	nokia_clean_ddram();
void 	table_to_nokialcd();
void  LcdPixel (char x, char y);

char char_row,charsel,charpos,chardata;
int16 ddram;

void nokia_init() {
   nok_dc=1;            // bytes are stored in the display data ram, address counter, incremented automatically
   nok_cs=1;            // chip disabled
   delay_us(200);

   nok_res=0;
   delay_ms(10);
   nok_res=1;

   nokia_write_command(0x21); // set extins extended instruction set
   nokia_write_command(0xc8); // Vop  v1: 0xc8 (for 3V), v2: 0xa0 (for 3V)
   nokia_write_command(0x13); // bias
   nokia_write_command(0x20); // horizontal mode from left to right, X axe are incremented automatically,
                              // 0x22 for vertical addressing, back on normal instruction set too
   nokia_write_command(0x09); // all on

   delay_ms(50);

   nokia_clean_ddram();       // reset DDRAM, otherwise the lcd is blurred with random pixels

   delay_ms(10);

   nokia_write_command(0x08); // mod control blank change (all off)
   delay_ms(10);

   nokia_write_command(0x0c); // mod control normal change
}

void nokia_clean_ddram() {
   nokia_gotoxy(0,0);			// 84*6=504		clear LCD
   for (ddram=504; ddram>0; ddram--)
      nokia_write_data(0x00);
}

void nokia_write_command(char bytefornokia_command)
{
   nok_dc=0;	// byte is a command it is read with the eight SCLK pulse
   nok_cs=0;	// chip enabled
   nokia_write_dorc(bytefornokia_command);
   nok_cs=1;	// chip disabled
}

void nokia_write_data(char bytefornokia_data)
{
   nok_dc=1;
   nok_cs=0;	// chip enabled
   nokia_write_dorc(bytefornokia_data);
   nok_cs=1;	// chip disabled
}

void nokia_write_dorc(char bytefornokia) {		// serial write data or command subroutine
   char caa;
   for (caa=8;caa>0;caa--)
      {
   		nok_sclk=0;
   		delay_us(2);
   		if ((bytefornokia&0x80)==0)
            nok_sda=0;
   		else
            nok_sda=1;
   		nok_sclk=1;
         delay_us(2);
   		bytefornokia = bytefornokia << 1;
   	}
}

void nokia_gotoxy(char xnokia, char ynokia) {   // Nokia LCD 3310 Position cursor
   nokia_write_command(0x40|(ynokia&0x07));     // Y axe initialisation: 0100 0yyy
   nokia_write_command(0x80|(xnokia&0x7f));     // X axe initialisation: 1xxx xxxx
}

void nokia_contrast (char contrast) {
    nokia_write_command(0x21);                  // LCD Extended Commands.
    nokia_write_command(0x80 | contrast);       // Set LCD Vop (Contrast).
    nokia_write_command(0x20);                  // LCD Standard Commands, horizontal addressing mode.
}

void nokia_printchar(char cvar) {					// Write 1 character to LCD
   charsel=cvar;
   table_to_nokialcd();
}

void table_to_nokialcd() {                      // extract ascii from tables & write to LCD
   if (charsel<0x20 charsel="" if="" return="">0x7f) return;

   for (char_row=0;char_row<5 char_row="" charpos="(((charsel&0xff)-0x20)*5);chardata=TABLE5[(charpos+char_row)];}" charsel="" if="" table5="" use="" x50="">0x4f){charpos=(((charsel&0xff)-0x50)*5);chardata=TABLE6[(charpos+char_row)];}	// use TABLE6

      	nokia_write_dat A (CharData); // gửi dữ liệu đến nokia
      }
      	nokia_write_dat A (0x00); // 1 byte (luôn trống)
}

void LcdPixel (char x, char y) {
    bù đắp int16;
    dữ liệu byte;

    nếu (x> 84) trả lại;
    nếu (y> 48) trả lại;

    offset = y - ((y / 8) * 8) - 1;
    data = (0x01 << offset);

    nokia_gotoxy (x, (y / 6));
    nokia_write_dat sự (dữ liệu);
}
Thư viện Nokia 3310 PICBASIC
@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_on
@ DEVICE pic16F877A, PWRT_off
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, HS_OSC
'Bao gồm' Modedefs.Bas " 
'TrisCl = 0
TRISD = 0
"Tris = 0
"Tris = 0                   
'TRISB = 0
OPTION_REG.7 = TẤT CẢ CÁC HỦY LỢI
ADCON1 = 7                       



      DEFINE OSC 20
'3310 định nghĩa lcd  
      DC YES PortB.4
      DTA YES PortB.3
      RST VAR PortB.5

Post a Comment

[disqus] [facebook] [blogger]

MKRdezign

Biểu mẫu liên hệ

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget
Hỗ trợ trực tuyến