46
م خدا به نا: ده ازستفای اهنما راده ازستفای اهنما راMicrocontroller 8051 Alphanumeric LCD Graphical LCD در درP P r r o o t t e e u u s s زادهن سیف اله محس[email protected]

Proteus 8051lcd

Embed Size (px)

Citation preview

Page 1: Proteus 8051lcd

:به نام خدا

راهنمای استفاده ازراهنمای استفاده از

MMiiccrrooccoonnttrroolllleerr 88005511

AAllpphhaannuummeerriicc LLCCDD GGrraapphhiiccaall LLCCDD

PPrrootteeuussدر در

محسن سیف اله زاده

[email protected]

Page 2: Proteus 8051lcd

1

مقذمهمقذمه بشادس اسخذ، خاش شای اص ایى دس احؼحاع حا طاؼ ای طاب ؼتیذ بؼیاس خؿحاا

سضایت ذی یى اص ایى ؿایذ ای دػ بتاذ دس سد باحثی و بذباؾ ؼتیذ ساحای خحبی

اص ایح لاب روش اػت و طاب پیؾ س بخـی اص ؼتذات یه پشط بد و ب اتا شػیذ بشایتا باؿذ.

اػتماد ب ایى صوات ػ آخت اػت ایح طاحب س دس ایتشحت بح اؿحتشان زاؿحت تحا س با ػایت

دیشا اص آ بشذ ؿذ.

وذ یؼی آ ذاسذ چذا 8551ای دػ بشای افشادی و آؿایی مذاتی با یىش وتشش

فیذ خاذ بد.

2/15/88ػیف ا صاد اؼ

1395دی ا 5یشایؾ

Page 3: Proteus 8051lcd

فهرستفهرست

5 .................................................................................................................................... فهرستفهرست

1 ........................................................................................................................... بخش اول :بخش اول :

Alphanumeric LCD (LCDcharacter ) ................................................................... 12کار با

19 .......................................................................................................................... بخش دوم:بخش دوم:

Graphical LCD..................................................................................................... 19کار با

35 ........................................................................................................... وتروتریی:ارتباط با کامپ:ارتباط با کامپمهمهییضمضم

42 .................................................................................................................................... منابع:منابع:

Page 4: Proteus 8051lcd

1

بخش اول :بخش اول : سا ذاسیذ شاح صیش سا طی ویذ. Proteusپغ اص لب ش افضاس دس كستی و آؿایی لبی با

سا فـاس دیذ سا سی ححشف Pوشد ػپغ حشف ویه Component Modeدس ی ابضاس سی آیى

P ـا داد ؿذ دس ؿى ویه ویذ دس پدشPick Device ظحاش خاحذ ؿحذ دس پدحش حزوس دس

و ای ػای سا Categoryا ػی سد ظشتا سا اسد ویذ بشای ایىاس یتایذ Keywordsلؼت

سا اتخحا AND,LogicState,LogicProb ثا ا ػ ػحی دػت بذی وشد اػتفاد ویذ. دس ای

وشد ای.

-01‏ شکل

-02‏ شکل

Page 5: Proteus 8051lcd

2

-03‏ شکل

حای سی كحفا یتایحذ تیدح سا LogicStateا اخشاػحت بحا ویحه سی حا و ؿبی ػاصی دس ح

بشسػی ویذ.

حات آحشا تیییحش LogicStateتخ داؿت باؿیذ بشای ایى بتایذ با ویه وشد سی یه ػی اذ

لشاس داؿت باؿذ. Selectدیذ بایذ یچ وذا اص ػای دس حات

-04‏ شکل

اخشای بشا سا تلف ویذ.

ساػت ویه سی ش وذا اص ػای یتایذ آشا حزف ویذ.با دباس

Page 6: Proteus 8051lcd

3

یؼت ابضاستا اضاف ویذ. اػب چاس پای ای سا ب 7segی: یه بشپیؾ حا وی خ تش

-05‏ شکل

7seg سا سی كفا اكی آسد ش چاس پای آشا ب یهLogicState . ك ویذ

باس دیش بشا سا اخشا وشد تید سا بشسػی ویذ.

-06‏ شکل

وشد اتخا ضی ا خد دس آ یتایحذ تخ داؿت باؿیذ بؼذ اص اتخا یه ػی با ساػت ویه

حات چشخؾ ػاػت شد یا پاد ػاػت شد داؿت باؿیذ یا تیییش ضؼیت آی سا سی آ اػا ویذ.

یابش اػبی بشای ایىاس اػت. '-' '+'فـاس داد ویذ

-07‏ شکل

ه ا ختش پیؾ بشی.بیایذ ی

Page 7: Proteus 8051lcd

4

اص وح یتایحذ بحشای خؼحتدی ػحشیؼتش ) ب دػح ابضاستحا اضحاف ویحذ 8551یه یىش وتشش

80C51 .)اػتفاد ویذ

-08‏ شکل

آ كح ویحذ. P2سا بح پحست seg7ب كفا اكی بیاسد پای حای 7segیىش وتشش سا ب شا

دلت ویذ و پای ا اػب ك ؿذ باؿذ یؼی پای و اسصؽ ب پی و اسصؽ ...

سا ب خای كح ویحذ احا دس RST پای XTAL1,XTAL2ضشستی ذاسد و پای ای Proteusدس

ای بؼحذی بح ایح ؼحاو خحای حات الؼی ای پای ا بایذ بطس اػب ك ؿذ باؿذ دس بخؾ ح

پشداخت فؼال بشا ػادی بیـتش ای پای ا سا آصاد بزاسیذ.

-09‏ شکل

Page 8: Proteus 8051lcd

5

اػت. 8051ػد ىیذ حاال بت بشا یؼی بشای

تیییحش پؼحذ hexذ فایح .) بحشای تیح تیییحش دیحذ asm پؼذ آشا بح ػاخت text documentیه

تیییحش asmچذا ضشسی یؼت اا بشای ایى دس ادا ب ـىی بشخسد ىی بتش اػت پؼذ آشا بح

