Upload
mohsenseif
View
109
Download
5
Embed Size (px)
Citation preview
:به نام خدا
راهنمای استفاده ازراهنمای استفاده از
MMiiccrrooccoonnttrroolllleerr 88005511
AAllpphhaannuummeerriicc LLCCDD GGrraapphhiiccaall LLCCDD
PPrrootteeuussدر در
محسن سیف اله زاده
1
مقذمهمقذمه بشادس اسخذ، خاش شای اص ایى دس احؼحاع حا طاؼ ای طاب ؼتیذ بؼیاس خؿحاا
سضایت ذی یى اص ایى ؿایذ ای دػ بتاذ دس سد باحثی و بذباؾ ؼتیذ ساحای خحبی
اص ایح لاب روش اػت و طاب پیؾ س بخـی اص ؼتذات یه پشط بد و ب اتا شػیذ بشایتا باؿذ.
اػتماد ب ایى صوات ػ آخت اػت ایح طاحب س دس ایتشحت بح اؿحتشان زاؿحت تحا س با ػایت
دیشا اص آ بشذ ؿذ.
وذ یؼی آ ذاسذ چذا 8551ای دػ بشای افشادی و آؿایی مذاتی با یىش وتشش
فیذ خاذ بد.
2/15/88ػیف ا صاد اؼ
1395دی ا 5یشایؾ
فهرستفهرست
5 .................................................................................................................................... فهرستفهرست
1 ........................................................................................................................... بخش اول :بخش اول :
Alphanumeric LCD (LCDcharacter ) ................................................................... 12کار با
19 .......................................................................................................................... بخش دوم:بخش دوم:
Graphical LCD..................................................................................................... 19کار با
35 ........................................................................................................... وتروتریی:ارتباط با کامپ:ارتباط با کامپمهمهییضمضم
42 .................................................................................................................................... منابع:منابع:
1
بخش اول :بخش اول : سا ذاسیذ شاح صیش سا طی ویذ. Proteusپغ اص لب ش افضاس دس كستی و آؿایی لبی با
سا فـاس دیذ سا سی ححشف Pوشد ػپغ حشف ویه Component Modeدس ی ابضاس سی آیى
P ـا داد ؿذ دس ؿى ویه ویذ دس پدشPick Device ظحاش خاحذ ؿحذ دس پدحش حزوس دس
و ای ػای سا Categoryا ػی سد ظشتا سا اسد ویذ بشای ایىاس یتایذ Keywordsلؼت
سا اتخحا AND,LogicState,LogicProb ثا ا ػ ػحی دػت بذی وشد اػتفاد ویذ. دس ای
وشد ای.
-01 شکل
-02 شکل
2
-03 شکل
حای سی كحفا یتایحذ تیدح سا LogicStateا اخشاػحت بحا ویحه سی حا و ؿبی ػاصی دس ح
بشسػی ویذ.
حات آحشا تیییحش LogicStateتخ داؿت باؿیذ بشای ایى بتایذ با ویه وشد سی یه ػی اذ
لشاس داؿت باؿذ. Selectدیذ بایذ یچ وذا اص ػای دس حات
-04 شکل
اخشای بشا سا تلف ویذ.
ساػت ویه سی ش وذا اص ػای یتایذ آشا حزف ویذ.با دباس
3
یؼت ابضاستا اضاف ویذ. اػب چاس پای ای سا ب 7segی: یه بشپیؾ حا وی خ تش
-05 شکل
7seg سا سی كفا اكی آسد ش چاس پای آشا ب یهLogicState . ك ویذ
باس دیش بشا سا اخشا وشد تید سا بشسػی ویذ.
-06 شکل
وشد اتخا ضی ا خد دس آ یتایحذ تخ داؿت باؿیذ بؼذ اص اتخا یه ػی با ساػت ویه
حات چشخؾ ػاػت شد یا پاد ػاػت شد داؿت باؿیذ یا تیییش ضؼیت آی سا سی آ اػا ویذ.
یابش اػبی بشای ایىاس اػت. '-' '+'فـاس داد ویذ
-07 شکل
ه ا ختش پیؾ بشی.بیایذ ی
4
اص وح یتایحذ بحشای خؼحتدی ػحشیؼتش ) ب دػح ابضاستحا اضحاف ویحذ 8551یه یىش وتشش
80C51 .)اػتفاد ویذ
-08 شکل
آ كح ویحذ. P2سا بح پحست seg7ب كفا اكی بیاسد پای حای 7segیىش وتشش سا ب شا
دلت ویذ و پای ا اػب ك ؿذ باؿذ یؼی پای و اسصؽ ب پی و اسصؽ ...
سا ب خای كح ویحذ احا دس RST پای XTAL1,XTAL2ضشستی ذاسد و پای ای Proteusدس
ای بؼحذی بح ایح ؼحاو خحای حات الؼی ای پای ا بایذ بطس اػب ك ؿذ باؿذ دس بخؾ ح
پشداخت فؼال بشا ػادی بیـتش ای پای ا سا آصاد بزاسیذ.
-09 شکل
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
6
-012 شکل
سا اتخا ویذ. Edit Propertiesت ویه وشد ضی سی یىش وتشش ساػ Proteusدس بشا .4
-013 شکل
تیذ ؿذ سا اتخا ویذ . Hexفای Edit Componentدس پدش .5
7
-014 شکل
سا ویه وشد تید سا ـاذ ویذ. Run حا بشا آاد اخشاػت دو
-015 شکل
شاح صیش سا طی ویذ. asmاا سا ح اكی تش ای اػت و پغ اص رخیش وذ ا دس فای
سا اتخا ویذ. … Add/Remove Source filesسفت ضی Sourceب لؼت .1
8
-016 شکل
ویححه وححشد فایحح Newسی دوحح Add/Remove Source Code Filesدس پدححش .2
test.asm .ػپغ دس ا پدحش اص لؼحت سا اتخا ویذCode Generation Tool ضیح
ASM51 .سا اتخا ویذ
-017 شکل
hex lsd sdiسا اتخحا ویحذ تحا فایح Build Allسفت ضی Sourceباس دیش ب ی .3
ػاخت ؿذ.
-018 شکل
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 @@@@@
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
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
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پای
)واساوتش(
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 ایؾ سؿ ىا ا سؿ
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
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
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
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
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تست ت میسان مفیذ تودوش از درصورتی ک مفیذ و مثمر ثمر تودکىیذ.سیى ادام مطالة
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 )ای طشاحی ؿذ و بشای اػتفاد اص آ بایذ اص ماتای
25
داخ ایح پىحیح ب ایط وحاس اضحاف ویحذ. یض یه پىیح مات ـتایی سا DLCپغ ػال بش یىش
اسذ.ت بلست اصی دس واس لشاس دـت ما
-027 شکل
Terminalsك ویذ. بشای ایىاس سی آیى 5vیا ا powerمات ػشی سا ب 1پای
Mode ویه ویذ ) بشای تضیح بیـتش ب ؿى تخ ویذ(. بمی پای ا سا یحض احذ ؿحى بح یىحش
ك ویذ.
-028 شکل
آیتای دیشی یض خد داسذ و بذ یؼت تضحیح ختلحشی دس سدؿحا Terminalsدس لؼت
داد ؿد.
-029 شکل
ب ػا یه تشیا دس د اتای یه ػی وـی اػحتفاد یـحد. یؼحی بدحای ػحی DEFAULTابضاس
وـی ای پیچیذ بذ یتای اص ای ابضاس اػتفاد وی و تا دس لؼحت پایاح حا كح یـحذ.ب
ؿى صیش تخ ویذ.
21
ای د ؿى با ؼادذ.
اا بیاد داؿت باؿیذ و بشای ایى بی د پایا استباا خد داؿت باؿذ بایحذ حش د اص یحه حا اػحتفاد
وذ.
Property Assignmentپدش 'A'ضا بشای ا زاسی خدواس یتایذ با فـشد دو
Tool اػتفاد ویذ.اسی سا ـد اص اىاات آ بشای ا ز
-030 شکل
ادحا Busسا بحشای یحه وابح DEFAULTؼاد واسحای TERMINALSدس بخؾ Bussو
ب ػا صی اػتفاد یـد. GROUNDض ایى حشف یذذ.
ادا واس بش یشدی.ب
یطی اذ ؿى صیش سا داسد.ا 128x64شافیىی LCDیه سی آ و خت سؿ وحشد حش مطح
خت خاؽ وشد یه مط مذاس آشا كفش یىی. 1مذاس آشا
-031 شکل
تای بحش سی حذاوثش ماطی و دس یه اظ ییتا پیـبیی وشد، LCDچا و اص خط دیتای ای
LCD اذ مط اػت. 8سؿ یا خاؽ ویLCD واساوتشی بحشای ؿحت دس حش لؼحت اص ایح
LCD لؼیت اتشیؼی آ مط( آدسع آ مط سا اسد وی. ا یض بایذ(
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)
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خاؽ مط ا
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 شکل
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
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 شکل
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 ;----------------------------------------
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
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 شکل
35
تبذی وی. LCDض تاػب با او بت آ اػت و ػىغ وـیذ ؿذ سا ب وذای
پیىؼحی بح 128x64بحشای تبحذی ػىؼحای LCDCodeGeneratorش افضاس وچىی بحا حا
)اش بشا اػبی سا بشای ایىاس پیذا ىشدیذ یتایذ خدتحا دػحت بح خد داسد. LCD اػبیوذای
طشاحی ویذ.(واس ؿیذ یه بشا اػب با صبا ای یظا بشای ایىاس
change.batىح ی. اذ ؿى سی آباؿذ pic.bmpبشای اػتفاد اص آ ا ػىؼتا حتا بایذ
بؼحححاصد ػحححپغ یتایحححذ بحححا وحححه pic.lcdیحححه pic.bmpویحححه ویحححذ تحححا بحححشای
LCDCodeGenerator .آشا باص وشد یشایؾ ویذ دس ایت ب وذ اػبی تبذی ویذ
ای خد با صبا غیش ایؼی ػاصاسی ذاسد بشای ی ػؼی ویذ چی بشاح حایی ) بشخی اص بشا
سا داخ پؿ ای با ا فاسػی رخیش ىیذ(
-041 شکل
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
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
33
خشخی بشا:
-042 شکل
ویذ. traceب ا اخشای ؿبی ػاصی یتایذ وذای خدتا سا
ضیح cpu 8051 صیحش حی Debugسا اتخحا ویحذ ػحپغ اص حی stepابتحذا آیىح
source code .سا اتخا ویذ تا پدش وذ ایؾ داد ؿد
-043 شکل
34
-044 شکل
ػالت صد ؿذ باؿذ ب واس یشد. : بشای اخشای پیػت بشا تا خایی و تػط
: بشای اخشای ػطش ب ػطش بذ سد ب داخ صیش بشا ب واس یشد.
ی اخشای ػطش ب ػطش با سد ب داخ صیش بشا ب واس یشد.: بشا
: بشای اخشای وا صیش بشا خشج اص آ ب ػطح باالتش ب واس یشد.
یتایذ ب واس ببشیذ. CPUی واساسا بشای ـاذ سخیؼتش ا یا حافظ داخ
ایؾ دی. ای واساسا بشای ػىغ صیحش ادحا LCDتا ایدای واس ا فك ؿذی یه كفا سا سی
.ی دی تا سی كفا ایؾ داد ؿد
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
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
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.
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
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
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
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
42
منابع:منابع:
ؿت اذ ػی ضیذی،خایغ یؼپی، تشخ لذست ػپیذ ا 8551وتا یىش وتششhttp://www.mikroe.com http://www.8051projects.net http://www.eca.ir
اؼ ػیف ا صاد59143186489
43
یبؼضح ذی بزاس ذیحاك آد ؿ یب یا ییبب بذ ذی اخاص بذ ذیو ؼت یدس ش حشف ا
بىـحاذ. دس آساحؾ ححاو بحش یذیح اا اعیح ؿحا سا بح ذیح آ یح ؾیپ یذت یاظات تاػف باس و بشا
.ذیو یصذ تای وتابخا ا ـاایآصا
: ذیبپشػح ذیس ی ؾیچ وشد ا؟ ػپغ چا و پ ی خد آص یشی ادی یبشا ذیاص خد بپشػ خؼت
یاحؼحاع ؿحاد یح تا ب ا ذیپشػؾ سا آمذس ادا د یوـس چ وشد ا؟ ا یبشا ی بخحؾ دحا
یاحا حش پاداؿح ذیداؿت ا تیبـش ی اػتال ـشفتیدس پ یػ وچى ذیو ؿا ذیبشػ ضیا بح یوح صحذ
ححك آ سا ذیح حش وحذا اص حا با یؿ ی هیضد ایتالؿا ایو ب پا یذذ ا ایبذذ تایتالؿا
: ییبذ ب یو با كذا یداؿت باؿ
آچ دس تا داؿت ا ادا داد ا
پاػتس یی
خذایا شا اص فضاوی و ب واس شد یایذ اش ػاص ب خات حـی ؼاسف طیفحی بحتال
اساء بشق شػی سا دس ػك چـحی خحط وبحد ى و دس خزب احؼاع ای بذ اج ؼشاج ای
تاصیا سا بش پـتی تا دیذ.
وحش "وـحت فحغ "خذایا پاسػایا بضسی سا و دس اضای سیاضت ػضت پان ػبادت یا ػ یا حش بح
اػت بؼت اذ ش چ صدتش تفیمـا د تا دس ای طبیؼت خ خذا و ش خدی سا خض ای ا ؼاوی
دس ای اذا صذ خا ش رس ای خض ای ا ا ػی دس ای ظا ا خمت ش خحلی سا خحض
ای پاوا پن یا پوا پان مـی اػت خایی بشای حـش ای و یذاذ چشا صذی یىحذ تح باؿحذ
وی بش ل كغ یایذخمت اص بیدی ػبث پان شدد دس چـ ظاش بی پیش حافظ خطا
خذایا شا اص ای خاؼ پیذ لات پشػتی و چ وغ یش ؿذ لاحتؾ اص یاد سفت بیاسی ؿذ
و اص فشا ػیتؾ ش و اص آ ػا اذ باؿذ بیاس یایذ ل بذاس تا ب سػایت لات حمیمت سا
ربح ؿشػی ى
ػـم ب خذاذا پیابش شا با وؼب دی با حح تؼلحب ػح استدحاء خذایا زاس و ایا ب اػال
أاص وذ.و آصادی ا اػیش پؼذ ػا شدد.و دی دس پغ خ دیی دف ؿد، و ػاضدی شا مذ
تمیذ وذا ػاصد و آچ سا حك یذا بخاطش آى بذ یذاذ وتا ى.
ا ایا، ا ا بشای یاسد، لت بخؾ تا ا سا حتی ا سا دس خطش ایا افى تا ت خذایا سحتی و
اص آا باؿ و پ دیا سا ییشذ بشای دی واس یىذ، آا و پ دی ییشحذ بحشای دیحا وحاس
یىذ.
ای و بشای صیؼت زؿت اػت حؼحشت خذایا ب صیؼتی ػطا و و دس اظ شي بش بی ثشی اظ
خس شدی ػطا و و بش بیدیؾ ػاس باؿ.
دوتش ػی ؿشیؼتی