دیذ(

تخ داؿت باؿحیذ پش یىی. 8551سا یؼاصی. اتای آشا با وذای اػبی test.asmبابش ای فای

فاد ویذ.چی اص آدایی و ایح فایح دس استبحاا بحا حش افحضاس اػت ASCIIو حتا بایذ اص وذ بذی

Proteus .خاذ بد ضشسیؼت ای سا و بشای ای فای اتخا یىیذ حتا وتش اص ـت واسوتش باؿذ

وذا سا ب كست صیش اسد ویذ.

org 0 mov p2,#2 end

آشا تیذ ویذ. hexباؿذ بایذ فای بشای ایى وذای زوس لاب خاذ بشای یىش

ب ؼیش صیش بشیذ اػبی تاػب سا اتخا ویذ. .1

D:\Program Files\Labcenter Electronics\Proteus 7 Professional\Tools

-010‏ شکل

سا ویذ. ASEMـیذ سی بشا فای تی سا و لبال ؿت ایذ با ع و .2

-011‏ شکل

آ تیذ خاذ ؿذ. Hexدس كستی و بشا ؿا ـىی ذاؿت باؿذ فای .3

Page 9: Proteus 8051lcd

6

-012‏ شکل

سا اتخا ویذ. Edit Propertiesت ویه وشد ضی سی یىش وتشش ساػ Proteusدس بشا .4

-013‏ شکل

تیذ ؿذ سا اتخا ویذ . Hexفای Edit Componentدس پدش .5

Page 10: Proteus 8051lcd

7

-014‏ شکل

سا ویه وشد تید سا ـاذ ویذ. Run حا بشا آاد اخشاػت دو

-015‏ شکل

شاح صیش سا طی ویذ. asmاا سا ح اكی تش ای اػت و پغ اص رخیش وذ ا دس فای

سا اتخا ویذ. … Add/Remove Source filesسفت ضی Sourceب لؼت .1

Page 11: Proteus 8051lcd

8

-016‏ شکل

ویححه وححشد فایحح Newسی دوحح Add/Remove Source Code Filesدس پدححش .2

test.asm .ػپغ دس ا پدحش اص لؼحت سا اتخا ویذCode Generation Tool ضیح

ASM51 .سا اتخا ویذ

-017‏ شکل

hex lsd sdiسا اتخحا ویحذ تحا فایح Build Allسفت ضی Sourceباس دیش ب ی .3

ػاخت ؿذ.

-018‏ شکل

Page 12: Proteus 8051lcd

9

دس كستی و دػتسات ؿا بذ اؿىا باؿذ ؿى صیش سا خایذ دیذ.

-019‏ شکل

ك ویذ. 8551آشا ث لب ب hex یتایذ وذ

اسد ؿذ باؿذ با پییا صیش اخ خایذ ؿذ.اؿتبا اا اش وذای ؿا ثال ب كست صیش org 0 molv p2,#2

-020‏ شکل

اؿىاالت دػتسی ب شا ػطش آا ایؾ داد یـد.

و با ؿت صیش تیذ ؿذ ب كست اضح تش ـاذ ویذ. lstاؿىاالت یافت ؿذ سا یتایذ دس فای

آ لؼت خاف سا ػالت یضذ.

ب ـذ باؿذ ى اػت اخطاسای غیش ؼ ح داد كایح ل Proteusىت: دس كستی و ش افضاس

ؿد.

تیذ یـد وح وحذ اكحی ؿحت ؿحذ سدیحف آ دس sdiػال بش فایای روش ؿذ فایی با پؼذ

وذ ض آ سا تاػب با ایؾ یذذ. romداخ

خای داؿت mov p2,#2بشای ثا بشای دػتس 0000,75 A0 02,,mov p2,#2

^

@@@@@illegal statement syntax @@@@@

Page 13: Proteus 8051lcd

15

و دس آ:

5555 سدیف وذ دس داخrom

مذاس 75ػذدopcode دػتسmov

A0 ؿاس بایذ پستP2

ػذد اسد ؿذ ب پست 52 باالخشp2 .سا ـا یذذ

تخ داؿت باؿیذ و اش فای و بشا سا بخایذ دس واپیتش دیشی اخشا ویذ با تخ بح ایىح ؼحیش

ؿا د س ا واپیتش اؼتبش خاذ بد یاص اػحت وح ایح ؼحیشا دبحاس تظحی ویحذ. حزا بحشای ای

خیشی اص ای واس تكی یـد فایای شبا ب اػبی سا دس واس فای اكی ؿحبی ػحاصی ؿحذ تحا

لشاس دیذ تا با ای ـىالت اخ ـیذ.

. ؿحى صیحش بح ضح حافظ داخحی آ اػحت و، یبی یاد آسی الص 8551ىت دیشی و دس سد

ؼتی. بحشای رخیحش تیییحش حای داص ب اػتفاد داخی ramـا یذذ و ا اص چ لؼت ای اص

سا سػایت وی. سداحتایا بایذ ای

-021‏ شکل

آدسع بایت

RAM ظس

7F 30

78 79 7A 7B 7C 7D 7E 7F 2F

ییتش بزیع پ

دسی آ

اىا

70 71 72 73 74 75 76 77 2E

68 69 6A 6B 6C 6D 6E 6F 2D

60 61 62 63 64 65 66 67 2C

58 59 5A 5B 5C 5D 5E 5F 2B

50 51 52 53 54 55 56 57 2A

48 49 4A 4B 4C 4D 4E 4F 29

40 41 42 43 44 45 46 47 28

38 39 3A 3B 3C 3D 3E 3F 27

30 31 32 33 34 35 36 37 26

28 29 2A 2B 2C 2D 2E 2F 25

20 21 22 23 24 25 26 27 24

18 19 1A 1B 1C 1D 1E 1F 23

10 11 12 13 14 15 16 17 22

08 09 0A 0B 0C 0D 0E 0F 21

00 01 02 03 04 05 06 07 20

3باه 1F 18

2باه 17 10

1باه 0F 08

R0-R7 07 باىای ثبات پیؾ فشم بشای 00

Page 14: Proteus 8051lcd

11

-022‏ شکل

آدسع بایت آدسع بیت

FF

B F0 F1 F2 F3 F4 F5 F6 F7 F0

ACC E0 E1 E2 E3 E4 E5 E6 E7 E0

PSW D0 D1 D2 D3 D4 D5 D6 D7 D0

IP B8 B9 BA BB BC -- -- -- B8

P3 B0 B1 B2 B3 B4 B5 B6 B7 B0

IE A8 A9 AA AB AC -- -- AF A8

P2 A0 A1 A2 A3 A4 A5 A6 A7 A0

SBUF not bit addressable 99

SCON 98 99 9A 9B 9C 9D 9E 9F 98

P1 90 91 92 93 94 95 96 97 90

TH1 not bit addressable 8D

TH0 not bit addressable 8C

TL1 not bit addressable 8B

TH0 not bit addressable 8A

TMOD not bit addressable 89

TCON 88 89 8A 8B 8C 8D 8E 8F 88

PCON not bit addressable 87

DPH not bit addressable 83

DPL not bit addressable 82

SP not bit addressable 81

P0 80 81 82 83 84 85 86 87 80

Page 15: Proteus 8051lcd

12

Alphanumeric LCD (character LCD)کار با

LCD ای واساوتشی ب ای طشاحی ؿذ اذ و ب ػادی با اسػا وذ اػىی بح آ یتایحذ وحاسوتش

ذ ویذ.سد ظش سا ـا

بیاسیذ. Proteusسا ب ایط واس ش افضاس 25×2واساوتشی LCDیه

-023‏ شکل

تای آ بلست ؼتمی لاب ـاذ اػت. Proteus ،14پای اػت و دس 16ؿا LCDای

Pin No. Name Description

Pin No.1 VSS Power supply(GND)

Pin No.2 VCC Power supply(+5V)

Pin No.3 VEE Contrast adjust

Pin No.4 RS 0= Instruction input 1= Data input

Pin No.5 R/W 0= write to LCD module 1= Read from LCD module

Pin No.6 EN Enable signal

Pin No.7 D0 Data bus line 0 (LSB)

.8Pin No D1 Data bus line 1

Pin No.9 D2 Data bus line 2

Pin No.10 D3 Data bus line 3

Pin No.11 D4 Data bus line 4

Pin No.12 D5 Data bus line 5

Pin No.13 D6 Data bus line 6

Pin No.14 D7 Data bus line 0 (MSB)

Pin No.15 EN2 Enable signal for row 2 and 3 (2ndcontroller)

Pin No.16 NC Not Connected

، 1یؼی پای حای ك ىیذ ـىی پیؾ خاذ آذ . Proteusدس كستی و بشخی اص ای پای ا سا دس

ك خاذ ؿذ پای ؿاس ػح وح بح ػحا وتشاػحت واساوتشحای 0V 5Vو ب تشتیب ب 3، 2

فؼال مات تیییش یا ب كفش ت كح وحشد. ( PVT)ا آشا ب یه ؿت ؿذ ػ خاذ وشد و یت

ای پای ا سا آصاد سا ویذ.

چا و ـاذ یىیذ تؼیی یىذ وح آیحا سدی یحه دػحتس ػح اػحت یحا یحه داد RSپای

)واساوتش(

Page 16: Proteus 8051lcd

13

R/W تؼیی یىذ و آیا داد ای لشاس اػت بLCD خاذ ؿد.فشػتاد ؿد یا اص آ

ادا یـد. EN ای واسا با یه ضشب )ػیا( باال ب پایی یا پایی ب باالی

ب ػا باع داد اػتفاد یـذ. D7تا D0پای ای

چ بایذ وشد. 'A'( ث dataحا با ای اطالػات یتا حذع صد و بشای اسػا یه واساوتش )

( بشیضی.D7تا D0سا داخ باع داد ) A ا بایذ وذ اػىی واسوتش

سا یه وی. RSای یه داد اػت یا دػتس اؼ ؟ خا یه داد اػت پغ بایذ

بایذ كحفش R/Wبیؼی یا اص آ بخای؟ خا سی آ بیؼی پغ LCDا لشاس اػت ای داد سا سی

ؿد.

سا اص حات كفش ب یحه ببحشی Eات سا اػا وذ یؼی بایذ حا تا ب یه ػیا یاص داسی و ای ػی

یا بشػىغ اص حات كفش ب یه.

D[0..7]='A' RS=1 R/W=0 E=0 E=1

اا ص اطالػات ا وا یؼت

بفشػتی بایذ یىؼشی تضیات سا سی آ ادا دی. اصخح ایىح LCDلب اص ایى یه واساوتش سا ب

بایذ ؿت ؿد، ػط ، اتا یا ػطش پایی ؟ LCD و ای ؿت دس چ لؼیتی اص بایذ تؼیی وی

اػا یىی پغ یتا چی ؿت LCDاضح اػت و دس ایدا ا یه دػتس اؼ سا ب

D[0..7]='ؿاس یه دػتس اؼ' ; Data bus = "ؿاس یه دػتس اؼ "

RS=0 ;Instruction input

R/W=0 ; Write

E=0 ; E=Low

E=1 ; E=High

بشای ش دػتس اؼ ؿاس خاكی خد داسد و ب ؿش صیش اػت.

LCDفشا ب Hexadecimalوذ

پان وشد كفا ایؾ 1 باصـت ب ىا ا )ؿشع( 2 واؾ ىا ا )خابدای ىا ا ب چپ( 4 ا ا ب ساػت(افضایؾ ىا ا )خابدای ى 6 خابدایی ایؾ ب ساػت 5 خابدای ایؾ ب چپ 7 ایؾ خاؽ ىا ا خاؽ 8A ایؾ خاؽ ىا ا سؿ C ایؾ سؿ ىا ا خاؽ E ایؾ سؿ ىا ا سؿ

Page 17: Proteus 8051lcd

14

F ایؾ سؿ ىا ا چـه بضذ خابدایی ا ىا ا ب چپ 10 ا ىا ا ب ساػتخابدایی 14 و كفا ایؾ ب چپ خابدا ؿد 181C و كفا ایؾ ب ساػت خابدا ؿد C0 ىا ا ب آغاص خط د بشد 7×5خط اتشیغ 2ػاصاذی 38

ؿبی ػاصی وی پحیؾ اص اداح داد Proteusحا تلی داسی با وه اطالػات باال ی ػ سا دس

.داد ؿدتضیح EQUب ظش یشػذ وی دس سد دػتس ضشسی

دػتسی اذ دػتس صیش سا دس ظش بیشیذ.X EQU 40

بشچؼب یضذ. بذیی اػت و دس صای و حا Xیىش سا با و RAMا حافظ 45با ای دػتس بایت

خایضی خایحذ ؿحذ. احا ایح وحاس صیح 45با مذاس Xایداد یىی و hexاص وذای اػبی وذ

اػبی بشای ذیشیت حافظ با وه اػای بدای ؿاس ا سا ایداد یىذ.

آ ػحذد سا بح hبؼذ اص ػذدی خاف آ ػذد سا ب ػا ػذد بحایشی ححشف bچا و یذایذ حشف

ػا ػذد ضادػیا خاذ ؿاخت.

اضحاف Proteusسا ب ایط وحاس خحد دس 8551یه یىش وتشش 25×2واساوتشی LCDػال بش

ك ویذ. LCD پای ای آشا ث ؿى صیش ب ویذ.

-024‏ شکل

LCDبحشای "دیتا" "دػتس اؼ "بشای اسػا، او با خغ بذی طاب باال یتای ستی اػبی

بیؼی.سا

Org 0 RS equ p2.0 RW equ p2.1 E equ p2.2

Page 18: Proteus 8051lcd

15

DataBus equ p3 … … ;--------------------------------- command: acall delay mov DataBus,A clr RS clr RW clr E setb E ret ;--------------------------------- write_char: acall delay mov DataBus,A setb RS clr RW clr E setb E ret ;--------------------------------- delay: mov R5,#0ffh back1:mov R4,#0ffh djnz R7,$ djnz R6,back1 ret end

اػحت ىح وتحش اص یىحش وتحش LCDػشػت چ دی اػتفاد اص تاخیش صای ب ای ػت اػت و

اطالػات دیشی اص ػت یىش وتشحش بح آ اسػحا ؿحد LCDاػت لب اص دسیافت وا داد تػط

وح تحا صحای وح باػث اص بی سفت اطالػات لبی ؿد. یتا ای تخیش صای سا ب كستی اكال وحشد

LCD .یؼی ب كست صیشآاد دسیافت بد داد ب ػت آ اسػا ؿد ;ready: ; setb p1.7 ; clr RS ; setb RW ;back: ; clr E ; setb E ; jb p1.7,back ; ret

اػت تید ب ظاش بذ اؿحىا باؿحذ حی دس ى Proteusاا دس ای حات اش چ دس ؿبی ػاصی

حات الؼی بایذ شالب باؿیذ تا ضا دس یه پی خاف ػح ؿحت خاحذ ادحا ـحد یحا بطحس

ت خیشی ؿد. 5كایای وتش ؿد و اص اتلا )بشخسد( د تاط

org 0 RS equ p2.0 RW equ p2.1 E equ p2.2 DataBus equ p3 ;----------------------------------------- mov A,#38H;init. LCD 2 lines Acall command

Page 19: Proteus 8051lcd

16

mov A,#0EH;LCD on Cursor On Acall command mov A,#01;clear LCD command Acall command mov A,#06H;shift cursor right Acall command mov A,#80H;cursor:line 1,pos 0 Acall command ;-----------------------------write------- mov A,#'2' acall write_char mov A,#32H acall write_char here: sjmp here ;---------------------------command------ command: Acall delay mov P3,A clr RS clr RW clr E setb E ret ;--------------------------write_char---- write_char: acall delay mov P3,A setb RS clr RW clr E setb E ret ;----------------------------delay-------- delay: mov R5,#0ffh back1:mov R4,#0ffh djnz R7,$ djnz R6,back1 ret end

ب دػتس mov A,#80H;cursor:line 1,pos 0 Acall command

Page 20: Proteus 8051lcd

17

DDRAM (Displayا اص حافظح 80تخ ویذ ای دػتس باػث یـد داد اسػا ؿذ دس خاح

Data RAM) ؿت ؿد و ؼاد با لؼیت كفش دس سیLCD اػت. بشای ایى تخ ؿحی چطحس

.د ػطشی دػتشػی داؿت باؿی بایذ اص سؽ صیش اػتفاد وی LCD یه ف سیب لؼیت ای خت

1-0 جدول

آخحشی خاح اص ػحطش د C0ؿاس ای خا اص ػطش د بشابش بیؼت خا ای ا LCDبشای ثا دس

آحا ata sheetdحا یتایحذ اص LCDبشای اطالػات بیـتش دس سد ای حع خاذ بد. D3بشابش

اػفتاد ویذ.

سا فـاس دیذ تا بطحس خحد Dataداب ویه ویذ دو LCDسی Proteusبشای ایىاس دس ش افضاس

آشا اص ایتشت داد وشد ایؾ دذ. دس سد اوثش آیؼی ا یتایذ اص ایح سؽ datasheetواس

اػتفاد ویذ.

دس دػتسات ب لؼت ;-----------------------------write------- mov A,#'2' acall write_char mov A,#32H acall write_char here: sjmp here

سا دس داخح 32Hلشاس یذذ باس د ػحذد Aسا دس داخ '2'تخ ویذ و باس ا وذ اػىی واساوتش

A ؿحت 2ؼت. ب ػباستی دس ای دػتسات دباس وحاساوتش 2ا وذ اػىی ػذد لشاس یذذ و باص

یـد.

ؿحت یـحد یحه سؿحت DPTRوح بطحس اختلحاس data pointerاو یخای با وحه

لشاس دی. LCDواساوتشی سا سی ;-----------------------------write------- mov DPTR,#string1 do: clr A movc A,@A+DPTR jz here acall write_char inc DPTR sjmp do … … … ;----------------------------dataBase----- string1: db 'm','o','h','s','e','n',0 … …

2 x 40

2 x 24

2 x 20

2 x 16

2 x 8

80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 ... A5 A6 A7

C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 ... E5 E6 E7

Page 21: Proteus 8051lcd

18

او با خغ بذی طاب باال یتای خشخی صیش سا ببیی.

-025‏ شکل

- ) CGROMایىحح ویحح ایحح وححاساوتش ححا اص طشیححك LCDیححه ىتحح بححالی اححذ اص ایحح ححع

Character Generator ROM .بحشای اطالػحات ( تیذ یـد و یتا آشا حذیشیت وحشد

یتایذ ب Alphanumeric LCDدس سد بیـتش

http://www.8051projects.net/lcd-interfacing/

شاخؼ ویذ.

1اؼ ػیف ا صاد با تـىش [email protected]

درصذ ترای آن تخفیف در وظر تگیریذ در 155تا 5لایر می تاشذ ک ت اختیار خودتان میتواویذ از 35555توج قیمت مقال تا ایه قسمت 1

تاوک سپ ت وام محسه سیف ال زادي واریس 1572355655211درصذ داشتیذ میتواویذ ت شماري حساب 155صورتی ک تخفیفی ت غیر از

میثاشذ. 255555تا 35555تست ت میسان مفیذ تودوش از درصورتی ک مفیذ و مثمر ثمر تودکىیذ.سیى ادام مطالة

Page 22: Proteus 8051lcd

19

بخش دوم:بخش دوم:

Graphical LCDکار با

ی وچىتش تمؼی ؿذ یتا با اػتفاد و ماا آ ب بخـا Alphanumeric LCDبشخالف

محاا بح كحست Graphical LCDسی آ واسوتش خاكی سا ؿت ذیشیت وشد دس CGROMاص

ؼتشد ؿذ اذ. LCDیىدا دس واس ذیشیت یـذ و سی تا ػطح

بیاسیذ. Proteusسا ب ایط واس ش افضاس 128×64شافیىی LCDیه

-026‏ کلش

LCD خای وشدبا آ واس دس حات الؼی ای و GDM12864A ا داسد.

پای اػت. 20 ؿا

PIN 1 2 3 4 5 6 7 8 9 10

SIGNAL Vss VDD V0 D/I R/W E DB0 DB1 DB2 DB3

PIN 11 12 13 14 15 16 17 18 19 20

SIGNAL DB4 DB5 DB6 DB7 CS1 CS2 RES VEE A K 2-0 جدول

(12كفا واساوتشی ػ یىیذ. ) LCDپای ای آ ث

contrastیحضا VDD( ك یـد ب وه POTو ب یه پتاؼیتش )مات تییش VOپای

ا سا تظی یىذ. ؿت

D/I ؼاد پای خذیذی یؼتRS .اػت

( ب پای فی ك یـذ و باػحث cathode -) K( ب تاط ثبت پای + Anode) Aپای

یـذ. LCDسؿ ؿذ چشاؽ ای داخ

كحفا حایؾ ب ػا فؼا وذ ػحت ساػحت یحا چحپ CS1 (chip select1 )CS2پای

باؿذ.ی

( یباؿذ و با كفش فؼا یـد.RESET) RESپای

بح ح P0یىش ك ویذ. ب یاد داؿت باؿیذ و پست P0ب پست سا LCDاو پای ای دیتای

اػتفاد وی.10k (resistor 10k )ای طشاحی ؿذ و بشای اػتفاد اص آ بایذ اص ماتای

Page 23: Proteus 8051lcd

25

داخ ایح پىحیح ب ایط وحاس اضحاف ویحذ. یض یه پىیح مات ـتایی سا DLCپغ ػال بش یىش

اسذ.ت بلست اصی دس واس لشاس دـت ما

-027‏ شکل

Terminalsك ویذ. بشای ایىاس سی آیى 5vیا ا powerمات ػشی سا ب 1پای

Mode ویه ویذ ) بشای تضیح بیـتش ب ؿى تخ ویذ(. بمی پای ا سا یحض احذ ؿحى بح یىحش

ك ویذ.

-028‏ شکل

آیتای دیشی یض خد داسذ و بذ یؼت تضحیح ختلحشی دس سدؿحا Terminalsدس لؼت

داد ؿد.

-029‏ شکل

ب ػا یه تشیا دس د اتای یه ػی وـی اػحتفاد یـحد. یؼحی بدحای ػحی DEFAULTابضاس

وـی ای پیچیذ بذ یتای اص ای ابضاس اػتفاد وی و تا دس لؼحت پایاح حا كح یـحذ.ب

ؿى صیش تخ ویذ.

Page 24: Proteus 8051lcd

21

ای د ؿى با ؼادذ.

اا بیاد داؿت باؿیذ و بشای ایى بی د پایا استباا خد داؿت باؿذ بایحذ حش د اص یحه حا اػحتفاد

وذ.

Property Assignmentپدش 'A'ضا بشای ا زاسی خدواس یتایذ با فـشد دو

Tool اػتفاد ویذ.اسی سا ـد اص اىاات آ بشای ا ز

-030‏ شکل

ادحا Busسا بحشای یحه وابح DEFAULTؼاد واسحای TERMINALSدس بخؾ Bussو

ب ػا صی اػتفاد یـد. GROUNDض ایى حشف یذذ.

ادا واس بش یشدی.ب

یطی اذ ؿى صیش سا داسد.ا 128x64شافیىی LCDیه سی آ و خت سؿ وحشد حش مطح

خت خاؽ وشد یه مط مذاس آشا كفش یىی. 1مذاس آشا

-031‏ شکل

تای بحش سی حذاوثش ماطی و دس یه اظ ییتا پیـبیی وشد، LCDچا و اص خط دیتای ای

LCD اذ مط اػت. 8سؿ یا خاؽ ویLCD واساوتشی بحشای ؿحت دس حش لؼحت اص ایح

LCD لؼیت اتشیؼی آ مط( آدسع آ مط سا اسد وی. ا یض بایذ(

Page 25: Proteus 8051lcd

22

-032‏ شکل

تحا B8Hا اص xبشای اس 7FHتا 40Hیض ـخق اػت اص مذاس ای آدسع ا چا و دس ؿى

BFH بشای اسy ا تؼیی ؿذ اػت. ا یتای با ـخق وشد لؼیت ؿحشع محادیش سا بایحت بح

بشػذ. 7Fا افضایؾ ی یابذ تا ب xبایت بش سی ماا بیؼی ای مذاس بطس خدواس بشای

سا اسد وحی بؼحذ اص آ بطحس خدوحاس ایح 40Hای ؿشع یاص اػت و ا ثال آدسع یؼی اش تا بش

آدسع افضایؾ یابذ یاصی ب اسد وشد دذد آ یؼت.

ؿحشع 80Hػحذد یشػحذ، 80Hبشػذ ادا یابذ بؼذ اص آ ب ػذد 7Fتا صای و ب xای افضایؾ

ػطش د خاذ بد.

( بد.40H,B8Hب كست صیش خاذ بد. تخ داؿت باؿیذ و لؼیت ؿشع ا ) xفضایؾ تشتیب ای ا

-033‏ شکل

لشاس دی یتحای اص ابتحذای ػحطش ا بیؼحی احش ایح محذاس سا (B8,40)ش ا مط ؿشع سا

(80,B8) اص ابتذای ػطش د بیؼ و ؼاد اػت با لشاس دی یتای (40,B9)

Page 26: Proteus 8051lcd

23

(80,B8)=(40,B9)

بح لؼیحت محاا اص ظحش ػحتی باػث یـحد تحا xچا و دس ؿى باال یض ـخق اػت افضایؾ

لشاس دی. BCسا بشابش yسخع وذ . بشای ای ظس بایذ باس دیش مذاس BCشح پایی تش اص

یتای ب و ماا یه ی كفا دػتشػی پیذا وی اا وتحش طحشفی یحه x yبا وتش پغ ا

LCD ب وه پیایCS1 CS2 .ادا یـد

باػث یـد دػتسات ا سی چیپ ػت چپ یا ساػت اػحا CS1 CS2د پی بد ش یه اص كفش

سا فؼحا LCDی ؼی اػحت وح حش د طحشف وشد باؿی ب ا CS1=CS2=0یؼی فشم ویذ ؿد .

x,yـخق وی فشم ویحذ محذاس آشا x,yمذاس یتای سی آا بیؼی اا ا بایذ وشد ای

تحا ب طس اصی ادا خاذ ؿحذ. LCDلشاس داد ای ػ ؿت دس ش د طشف (B8,40)بشابش با سا

س ػح سفتح دبحا (BC,40)ذ اص آ بایذ دبحاس بح لؼیحت پش ؿد بؼ LCDصای و لف باالی

ادا دی. ؿت سا بشای ی پایی یض

-034‏ شکل

سا تات وتش داؿت باؿی. اا اك پحش LCDتا ایدای واس ا فیذی و چطس ػطشا ػتای یه

باػث سؿ ؿذ یه مطح محذاس كحفش باػحث خحاؽ 1ش مذاس فتی ای ماا چ اػت. وشد

( باؿحی محذاس دیتحای سدی بشابحش بحا B8,40ؿذ آ مطح یـحد. دس كحستی وح حا دس خاح )

11111110B دس ػتی ـت مط ای باؿذ( 40لؼیت,B8 اتخا خایذ ؿحذ بح تشتیحب )

مط با اسصؽ تش سؿ خاذ ؿذ. 7خاؽ مط ا

Page 27: Proteus 8051lcd

24

-035‏ شکل

دس ابتذا تا ماا ـحىی ؼحتذ ) بؼحت بح بیؼی. LCDفشم ویذ یخای ػذد چاس سا دس ابتذای

حش مطح ػحیا سا تیش سا( ا دس ایدا ریت خدتا داسد و س سؿ سا خاؽ دس ظش بیشیذ یا س

دس ظش ییشی. بد ب ػا سؿ بد ش مط ػفیذ سا ب ػا خاؽ

-036‏ شکل

بشای ای ظس بؼذ اص تظی لؼیت ؿت دیتا ای سدی بایذ ب كست صیش باؿذ x 40 41 42 43 44 45 46 47 48 49 4A 4B

D0 1 1 1 1 1 0 0 1 1 1 1 1

D1 1 1 1 1 0 0 0 1 1 1 1 1

D2 1 1 1 0 0 0 0 1 1 1 1 1

D3 1 1 0 0 1 0 0 1 1 1 1 1

D4 1 0 0 0 0 0 0 0 1 1 1 1

D5 1 0 0 0 0 0 0 0 1 1 1 1

D6 1 1 1 1 1 0 0 1 1 1 1 1

D7 1 1 1 1 1 0 0 1 1 1 1 1

HEX FF CF C7 C3 C9 00 00 CF FF FF FF FF

-037‏ شکل

Page 28: Proteus 8051lcd

25

سا با ػشػت لاب ـاذ اص ابتذا تا اتا سؿ وذ. LCDبشای ؿشع یخای بشا ای بیؼی و ماا

بشا صیش سا بیؼیذ.org 0 Enable equ p2.2 RW equ p2.3;read =1/write=0 RS equ p2.4;data input=1/instruction input=0 Rst equ p2.5;not cs1 equ p2.6;not cs2 equ p2.7;not LCD_Data equ p0 command equ 24h ;---------------------------------------- clr rst acall delay setb rst mov A,#03fh acall comm_write

clr cs2 ;on clr cs1 ;on mov A,#040H ;Xaddress acall comm_write mov A,#0B8H ;Yaddress acall comm_write mov A,#0 L1: acall delay_long acall data_write sjmp L1 ;------------------comm_write--------------------- comm_write: mov LCD_Data,A clr RW;wite clr RS;instruction input acall delay setb Enable clr enable ret ;------------------data_write-------------------- data_write: mov LCD_Data,A clr RW setb RS acall delay setb Enable clr Enable ret ;--------------------delay-------------------- delay: nop nop

Page 29: Proteus 8051lcd

26

nop ret ;--------------------delay_long-------------------- delay_long: mov R7,#0Fh back33: mov R6,#0Fh djnz R4,$ djnz R7,back33 ret End

ب دػتس L1: acall delay_long acall data_write sjmp L1

ییؼحذ LCDسا دس سی 00000000ی سا طی یىیذ ش بحاس محذاس تخ ویذ و اس چشخ ا

LCDیؼحی تحا لحف خاذ بد.( 22 كفا) 33-1 اذ ؿى LCDلاػذ ؿت ای اػذاد سی

پایی تحش دبحاس پغ بایذ دػتسات سا چی اكال وی و بؼذ اص ایى ب لف كفا سػیذی بشای لف

اا بحاص یحه اسػا ؿذ واس سا تا وی. LCDسا اسد وی پغ اص ایى و اطالػات سی X yمذاس

ا سا وتش وی تا بؼحذ اص ایىح CSبشای ای ظس بایذ LCDـى خد داسد. وتش چپ ساػت

دس لؼحت بحشد اداح حا ػحطش سا ؿت ؿذ وتش سا ب ػت ساػت LCDیه ػطش اص ػت چپ

بیؼذ. LCDساػت

-038‏ شکل

Page 30: Proteus 8051lcd

27

-039‏ شکل

ستی ای ای دػتسات ب ؿى صیش خاذ بد.org 0 H_counter equ 0020h;Horizontally counter /ofogi V_counter equ 0021h;vertically counter /amodi Yaddress equ 0022h Xaddress equ 0023h command equ 0024h data_1 equ 0025h chr_count equ 0027h stnptr equ 0028h mov stnptr,#30H mov 30H,#0FFH mov 40H,#0FFH mov chr_count,#1 Enable equ p2.2 RW equ p2.3;read =1/write=0 RS equ p2.4;data input=1/instruction input=0 Rst equ p2.5;not cs2 equ p2.7;not cs1 equ p2.6;not ;---------------------------------------- clr rst acall delay setb rst mov A,#03fh acall comm_write ;----------------------------------------

Page 31: Proteus 8051lcd

28

;---------------------drawing_page------------------- drawing_page: clr cs2;on Because the effect is on both clr cs1;on mov Xaddress,#040H mov command,Xaddress acall comm_write mov Yaddress,#0B8H mov command,Yaddress acall comm_write setb cs2;off clr cs1;on acall half_drawing;up side clr cs1;enable clr cs2;enable mov Yaddress,#0bcH mov command,Yaddress acall comm_write setb cs2;disable acall half_drawing;buttom side ret ;-------------------half_drawing---------------- half_drawing: mov H_counter,#64;64 cell in half horizontal line mov V_counter,#8 ;8 row in half vertically line drawing_loop: clr A movc A,@A+DPTR mov data_1,A acall data_write inc DPTR djnz H_counter,drawing_loop cpl cs1;cs1=!cs1 cpl cs2;cs2=!cs2 mov H_counter,#64;ofogi djnz V_counter,drawing_loop ret ;------------------comm_write--------------------- comm_write: mov p0,command clr RW;wite clr RS;instruction input setb Enable acall delay clr enable acall delay ret ;------------------data_write-------------------- data_write: mov p0,data_1

Page 32: Proteus 8051lcd

29

clr RW setb RS setb Enable acall delay clr Enable acall delay ret ;--------------------delay-------------------- delay: nop ret ;--------------------delay_long-------------------- delay_long: mov R7,#0FFh back33: mov R6,#0FFh djnz R4,$ djnz R7,back33 ret end

تشػحی LCDابتذای وذای ؿىی و لشاس اػحت سی بسا DPTRبشای اػتفاد اص ای ستی ا وافیؼت

وی اؿاس بذی.

ایح ؿحى بایحذ تلحس وحی بذییؼحت LCDسا ب ػا یه مط سی BMPاش ش پیىؼ یه ػىغ

128x64 .با تخ ب ایى سی پیىؼ باؿذLCD تا د س سؿ یا تیش خد داسد یؼحی كحفش یحا

ا بایذ اص فشت د س ػفیذ ػیا با ػك یه بیت اػحتفاد ویحذ.بشای BMPیه بشای ای بیـتش

یذص بلست صیش اػتفاد ویذ. Paintای ظس یتایذ اص بشا

سا اتخححا ویححذ تححا پدححش utesAttribضیحح Imageپححغ اص بححاص وححشد بشاحح اص ححی

Attributes پیىؼح تظحی ویحذ. سح 128 ط آشا ب 64ایؾ داد ؿد.ػشم آشا ب

تیییش دیذ. Black and whiteآشا ب

-040‏ شکل

Page 33: Proteus 8051lcd

35

تبذی وی. LCDض تاػب با او بت آ اػت و ػىغ وـیذ ؿذ سا ب وذای

پیىؼحی بح 128x64بحشای تبحذی ػىؼحای LCDCodeGeneratorش افضاس وچىی بحا حا

)اش بشا اػبی سا بشای ایىاس پیذا ىشدیذ یتایذ خدتحا دػحت بح خد داسد. LCD اػبیوذای

طشاحی ویذ.(واس ؿیذ یه بشا اػب با صبا ای یظا بشای ایىاس

change.batىح ی. اذ ؿى سی آباؿذ pic.bmpبشای اػتفاد اص آ ا ػىؼتا حتا بایذ

بؼحححاصد ػحححپغ یتایحححذ بحححا وحححه pic.lcdیحححه pic.bmpویحححه ویحححذ تحححا بحححشای

LCDCodeGenerator .آشا باص وشد یشایؾ ویذ دس ایت ب وذ اػبی تبذی ویذ

ای خد با صبا غیش ایؼی ػاصاسی ذاسد بشای ی ػؼی ویذ چی بشاح حایی ) بشخی اص بشا

سا داخ پؿ ای با ا فاسػی رخیش ىیذ(

-041‏ شکل

Page 34: Proteus 8051lcd

31

وذ اػبی تیذ ؿذ چیضی ؿبی صیش خاذ بد.

وذای اػبی ػىؼتا سا ب وذایی و لبال ؿت بدی اضاف ویذ.

اؿاس ش سا ب ابتذای ای ؿاس ا اؿاس بذیذ.

سا فشا خای ویذ. drawing_page ستی … … ;---------------------------------------------------- mov DPTR,#my_logo acall drawing_page here:sjmp here ;---------------------drawing_page------------------- …

DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 128,128,64,64,64,64,64,32,32,32,32,32,64,64,64,64 DB 64,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,128,0,0,192,224,0,0,0,128,0 DB 0,0,0,0,0,128,0,0,64,224,64,192,224,0,0,0 DB 0,0,0,0,0,64,96,64,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,128,192,32,24,24,12,10,10,9,9 DB 8,16,16,32,64,128,0,0,192,48,8,8,4,4,2,2 DB 2,2,2,5,5,10,10,52,200,24,32,192,0,0,0,30 DB 25,27,14,0,12,24,27,27,14,3,31,0,128,193,207,125 DB 0,0,0,12,10,15,30,24,24,25,15,3,31,0,0,0 DB 14,24,24,24,24,30,13,31,0,88,78,88,24,14,24,14 DB 24,14,0,0,120,192,195,194,200,124,24,0,24,14,24,14 DB 24,30,26,25,25,15,15,25,24,24,31,31,30,0,0,0 DB 0,0,0,0,248,62,193,0,0,0,0,0,0,0,0,56 DB 124,254,206,108,56,193,62,31,96,128,0,56,124,238,206,254 DB 124,56,0,0,0,0,0,128,96,31,0,0,1,6,248,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,15,240,0,32,65,66,132,4,8,8,8,8,8 DB 8,4,4,2,1,128,64,32,32,33,34,66,132,4,8,8 DB 8,8,8,4,4,2,2,1,128,64,32,16,8,0,240,15 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,1,6,8,48,64,128,1,2,2,4,4,8 DB 8,16,16,16,32,32,32,32,32,32,32,32,32,32,32,32 DB 16,16,8,8,4,2,2,1,0,128,64,48,8,6,1,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,1,1,2,4,4,8,8 DB 16,16,32,32,32,32,32,64,64,64,64,64,32,32,32,32 DB 32,16,16,8,8,4,4,2,1,1,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 1,1,1,1,225,33,33,193,33,33,193,1,193,33,33,33 DB 193,1,253,65,33,33,193,1,65,161,33,65,1,193,161,161 DB 161,193,1,225,65,33,33,193,1,1,1,1,1,1,1,65 DB 161,33,65,1,193,161,161,161,193,1,229,1,249,37,1,225 DB 25,9,197,37,37,229,9,25,225,1,225,1,1,225,1,1 DB 161,161,161,193,1,253,65,33,33,193,1,193,33,33,33,193 DB 1,193,33,33,33,193,1,1,1,193,33,33,33,65,1,193 DB 33,33,33,193,1,225,33,33,193,33,33,193,1,1,1,1 DB 0,0,0,0,7,0,0,7,0,0,7,0,3,4,4,4 DB 3,0,7,0,0,0,7,0,2,4,5,2,0,3,4,4 DB 4,2,0,7,0,0,0,7,16,16,16,16,16,16,0,2 DB 4,5,2,0,3,4,4,4,2,0,7,0,7,0,0,1 DB 6,4,8,9,9,8,9,1,1,16,17,14,2,1,0,3 DB 4,4,4,7,0,7,0,0,0,7,0,3,4,4,4,3 DB 0,3,4,4,4,3,3,3,0,3,4,4,4,2,0,3 DB 4,4,4,3,0,7,0,0,7,0,0,7,0,0,0,0

Page 35: Proteus 8051lcd

32

… ;-----------------------my_logo----------------------- my_logo: DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 128,128,64,64,64,64,64,32,32,32,32,32,64,64,64,64 DB 64,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,128,0,0,192,224,0,0,0,128,0 DB 0,0,0,0,0,128,0,0,64,224,64,192,224,0,0,0 DB 0,0,0,0,0,64,96,64,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,128,192,32,24,24,12,10,10,9,9 DB 8,16,16,32,64,128,0,0,192,48,8,8,4,4,2,2 DB 2,2,2,5,5,10,10,52,200,24,32,192,0,0,0,30 DB 25,27,14,0,12,24,27,27,14,3,31,0,128,193,207,125 DB 0,0,0,12,10,15,30,24,24,25,15,3,31,0,0,0 DB 14,24,24,24,24,30,13,31,0,88,78,88,24,14,24,14 DB 24,14,0,0,120,192,195,194,200,124,24,0,24,14,24,14 DB 24,30,26,25,25,15,15,25,24,24,31,31,30,0,0,0 DB 0,0,0,0,248,62,193,0,0,0,0,0,0,0,0,56 DB 124,254,206,108,56,193,62,31,96,128,0,56,124,238,206,254 DB 124,56,0,0,0,0,0,128,96,31,0,0,1,6,248,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,15,240,0,32,65,66,132,4,8,8,8,8,8 DB 8,4,4,2,1,128,64,32,32,33,34,66,132,4,8,8 DB 8,8,8,4,4,2,2,1,128,64,32,16,8,0,240,15 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,1,6,8,48,64,128,1,2,2,4,4,8 DB 8,16,16,16,32,32,32,32,32,32,32,32,32,32,32,32 DB 16,16,8,8,4,2,2,1,0,128,64,48,8,6,1,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,1,1,2,4,4,8,8 DB 16,16,32,32,32,32,32,64,64,64,64,64,32,32,32,32 DB 32,16,16,8,8,4,4,2,1,1,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 DB 1,1,1,1,225,33,33,193,33,33,193,1,193,33,33,33 DB 193,1,253,65,33,33,193,1,65,161,33,65,1,193,161,161 DB 161,193,1,225,65,33,33,193,1,1,1,1,1,1,1,65 DB 161,33,65,1,193,161,161,161,193,1,229,1,249,37,1,225 DB 25,9,197,37,37,229,9,25,225,1,225,1,1,225,1,1 DB 161,161,161,193,1,253,65,33,33,193,1,193,33,33,33,193 DB 1,193,33,33,33,193,1,1,1,193,33,33,33,65,1,193 DB 33,33,33,193,1,225,33,33,193,33,33,193,1,1,1,1 DB 0,0,0,0,7,0,0,7,0,0,7,0,3,4,4,4 DB 3,0,7,0,0,0,7,0,2,4,5,2,0,3,4,4 DB 4,2,0,7,0,0,0,7,16,16,16,16,16,16,0,2 DB 4,5,2,0,3,4,4,4,2,0,7,0,7,0,0,1 DB 6,4,8,9,9,8,9,1,1,16,17,14,2,1,0,3 DB 4,4,4,7,0,7,0,0,0,7,0,3,4,4,4,3 DB 0,3,4,4,4,3,3,3,0,3,4,4,4,2,0,3 DB 4,4,4,3,0,7,0,0,7,0,0,7,0,0,0,0

end

Page 36: Proteus 8051lcd

33

خشخی بشا:

-042‏ شکل

ویذ. traceب ا اخشای ؿبی ػاصی یتایذ وذای خدتا سا

ضیح cpu 8051 صیحش حی Debugسا اتخحا ویحذ ػحپغ اص حی stepابتحذا آیىح

source code .سا اتخا ویذ تا پدش وذ ایؾ داد ؿد

-043‏ شکل

Page 37: Proteus 8051lcd

34

-044‏ شکل

ػالت صد ؿذ باؿذ ب واس یشد. : بشای اخشای پیػت بشا تا خایی و تػط

: بشای اخشای ػطش ب ػطش بذ سد ب داخ صیش بشا ب واس یشد.

ی اخشای ػطش ب ػطش با سد ب داخ صیش بشا ب واس یشد.: بشا

: بشای اخشای وا صیش بشا خشج اص آ ب ػطح باالتش ب واس یشد.

یتایذ ب واس ببشیذ. CPUی واساسا بشای ـاذ سخیؼتش ا یا حافظ داخ

ایؾ دی. ای واساسا بشای ػىغ صیحش ادحا LCDتا ایدای واس ا فك ؿذی یه كفا سا سی

.ی دی تا سی كفا ایؾ داد ؿد

Page 38: Proteus 8051lcd

35

ضمیمهضمیمه:ارتباط :ارتباط ببا کامپیوترا کامپیوتر .1واپیتش با تاط یىش تاػب یؼت اص ای س پست وا سا بح كحست ؿحى comتاط سی پست

تل یىذ. max 232صیش ابتذا ب ایؼی

‏ 1‎-1شکل

..ای بخؾ وا یؼت.

یىی اص باحث خاب دس ػاخت ای ذاسا چی بشلشاسی استباا با واپیتش خت اسػا اطالػات

ب یتایذ ب آدسع صیش شاخؼ ویذ. یا ای طاو بشای دس یافت اطالػات بیـتش دس ای خلف اػت

سا دس ادا طاؼ ویذ.

http://www.8051projects.net/serial-communication/

►Introduction

UART (Universal Asynchronous Receiver Transmitter) or USART (Universal Synchronous

Asynchronous Receiver Transmitter) are one of the basic interface which you will find in

almost all the controllers available in the market till date. This interface provide a cost

effective simple and reliable communication between one controller to another controller or

between a controller and PC.

►RS-232 Basics

RS-232 (Recommended Standard 232) is a standard for serial binary data signals connecting

between a DTE (Data terminal equipment) and a DCE (Data Circuit-terminating Equipment).

Voltage Levels:

The RS-232 standard defines the voltage levels that correspond to logical one and logical zero

Page 39: Proteus 8051lcd

36

levels. Valid signals are plus or minus 3 to 25 volts. The range near zero volts is not a valid

RS-232 level; logic one is defined as a negative voltage, the signal condition is called

marking, and has the functional significance of OFF. Logic zero is positive, the signal

condition is spacing, and has the function ON.

So a Logic Zero represented as +3V to +25V and Logic One represented as -3V to -25V.

‎1-2 شکل

►RS-232 Level Converters

Usually all the digial ICs works on TTL or CMOS voltage levels which cannot be used to

communicate over RS-232 protocol. So a voltage or level converter is needed which can convert

TTL to RS232 and RS232 to TTL voltage levels.

The most commonly used RS-232 level converter is MAX232. This IC includes charge pump

which can generate RS232 voltage levels (-10V and +10V) from 5V power supply. It also

includes two receiver and two transmitters and is capable of full-duplex UART/USART

communication.

‏ 1‎-3شکلFig A. - MAX232 Pin Description

1‎-4شکل

Fig B. - MAX232 Typical Connection Circuit

Page 40: Proteus 8051lcd

37

►MAX232 Interfacing with Microcontrollers

To communicate over UART or USART, we just need three basic signals which are namely,

RXD (receive), TXD (transmit), GND (common ground). So to interface MAX232 with any

microcontroller (AVR, ARM, 8051, PIC etc..) we just need the basic signals. A simple

schematic diagram of connections between a microcontroller and MAX232 is shown below

1‎-5شکل

In the next part of this tutorial we will discuss programming microcontroller to communicate

over UART and software implementation of half duples UART.

►8051 Programming for UART

In 8051, we make use of Timer 1 to generate the required baud rate. Following are the

registers that are need to be configured to commnunicate over UART.

TMOD

SCON

TH1

TL1

TCON

TMOD: This register is used to set the mode of Timer0 and Timer1. It is also used to select

whether the timers are used as Timer or Counter.

SCON: Serial Control register has various functions like.. it has flags for Framing error,

Transmit interrup and receive interrupt. Its used to select the serial port mode, to enable or

disable the reception etc.

TCON: This register has varios flag and control bits e.g. Timer overflow flags, interrupt edge

flags, timer control bits to start/stop the timer.

Page 41: Proteus 8051lcd

38

TH1 & TL1: Timer registers for Timer 1 determines the baudrate of UART.

More information on the above registers can be found in the 8051 Hardware manual.

►Initializing USART in 8051

CODE: Serial_Init:

;Set timer 1 mode to 8-bit Auto-Reload

mov TMOD,#20H

;Enable reception

;Set Serial port mode to 8-bit UART

mov SCON,#50H

;Set baudrate to 9600 at 11.0592MHz

mov TH1,#0FDH

mov TL1,#0FDH

;Start Timer

setb TR1

ret

in C we can do this as..

CODE: #include <reg51.h>.

void serial_init(){

TMOD = 0x20;

SCON = 0x50;

TH1 = 0xFD;

TL1 = 0xFD;

TR1 = 1;

}

To Send data to the serial port we just have to move the data in SBUF (serial buffer register)

and wait for the Transmit Interrupt flag to be set. While receiving we wait for the Receive

interrupt flag to be set and read the data from SBUF register. This can be done as shown

below...

CODE: Serial_Send:

;wait for last data to be

;sent completely

jnb TI,Serial_Send

;clear the transmit interrupt flag

clr TI

;Then move the data to send in SBUF

mov SBUF,A

ret

Page 42: Proteus 8051lcd

39

Serial_Read:

;Wait for Receive interrupt flag

jnb RI,Serial_Read

;If falg is set then clear it

clr RI

;Then read data from SBUF

mov A,SBUF

ret

in C we can do this as..

CODE: void serial_send(unsigned char dat){

while(!TI);

TI = 0;

SBUF = dat;

}

unsigned char serial_read(){

while(!RI);

RI = 0;

return SBUF;

}

►Software UART for 8051

To implement UART successfully we first need to know how the protcol works.

Diagram above shows the waveform in which the bits has to be transferred. First is the start

bit.. then 8-bit data and at last a stop bit. There is a secret formula to calculate the delay time

which is needed between bits to get correct baudrate.

Below is a software implemented UART, which can be used in C as well as Assembly

programs. It is written for Keil software. But with a little modification you can use it in your

programs.

CODE:

?SU?PUTC SEGMENT CODE

?SU?GETC SEGMENT CODE

PUBLIC _putc

PUBLIC getc

txd_pin EQU P3.1 ;Transmit on this pin

rxd_pin EQU P3.0 ;Receive on this pin

Page 43: Proteus 8051lcd

45

;Formula to calculate the bit time delay constant

;This constant is calculated as: (((crystal/baud)/12) - 5) / 2

;crystal is the frequency of crystal in Hz

;baud is required baudrate

;Please try to keep baudrate below 9600

;to get best results :)

BITTIM EQU 45; (((11059200/9600)/12) - 5) / 2

;--------------------------------------------

;To send data serially

;For C programs

;Protype definition:

; void putc(unsigned char);

;Usage:

; putc(data);

;Return:

; This function returns nothing

;

;For Assembly Programs:

;

;Usage:

; data to be send has to be moved to R7

; for example:

; mov R7,#'a'

; lcall _putc

;--------------------------------------------

RSEG ?SU?PUTC

_putc:

push ACC

Push PSW

mov a,r7

CLR txd_pin ;Drop line for start bit

MOV R0,#BITTIM ;Wait full bit-time

DJNZ R0,$ ;For START bit

MOV R1,#8 ;Send 8 bits

putc1:

RRC A ;Move next bit into carry

MOV txd_pin,C ;Write next bit

MOV R0,#BITTIM ;Wait full bit-time

DJNZ R0,$ ;For DATA bit

DJNZ R1,putc1 ;write 8 bits

SETB txd_pin ;Set line high

RRC A ;Restore ACC contents

MOV R0,#BITTIM ;Wait full bit-time

DJNZ R0,$ ;For STOP bit

POP PSW

pop ACC

RET

;--------------------------------------------

;To receive data Serially

Page 44: Proteus 8051lcd

41

;If you want to use this routine in your

;C program then define function prototype

; as:

; unsigned char getc(void);

;

; Usage:

; data = getc();

; Return value:

; Returns data received

;

;

;If you are using it in assembly program

; Usage:

; lcall getc

; Return:

; data received is stored in R7

;--------------------------------------------

RSEG ?SU?GETC

getc:

Push ACC

Push PSW

JB rxd_pin,$ ;Wait for start bit

MOV R0,#BITTIM/2 ;Wait 1/2 bit-time

DJNZ R0,$ ;To sample in middle

JB rxd_pin,getc ;Insure valid

MOV R1,#8 ;Read 8 bits

getc1:

MOV R0,#BITTIM ;Wait full bit-time

DJNZ R0,$ ;For DATA bit

MOV C,rxd_pin ;Read bit

RRC A ;Shift it into ACC

DJNZ R1,getc1 ;read 8 bits

mov r7,a

POP PSW

pop ACC

RET ;go home

Page 45: Proteus 8051lcd

42

منابع:منابع:

ؿت اذ ػی ضیذی،خایغ یؼپی، تشخ لذست ػپیذ ا 8551وتا یىش وتششhttp://www.mikroe.com http://www.8051projects.net http://www.eca.ir

اؼ ػیف ا صاد59143186489

[email protected]

Page 46: Proteus 8051lcd

43

یبؼضح ذی بزاس ذیحاك آد ؿ یب یا ییبب بذ ذی اخاص بذ ذیو ؼت یدس ش حشف ا

بىـحاذ. دس آساحؾ ححاو بحش یذیح اا اعیح ؿحا سا بح ذیح آ یح ؾیپ یذت یاظات تاػف باس و بشا

.ذیو یصذ تای وتابخا ا ـاایآصا

: ذیبپشػح ذیس ی ؾیچ وشد ا؟ ػپغ چا و پ ی خد آص یشی ادی یبشا ذیاص خد بپشػ خؼت

یاحؼحاع ؿحاد یح تا ب ا ذیپشػؾ سا آمذس ادا د یوـس چ وشد ا؟ ا یبشا ی بخحؾ دحا

یاحا حش پاداؿح ذیداؿت ا تیبـش ی اػتال ـشفتیدس پ یػ وچى ذیو ؿا ذیبشػ ضیا بح یوح صحذ

ححك آ سا ذیح حش وحذا اص حا با یؿ ی هیضد ایتالؿا ایو ب پا یذذ ا ایبذذ تایتالؿا

: ییبذ ب یو با كذا یداؿت باؿ

آچ دس تا داؿت ا ادا داد ا

پاػتس یی

خذایا شا اص فضاوی و ب واس شد یایذ اش ػاص ب خات حـی ؼاسف طیفحی بحتال

اساء بشق شػی سا دس ػك چـحی خحط وبحد ى و دس خزب احؼاع ای بذ اج ؼشاج ای

تاصیا سا بش پـتی تا دیذ.

وحش "وـحت فحغ "خذایا پاسػایا بضسی سا و دس اضای سیاضت ػضت پان ػبادت یا ػ یا حش بح

اػت بؼت اذ ش چ صدتش تفیمـا د تا دس ای طبیؼت خ خذا و ش خدی سا خض ای ا ؼاوی

دس ای اذا صذ خا ش رس ای خض ای ا ا ػی دس ای ظا ا خمت ش خحلی سا خحض

ای پاوا پن یا پوا پان مـی اػت خایی بشای حـش ای و یذاذ چشا صذی یىحذ تح باؿحذ

وی بش ل كغ یایذخمت اص بیدی ػبث پان شدد دس چـ ظاش بی پیش حافظ خطا

خذایا شا اص ای خاؼ پیذ لات پشػتی و چ وغ یش ؿذ لاحتؾ اص یاد سفت بیاسی ؿذ

و اص فشا ػیتؾ ش و اص آ ػا اذ باؿذ بیاس یایذ ل بذاس تا ب سػایت لات حمیمت سا

ربح ؿشػی ى

ػـم ب خذاذا پیابش شا با وؼب دی با حح تؼلحب ػح استدحاء خذایا زاس و ایا ب اػال

أاص وذ.و آصادی ا اػیش پؼذ ػا شدد.و دی دس پغ خ دیی دف ؿد، و ػاضدی شا مذ

تمیذ وذا ػاصد و آچ سا حك یذا بخاطش آى بذ یذاذ وتا ى.

ا ایا، ا ا بشای یاسد، لت بخؾ تا ا سا حتی ا سا دس خطش ایا افى تا ت خذایا سحتی و

اص آا باؿ و پ دیا سا ییشذ بشای دی واس یىذ، آا و پ دی ییشحذ بحشای دیحا وحاس

یىذ.

ای و بشای صیؼت زؿت اػت حؼحشت خذایا ب صیؼتی ػطا و و دس اظ شي بش بی ثشی اظ

خس شدی ػطا و و بش بیدیؾ ػاس باؿ.

دوتش ػی ؿشیؼتی