SlideShare a Scribd company logo
1 of 46
Download to read offline
‫خدا‬ ‫نام‬ ‫به‬:
‫از‬ ‫استفاده‬ ‫راهنمای‬‫از‬ ‫استفاده‬ ‫راهنمای‬
MMiiccrrooccoonnttrroolllleerr 88005511
AAllpphhaannuummeerriicc LLCCDD
GGrraapphhiiccaall LLCCDD
‫در‬‫در‬PPrrootteeuuss
‫زاده‬ ‫اله‬ ‫سیف‬ ‫محسن‬
mohsen_seif@yahoo.com
1
‫مقذمه‬‫مقذمه‬
‫دس‬ ٝ‫ایٙى‬ ‫اص‬ ‫ٌشأی‬ ‫خٛاٞش‬ ،‫اسخٕٙذ‬ ‫بشادس‬ِٓ‫خٛؿحاا‬ ‫بؼیاس‬ ‫ٞؼتیذ‬ ‫ٔطاِب‬ ٗ‫ای‬ ٝ‫ٔطاِؼ‬ َ‫حا‬‫احؼحاع‬ ٚ
‫خحٛبی‬ ‫سإٞٙحای‬ ‫ٞؼتیذ‬ ‫بذ٘باِؾ‬ ٝ‫و‬ ‫ٔباحثی‬ ‫ٔٛسد‬ ‫دس‬ ‫بتٛا٘ذ‬ ٝ‫ٔدٕٛػ‬ ٗ‫ای‬ ‫ؿایذ‬ ٝ‫ایٙى‬ ‫اص‬ ٓٙ‫ٔیى‬ ‫ٔٙذی‬ ‫سضایت‬
.‫باؿذ‬ ٖ‫بشایتا‬‫٘شػیذ‬ ْ‫اتٕا‬ ٝ‫ب‬ ٝ‫و‬ ٜ‫بٛد‬ ٜ‫پشٚط‬ ‫یه‬ ‫ٔؼتٙذات‬ ‫اص‬ ‫بخـی‬ ٚ‫س‬ ‫پیؾ‬ ‫ٔطاِب‬ ٝ‫و‬ ‫اػت‬ ‫روش‬ ُ‫لاب‬ٗ‫ایح‬ ‫اص‬
ٚ ‫ػٙایت‬ ‫با‬ ٚ‫س‬‫تحا‬ ٓ‫ٌزاؿحت‬ ‫اؿحتشان‬ ٝ‫بح‬ ‫ایٙتش٘حت‬ ‫دس‬ ٚ‫س‬ ‫ٔطاِحب‬ ٗ‫ایح‬ ‫اػت‬ ٗ‫آٔٛخت‬ ّٓ‫ػ‬ ‫صوات‬ ٝ‫ایٙى‬ ٝ‫ب‬ ‫اػتماد‬
.‫ؿٛ٘ذ‬ ‫بٟشٔٙذ‬ ٖ‫آ‬ ‫اص‬ ٖ‫دیٍشا‬
‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫با‬ ‫ٔمذٔاتی‬ ‫آؿٙایی‬ ٝ‫و‬ ‫افشادی‬ ‫بشای‬ ٝ‫ٔدٕٛػ‬ ٗ‫ای‬8551ٖ‫چٙذا‬ ‫٘ذاس٘ذ‬ ٖ‫آ‬ ‫٘ٛیؼی‬ ‫وذ‬ ٚ
.‫بٛد‬ ‫٘خٛاٞذ‬ ‫ٔفیذ‬
ٗ‫ٔاؼ‬ٜ‫صاد‬ ِٝ‫ا‬ ‫ػیف‬2/15/88
‫ٚیشایؾ‬5ٜ‫ٔا‬ ‫دی‬1395
‫فهرست‬‫فهرست‬
‫فهرست‬‫فهرست‬....................................................................................................................................5
: ‫اول‬ ‫بخش‬: ‫اول‬ ‫بخش‬...........................................................................................................................1
‫با‬ ‫کار‬Alphanumeric LCD(LCDcharacter)...................................................................12
:‫دوم‬ ‫بخش‬:‫دوم‬ ‫بخش‬..........................................................................................................................19
‫با‬ ‫کار‬Graphical LCD.....................................................................................................19
‫ضم‬‫ضم‬‫ی‬‫ی‬‫مه‬‫مه‬‫کامپ‬ ‫با‬ ‫:ارتباط‬‫کامپ‬ ‫با‬ ‫:ارتباط‬‫ی‬‫ی‬‫وتر‬‫وتر‬...........................................................................................................35
:‫منابع‬:‫منابع‬....................................................................................................................................42
1
: ‫اول‬ ‫بخش‬: ‫اول‬ ‫بخش‬
‫با‬ ‫لبّی‬ ‫آؿٙایی‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬ ‫افضاس‬ ْ‫٘ش‬ ‫٘لب‬ ‫اص‬ ‫پغ‬Proteus.‫وٙیذ‬ ‫طی‬ ‫سا‬ ‫صیش‬ ُ‫ٔشاح‬ ‫٘ذاسیذ‬ ‫سا‬
ٖٛ‫آیى‬ ‫سٚی‬ ‫ابضاس‬ ‫ٔٙٛی‬ ‫دس‬Component Mode‫وّیه‬‫حشف‬ ‫ػپغ‬ ٚ ٜ‫وشد‬P‫ححشف‬ ‫سٚی‬ ‫سا‬ ‫دٞیذ‬ ‫فـاس‬ ‫سا‬
Pٜ‫پٙدش‬ ‫دس‬ ‫وٙیذ‬ ‫وّیه‬ ُ‫ؿى‬ ‫دس‬ ٜ‫ؿذ‬ ٜ‫داد‬ ٖ‫٘ـا‬Pick Device‫دس‬ ‫ٔحزوٛس‬ ٜ‫پٙدحش‬ ‫دس‬ ‫ؿحذ‬ ‫خٛاٞحذ‬ ‫ظحاٞش‬
‫لؼٕت‬Keywords‫ٔیتٛا٘یذ‬ ‫ایٙىاس‬ ‫بشای‬ ‫وٙیذ‬ ‫ٚاسد‬ ‫سا‬ ٖ‫٘ظشتا‬ ‫ٔٛسد‬ ّٝ‫ٚػی‬ ْ‫٘ا‬Category‫سا‬ ُ‫ٚػای‬ ٗ‫ای‬ ٝ‫و‬
‫ای‬ ‫دس‬ .‫وٙیذ‬ ٜ‫اػتفاد‬ ٜ‫وشد‬ ‫بٙذی‬ ٝ‫دػت‬ّٝ‫ٚػحی‬ ٝ‫ػ‬ ‫ٔا‬ َ‫ٔثا‬ ٗAND,LogicState,LogicProb‫ا٘تخحا‬ ‫سا‬
.ٓ‫ای‬ ٜ‫وشد‬
‫شکل‬‫‏‬01-
‫شکل‬‫‏‬02-
2
‫شکل‬‫‏‬03-
‫ح‬ ‫دس‬ ‫ػاصی‬ ٝ‫ؿبی‬ ٝ‫و‬ َ‫حا‬‫سٚی‬ ‫وّیحه‬ ‫بحا‬ ‫اخشاػحت‬ َ‫ا‬LogicState‫سا‬ ٝ‫٘تیدح‬ ‫ٔیتٛا٘یحذ‬ ٝ‫كحفا‬ ‫سٚی‬ ‫ٞحای‬
.‫وٙیذ‬ ‫بشسػی‬
‫ٔا٘ٙذ‬ ّٝ‫ٚػی‬ ‫یه‬ ‫سٚی‬ ٖ‫وشد‬ ‫وّیه‬ ‫با‬ ‫بتٛا٘یذ‬ ٝ‫ایٙى‬ ‫بشای‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬LogicState‫تیییحش‬ ‫آ٘حشا‬ ‫حاِت‬
‫حاِت‬ ‫دس‬ ُ‫ٚػای‬ ‫اص‬ ْ‫وذا‬ ‫ٞیچ‬ ‫٘بایذ‬ ‫دٞیذ‬Select.‫باؿٙذ‬ ٝ‫داؿت‬ ‫لشاس‬
‫شکل‬‫‏‬04-
.‫وٙیذ‬ ‫ٔتٛلف‬ ‫سا‬ ٝٔ‫بش٘ا‬ ‫اخشای‬
‫دٚباس‬ ‫با‬.‫وٙیذ‬ ‫حزف‬ ‫آ٘شا‬ ‫ٔیتٛا٘یذ‬ ُ‫ٚػای‬ ‫اص‬ ْ‫وذا‬ ‫ٞش‬ ‫سٚی‬ ‫وّیه‬ ‫ساػت‬
3
‫تش‬ ّٛ‫خ‬ ‫وٕی‬ َ‫حا‬‫پیؾ‬‫بش‬ٚ‫یه‬ :ٓ‫ی‬7segٝ‫ب‬ ‫سا‬ ‫ای‬ ٝ‫پای‬ ‫چٟاس‬ ‫ٔٙاػب‬.‫وٙیذ‬ ٝ‫اضاف‬ ٖ‫ابضاستا‬ ‫ِیؼت‬
‫شکل‬‫‏‬05-
7seg‫یه‬ ٝ‫ب‬ ‫آ٘شا‬ ٝ‫پای‬ ‫چٟاس‬ ‫ٞش‬ ٚ ٜ‫آٚسد‬ ‫اكّی‬ ٝ‫كفا‬ ‫سٚی‬ ‫سا‬LogicState. ‫وٙیذ‬ ُ‫ٚك‬
.‫وٙیذ‬ ‫بشسػی‬ ‫سا‬ ٝ‫٘تید‬ ٚ ٜ‫وشد‬ ‫اخشا‬ ‫سا‬ ٝٔ‫بش٘ا‬ ‫دیٍش‬ ‫باس‬
‫شکل‬‫‏‬06-
‫وّیه‬ ‫ساػت‬ ‫با‬ ّٝ‫ٚػی‬ ‫یه‬ ‫ا٘تخا‬ ‫اص‬ ‫بؼذ‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬‫ٔیتٛا٘یحذ‬ ٖ‫آ‬ ‫دس‬ ‫ٔٛخٛد‬ ‫ٞا‬ ٝٙ‫ٌضی‬ ‫ا٘تخا‬ ٚ ٖ‫وشد‬
.‫وٙیذ‬ َ‫اػٕا‬ ٖ‫آ‬ ‫سٚی‬ ‫سا‬ ٝٙ‫آی‬ ‫ٚضؼیت‬ ‫تیییش‬ ‫یا‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫ٌشد‬ ‫ػاػت‬ ‫پاد‬ ‫یا‬ ‫ٌشد‬ ‫ػاػت‬ ‫چشخؾ‬ ‫حاِت‬
‫وّیذ‬ ٖ‫داد‬ ‫فـاس‬'+'ٚ'-'.‫اػت‬ ‫ایٙىاس‬ ‫بشای‬ ‫ٔٙاػبی‬ ‫ٔیا٘بش‬
‫شکل‬‫‏‬07-
‫ی‬ ‫بیایذ‬.ٓ‫بشٚی‬ ‫پیؾ‬ ‫خّٛتش‬ ٓٞ ْ‫ٌا‬ ‫ه‬
4
‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫یه‬8551‫وٙیحذ‬ ٝ‫اضحاف‬ ٖ‫ابضاستحا‬ ٝ‫ٔدٕٛػح‬ ٝ‫ب‬(‫ػحشیؼتش‬ ‫خؼحتدٛی‬ ‫بحشای‬‫ٔیتٛا٘یحذ‬ٝ‫وّٕح‬ ‫اص‬
80C51.)‫وٙیذ‬ ٜ‫اػتفاد‬
‫شکل‬‫‏‬08-
ٜ‫ٕٞشا‬ ٝ‫ب‬ ‫سا‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬7seg‫ٞحای‬ ٝ‫پای‬ ٚ ‫بیاٚسد‬ ‫اكّی‬ ٝ‫كفا‬ ٝ‫ب‬seg7‫پحٛست‬ ٝ‫بح‬ ‫سا‬P2.‫وٙیحذ‬ ُ‫ٚكح‬ ٖ‫آ‬
... ٚ ‫اسصؽ‬ ٓ‫و‬ ٗ‫پی‬ ٝ‫ب‬ ‫اسصؽ‬ ٓ‫و‬ ٝ‫پای‬ ‫یؼٙی‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ُ‫ٚك‬ ‫ٔٙاػب‬ ‫ٞا‬ ٝ‫پای‬ ٝ‫و‬ ‫وٙیذ‬ ‫دلت‬
‫دس‬Proteus‫ٞای‬ ٝ‫پای‬ ٝ‫و‬ ‫٘ذاسد‬ ‫ضشٚستی‬XTAL1,XTAL2ٝ‫پای‬ ٚRST‫دس‬ ‫أحا‬ ‫وٙیحذ‬ ُ‫ٚكح‬ ‫خای‬ ٝ‫ب‬ ‫سا‬
‫ٞح‬ ‫بخؾ‬ ‫دس‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ُ‫ٚك‬ ‫ٔٙاػب‬ ‫بطٛس‬ ‫بایذ‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫ٚالؼی‬ ‫حاِت‬ٓ‫خحٛاٞی‬ ُ‫ٔؼحاو‬ ٗ‫ایح‬ ٝ‫بح‬ ‫بؼحذی‬ ‫ای‬
.‫بٍزاسیذ‬ ‫آصاد‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫بیـتش‬ ‫ػادٌی‬ ‫بشا‬ ‫فؼال‬ ‫پشداخت‬
‫شکل‬‫‏‬09-
5
‫بشای‬ ‫٘ٛیؼی‬ ٝٔ‫بش٘ا‬ ‫٘ٛبت‬ ‫حاال‬ ‫٘ىٙیذ‬ ّٝ‫ػد‬8051.‫اػت‬
‫یه‬text documentٝ‫ػاخت‬ٝ‫بح‬ ‫آ٘شا‬ ‫پؼٛ٘ذ‬ ٚasm‫دٞیحذ‬ ‫تیییحش‬‫تِٛیح‬ ‫بحشای‬ (.ُ‫فایح‬ ‫ذ‬hex‫پؼحٛ٘ذ‬ ‫تیییحش‬
ٝ‫بح‬ ‫آ٘شا‬ ‫پؼٛ٘ذ‬ ‫اػت‬ ‫بٟتش‬ ٓ‫٘ىٙی‬ ‫بشخٛسد‬ ‫ٔـىّی‬ ٝ‫ب‬ ٝٔ‫ادا‬ ‫دس‬ ٝ‫ایٙى‬ ‫بشای‬ ‫أا‬ ‫٘یؼت‬ ‫ضشٚسی‬ ٖ‫چٙذا‬asm‫تیییحش‬
)‫دٞیذ‬
ُ‫فای‬ ٗ‫ای‬ ‫بٙابش‬test.asm‫اػٕبّی‬ ‫وذٞای‬ ‫با‬ ‫آ٘شا‬ ‫ٔاتٛای‬ ٚ.ٓ‫ٔیؼاصی‬ ‫سا‬8551.ٓ‫ٔیىٙی‬ ‫پش‬‫باؿحیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬
‫بٙذی‬ ‫وذ‬ ‫اص‬ ‫بایذ‬ ‫حتٕا‬ ٝ‫و‬ASCII‫اػت‬‫افحضاس‬ ْ‫٘حش‬ ‫بحا‬ ‫استبحاا‬ ‫دس‬ ُ‫فایح‬ ٗ‫ایح‬ ٝ‫و‬ ‫آ٘دایی‬ ‫اص‬ ٗ‫وٙیذ.ٕٞچٙی‬ ٜ‫فاد‬
Proteus.‫باؿذ‬ ‫واسوتش‬ ‫ٞـت‬ ‫اص‬ ‫وٕتش‬ ‫حتٕا‬ ‫ٔیىٙیذ‬ ‫ا٘تخا‬ ُ‫فای‬ ٗ‫ای‬ ‫بشای‬ ٝ‫و‬ ‫سا‬ ‫٘أی‬ ‫ضشٚسیؼت‬ ‫بٛد‬ ‫خٛاٞذ‬
.‫وٙیذ‬ ‫ٚاسد‬ ‫صیش‬ ‫كٛست‬ ٝ‫ب‬ ‫سا‬ ‫وذٞا‬
org 0
mov p2,#2
end
ٚ‫ٔیىش‬ ‫بشای‬ ٖ‫خٛا٘ذ‬ ُ‫لاب‬ ‫ٔزوٛس‬ ‫وذٞای‬ ٝ‫ایٙى‬ ‫بشای‬ُ‫فای‬ ‫بایذ‬ ‫باؿذ‬hex.‫وٙیذ‬ ‫تِٛیذ‬ ٓٞ ‫آ٘شا‬
1..‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ‫ٔتٙاػب‬ ‫اػٕبّی‬ ٚ ‫بشٚیذ‬ ‫صیش‬ ‫ٔؼیش‬ ٝ‫ب‬
D:Program FilesLabcenter ElectronicsProteus 7 ProfessionalTools
‫شکل‬‫‏‬010-
2.‫و‬ ‫ٔٛع‬ ‫با‬ ‫ایذ‬ ٝ‫٘ٛؿت‬ ‫لبال‬ ٝ‫و‬ ‫سا‬ ‫ٔتٙی‬ ُ‫فای‬ٝٔ‫بش٘ا‬ ‫سٚی‬ ٚ ٜ‫ـیذ‬ASEM.‫وٙیذ‬ ‫سٞا‬
‫شکل‬‫‏‬011-
3.ُ‫فای‬ ‫باؿذ‬ ٝ‫٘ذاؿت‬ ‫ٔـىّی‬ ‫ؿٕا‬ ٝٔ‫بش٘ا‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬Hex.‫ؿذ‬ ‫خٛاٞذ‬ ‫تِٛیذ‬ ٖ‫آ‬
6
‫شکل‬‫‏‬012-
4.ٝٔ‫بش٘ا‬ ‫دس‬Proteus‫ساػ‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫سٚی‬ٝٙ‫ٌضی‬ ٚ ٜ‫وشد‬ ‫وّیه‬ ‫ت‬Edit Properties.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬
‫شکل‬‫‏‬013-
5.ٜ‫پٙدش‬ ‫دس‬Edit Componentُ‫فای‬Hex. ‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ٜ‫ؿذ‬ ‫تِٛیذ‬
7
‫شکل‬‫‏‬014-
‫دو‬ ‫اخشاػت‬ ٜ‫آٔاد‬ ٝٔ‫بش٘ا‬ َ‫حا‬ٕٝRun.‫وٙیذ‬ ٜ‫ٔـاٞذ‬ ‫سا‬ ٝ‫٘تید‬ ٚ ٜ‫وشد‬ ‫وّیه‬ ‫سا‬
‫شکل‬‫‏‬015-
ُ‫فای‬ ‫دس‬ ‫ٞا‬ ‫وذ‬ ٜ‫رخیش‬ ‫اص‬ ‫پغ‬ ٝ‫و‬ ‫اػت‬ ٗ‫ای‬ ‫تش‬ ‫اكِٛی‬ ُ‫ح‬ ٜ‫سا‬ ‫أا‬asm.‫وٙیذ‬ ‫طی‬ ‫سا‬ ‫صیش‬ ُ‫ٔشاح‬
1.‫لؼٕت‬ ٝ‫ب‬Sourceٝٙ‫ٌضی‬ ٚ ٝ‫سفت‬Add/Remove Source files ….‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬
8
‫شکل‬‫‏‬016-
2.ٜ‫حش‬‫ح‬‫پٙد‬ ‫دس‬Add/Remove Source Code Filesٝ‫ح‬‫ح‬ٕ‫دو‬ ‫سٚی‬Newُ‫ح‬‫ح‬‫فای‬ ٚ ٜ‫حشد‬‫ح‬‫و‬ ‫حه‬‫ح‬‫وّی‬
test.asm.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬‫لؼحٕت‬ ‫اص‬ ٜ‫پٙدحش‬ ٖ‫ٕٞا‬ ‫دس‬ ‫ػپغ‬Code Generation Toolٝ‫ٌضیٙح‬
ASM51.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬
‫شکل‬‫‏‬017-
3.‫ٔٙٛی‬ ٝ‫ب‬ ‫دیٍش‬ ‫باس‬Sourceٝٙ‫ٌضی‬ ٚ ٝ‫سفت‬Build Allُ‫فایح‬ ‫تحا‬ ‫وٙیحذ‬ ‫ا٘تخحا‬ ‫سا‬hexٚlsdٚsdi
.‫ؿٛ٘ذ‬ ٝ‫ػاخت‬
‫شکل‬‫‏‬018-
9
.‫دیذ‬ ‫خٛاٞیذ‬ ‫سا‬ ‫صیش‬ ُ‫ؿى‬ ‫باؿٙذ‬ َ‫اؿىا‬ ٖٚ‫بذ‬ ‫ؿٕا‬ ‫دػتٛسات‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬
‫شکل‬‫‏‬019-
‫وذ‬ ‫ٔیتٛا٘یذ‬ ٚhexٝ‫ب‬ ُ‫لب‬ ُ‫ٔث‬ ‫آ٘شا‬8551.‫وٙیذ‬ ُ‫ٚك‬
‫صیش‬ ‫كٛست‬ ٝ‫ب‬ ‫ٔثال‬ ‫ؿٕا‬ ‫وذٞای‬ ‫اٌش‬ ‫أا‬ٜ‫اؿتبا‬.‫ؿذ‬ ‫خٛاٞیذ‬ ٝ‫ٔٛاخ‬ ‫صیش‬ ْ‫پییا‬ ‫با‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ‫ٚاسد‬
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
78797A7B7C7D7E7F2F
‫بیتی‬‫پزیش‬‫آدسع‬‫ٔىاٟ٘ای‬
70717273747576772E
68696A6B6C6D6E6F2D
60616263646566672C
58595A5B5C5D5E5F2B
50515253545556572A
48494A4B4C4D4E4F29
404142434445464728
38393A3B3C3D3E3F27
303132333435363726
28292A2B2C2D2E2F25
202122232425262724
18191A1B1C1D1E1F23
101112131415161722
08090A0B0C0D0E0F21
000102030405060720
‫با٘ه‬31F
18
‫با٘ه‬217
10
‫با٘ه‬10F
08
‫بشای‬ ‫فشم‬ ‫پیؾ‬ ‫ثبات‬ ‫با٘ىٟای‬ R0-R707
00
11
‫شکل‬‫‏‬022-
‫بیت‬ ‫آدسع‬‫بایت‬ ‫آدسع‬
FF
BF0F1F2F3F4F5F6F7F0
ACCE0E1E2E3E4E5E6E7E0
PSWD0D1D2D3D4D5D6D7D0
IPB8B9BABBBC------B8
P3B0B1B2B3B4B5B6B7B0
IEA8A9AAABAC----AFA8
P2A0A1A2A3A4A5A6A7A0
SBUFnot bit addressable99
SCON98999A9B9C9D9E9F98
P1909192939495969790
TH1not bit addressable8D
TH0not bit addressable8C
TL1not bit addressable8B
TH0not bit addressable8A
TMODnot bit addressable89
TCON88898A8B8C8D8E8F88
PCONnot bit addressable87
DPHnot bit addressable83
DPLnot bit addressable82
SPnot bit addressable81
P0808182838485868780
12
‫با‬ ‫کار‬Alphanumeric LCD(character LCD)
LCD‫وحاسوتش‬ ‫ٔیتٛا٘یحذ‬ ٖ‫آ‬ ٝ‫بح‬ ‫اػىی‬ ‫وذ‬ َ‫اسػا‬ ‫با‬ ‫ػادٌی‬ ٝ‫ب‬ ٝ‫و‬ ‫ا٘ذ‬ ٜ‫ؿذ‬ ‫طشاحی‬ ‫ای‬ ٌٝ٘ٛ ٝ‫ب‬ ‫واساوتشی‬ ‫ٞای‬
‫ٔـا‬ ‫سا‬ ‫٘ظش‬ ‫ٔٛسد‬.‫وٙیذ‬ ٜ‫ٞذ‬
‫یه‬LCD‫واساوتشی‬2×25‫افضاس‬ ْ‫٘ش‬ ‫واس‬ ‫ٔایط‬ ٝ‫ب‬ ‫سا‬Proteus.‫بیاٚسیذ‬
‫شکل‬‫‏‬023-
ٗ‫ای‬LCDُٔ‫ؿا‬16‫دس‬ ٝ‫و‬ ‫اػت‬ ٝ‫پای‬Proteus،14.‫اػت‬ ٜ‫ٔـاٞذ‬ ُ‫لاب‬ ٓ‫ٔؼتمی‬ ‫بلٛست‬ ٖ‫آ‬ ‫تای‬
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
‫دس‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫اص‬ ‫بشخی‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬Proteus. ‫آٔذ‬ ‫٘خٛاٞذ‬ ‫پیؾ‬ ‫ٔـىّی‬ ‫٘ىٙیذ‬ ُ‫ٚك‬‫ٞحای‬ ٝ‫پای‬ ‫یؼٙی‬1،
2،3ٝ‫ب‬ ‫تشتیب‬ ٝ‫ب‬ ٝ‫و‬0Vٚ5V‫واساوتشٞحای‬ ‫وٙتشاػحت‬ ٖ‫ػٙحٛا‬ ٝ‫بح‬ ٝ‫وح‬ ٝ‫ػح‬ ٜ‫ؿٕاس‬ ٝ‫پای‬ ٚ ‫ؿذ‬ ‫خٛاٞذ‬ ُ‫ٚك‬
ٛ‫ٔیت‬ ٝ‫و‬ ‫وشد‬ ‫خٛاٞذ‬ ُٕ‫ػ‬ ٜ‫ؿذ‬ ٝ‫٘ٛؿت‬‫یه‬ ٝ‫ب‬ ‫آ٘شا‬ ٖ‫ا‬(PVT).‫وحشد‬ ُ‫ٚكح‬ ‫ِٚت‬ ‫كفش‬ ٝ‫ب‬ ‫یا‬ ٚ ‫ٔتیییش‬ ‫ٔماٚت‬‫فؼال‬
.‫وٙیذ‬ ‫سٞا‬ ‫آصاد‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬
ٝ‫پای‬RSٜ‫داد‬ ‫یحه‬ ‫یحا‬ ‫اػحت‬ ُ‫ػٕح‬ ‫دػحتٛس‬ ‫یحه‬ ‫ٚسٚدی‬ ‫آیحا‬ ٝ‫وح‬ ‫ٔیىٙذ‬ ٗ‫تؼیی‬ ‫ٔیىٙیذ‬ ٜ‫ٔـاٞذ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬
)‫(واساوتش‬
13
R/Wٝ‫ب‬ ‫اػت‬ ‫لشاس‬ ‫ای‬ ٜ‫داد‬ ‫آیا‬ ٝ‫و‬ ‫ٔیىٙذ‬ ٗ‫تؼیی‬LCDٖ‫آ‬ ‫اص‬ ‫یا‬ ‫ؿٛد‬ ٜ‫فشػتاد‬.‫ؿٛد‬ ٜ‫خٛا٘ذ‬
‫باالی‬ ٝ‫ب‬ ٗ‫پایی‬ ‫یا‬ ٗ‫پایی‬ ٝ‫ب‬ ‫باال‬ )َ‫(ػیٍٙا‬ ٝ‫ضشب‬ ‫یه‬ ‫با‬ ‫واسٞا‬ ٗ‫ای‬ ٕٝٞEN.‫ٔیـٛد‬ ْ‫ا٘دا‬
‫ٞای‬ ٝ‫پای‬D0‫تا‬D7.‫ٔیـٛ٘ذ‬ ٜ‫اػتفاد‬ ٜ‫داد‬ ‫باع‬ ٖ‫ػٙٛا‬ ٝ‫ب‬
( ‫واساوتش‬ ‫یه‬ َ‫اسػا‬ ‫بشای‬ ٝ‫و‬ ‫صد‬ ‫حذع‬ ٖ‫ٔیتٛا‬ ‫اطالػات‬ ٗ‫ای‬ ‫با‬ َ‫حا‬dataُ‫ٔث‬ )'A'.‫وشد‬ ‫بایذ‬ ٝ‫چ‬
‫واسوتش‬ ‫اػىی‬ ‫وذ‬ ‫بایذ‬ َٚ‫ا‬A( ٜ‫داد‬ ‫باع‬ ُ‫داخ‬ ‫سا‬D0‫تا‬D7.ٓ‫بشیضی‬ )
‫بایذ‬ ‫پغ‬ ‫اػت‬ ٜ‫داد‬ ‫یه‬ ‫خٛا‬ ‫؟‬ ُٕ‫اِؼ‬ ‫دػتٛس‬ ‫یا‬ ‫اػت‬ ٜ‫داد‬ ‫یه‬ ٗ‫ای‬RS.ٓ‫وٙی‬ ‫یه‬ ‫سا‬
‫سٚی‬ ‫سا‬ ٜ‫داد‬ ٗ‫ای‬ ‫اػت‬ ‫لشاس‬ ‫ٔا‬LCD‫پغ‬ ٓ‫بٙٛیؼی‬ ٖ‫آ‬ ‫سٚی‬ ‫خٛا‬ ‫بخٛا٘یٓ؟‬ ٖ‫آ‬ ‫اص‬ ‫یا‬ ٓ‫بٙٛیؼی‬R/W‫كحفش‬ ‫بایذ‬
.‫ؿٛد‬
‫ػّٕی‬ ٗ‫ای‬ ٝ‫و‬ ٓ‫داسی‬ ‫٘یاص‬ َ‫ػیٍٙا‬ ‫یه‬ ٝ‫ب‬ ‫تٟٙا‬ َ‫حا‬‫بایذ‬ ‫یؼٙی‬ ‫وٙذ‬ َ‫اػٕا‬ ‫سا‬ ‫ات‬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
.‫اػت‬ ‫صیش‬ ‫ؿش‬ ٝ‫ب‬ ٝ‫و‬ ‫داسد‬ ‫ٚخٛد‬ ‫خاكی‬ ٜ‫ؿٕاس‬ ُٕ‫اِؼ‬ ‫دػتٛس‬ ‫ٞش‬ ‫بشای‬
‫وذ‬Hexadecimalٝ‫ب‬ ٖ‫فشٔا‬LCD
1‫ٕ٘ایؾ‬ ٝ‫كفا‬ ٖ‫وشد‬ ‫پان‬
2)‫(ؿشٚع‬ َٚ‫ا‬ ٖ‫ٔىا‬ ٝ‫ب‬ ‫باصٌـت‬
4)‫چپ‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫(خابدای‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫واٞؾ‬
6‫ٔى‬ ‫(خابدای‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫افضایؾ‬)‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ا‬
5‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ‫خابدایی‬
7‫چپ‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ‫خابدای‬
8‫خأٛؽ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫خأٛؽ‬ ‫ٕ٘ایؾ‬
Aٗ‫سٚؿ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫خأٛؽ‬ ‫ٕ٘ایؾ‬
C‫خأٛؽ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬
Eٗ‫سٚؿ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬
14
F‫بض٘ذ‬ ‫چـٕه‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬
10‫چپ‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ُ‫ٔا‬ ‫خابدایی‬
14ٔ ‫خابدایی‬‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ُ‫ا‬
18‫ؿٛد‬ ‫خابدا‬ ‫چپ‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ٝ‫كفا‬ ُ‫و‬
1C‫ؿٛد‬ ‫خابدا‬ ‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ٝ‫كفا‬ ُ‫و‬
C0‫بشٚد‬ ْٚ‫د‬ ‫خط‬ ‫آغاص‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬
38‫ػاصٔا٘ذٞی‬2‫ٔاتشیغ‬ ٚ ‫خط‬5×7
‫دس‬ ‫سا‬ ُٕ‫ػ‬ ٗ‫ٕٞی‬ ‫باال‬ ‫اطالػات‬ ‫وٕه‬ ‫با‬ ٓ‫داسی‬ ٓ‫تلٕی‬ َ‫حا‬Proteusٖ‫داد‬ ٝ‫ادأح‬ ‫اص‬ ‫پحیؾ‬ ٓ‫وٙی‬ ‫ػاصی‬ ٝ‫ؿبی‬
‫ضشٚسی‬‫دػتٛس‬ ‫ٔٛسد‬ ‫دس‬ ‫وٕی‬ ‫ٔیشػذ‬ ‫٘ظش‬ ٝ‫ب‬EQU‫تٛضیح‬‫ؿٛد‬ ٜ‫داد‬.
.‫بٍیشیذ‬ ‫٘ظش‬ ‫دس‬ ‫سا‬ ‫صیش‬ ‫دػتٛس‬ ‫ٔا٘ٙذ‬ ‫دػتٛسی‬
X EQU 40
‫بایت‬ ‫دػتٛس‬ ٗ‫ای‬ ‫با‬45ٝ‫حافظ‬ ْ‫ا‬RAMّٕٝ‫و‬ ‫با‬ ‫سا‬ ٚ‫ٔیىش‬X‫ٔحا‬ ٝ‫و‬ ‫صٔا٘ی‬ ‫دس‬ ٝ‫و‬ ‫اػت‬ ‫بذیٟی‬ .‫ٔیض٘ذ‬ ‫بشچؼب‬
‫وذ‬ ‫اػٕبّی‬ ‫وذٞای‬ ‫اص‬hexّٕٝ‫و‬ ٓ‫ٔیىٙی‬ ‫ایداد‬X‫ٔمذاس‬ ‫با‬45ٝ‫صٔیٙح‬ ‫وحاس‬ ٗ‫ایح‬ ‫أحا‬ .‫ؿحذ‬ ‫خٛاٞیحذ‬ ٗ‫خایٍضی‬
.‫ٔیىٙذ‬ ‫ایداد‬ ‫سا‬ ‫ٞا‬ ٜ‫ؿٕاس‬ ‫بدای‬ ‫اػأی‬ ‫وٕه‬ ‫با‬ ٝ‫حافظ‬ ‫ٔذیشیت‬ ‫بشای‬ ‫ٔٙاػبی‬
‫حشف‬ ‫ٔیذا٘یذ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬b‫ححشف‬ ٚ ‫بحایٙشی‬ ‫ػذد‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ‫سا‬ ‫ػذد‬ ٖ‫آ‬ ‫خاف‬ ‫ػذدی‬ ‫اص‬ ‫بؼذ‬hٝ‫بح‬ ‫سا‬ ‫ػحذد‬ ٖ‫آ‬
.‫ؿٙاخت‬ ‫خٛاٞذ‬ َ‫ٍٞضادػیٕا‬ ‫ػذد‬ ٖ‫ػٙٛا‬
‫بش‬ ٜٚ‫ػال‬LCD‫واساوتشی‬2×25‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫یه‬8551‫دس‬ ‫خحٛد‬ ‫وحاس‬ ‫ٔایط‬ ٝ‫ب‬ ٓٞ ‫سا‬Proteusٝ‫اضحاف‬
.‫وٙیذ‬ٝ‫ب‬ ‫صیش‬ ُ‫ؿى‬ ُ‫ٔث‬ ‫آ٘شا‬ ‫ٞای‬ ٝ‫پای‬ ٚ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
ٝ‫خا٘ح‬ ‫دس‬ ٜ‫ؿذ‬ َ‫اسػا‬ ٜ‫داد‬ ‫ٔیـٛد‬ ‫باػث‬ ‫دػتٛس‬ ٗ‫ای‬ ‫وٙیذ‬ ٝ‫تٛخ‬80ٝ‫حافظح‬ ‫اص‬ ْ‫ا‬DDRAM(Display
Data RAM٘)‫سٚی‬ ‫دس‬ ‫كفش‬ ‫ٔٛلؼیت‬ ‫با‬ َ‫ٔؼاد‬ ٝ‫و‬ ‫ؿٛد‬ ٝ‫ٛؿت‬LCD‫چطحٛس‬ ٓ‫ؿحٛی‬ ٝ‫ٔتٛخ‬ ٝ‫ایٙى‬ ‫بشای‬ .‫اػت‬
‫ٔخت‬ ‫ٞای‬ ‫ٔٛلؼیت‬ ٝ‫ب‬‫سٚی‬ ‫ّف‬‫یه‬LCDٓ‫وٙی‬ ٜ‫اػتفاد‬ ‫صیش‬ ‫سٚؽ‬ ‫اص‬ ‫بایذ‬ ٓ‫باؿی‬ ٝ‫داؿت‬ ‫دػتشػی‬ ‫ػطشی‬ ٚ‫د‬.
‫جدول‬0-1
‫دس‬ َ‫ٔثا‬ ‫بشای‬LCD‫ٔا‬ ‫ای‬ ٝ٘‫خا‬ ‫بیؼت‬‫بشابش‬ ْٚ‫د‬ ‫ػطش‬ ‫اص‬ ٝ٘‫خا‬ ٗ‫اِٚی‬ ٜ‫ؿٕاس‬C0ْٚ‫د‬ ‫ػحطش‬ ‫اص‬ ٝ‫خا٘ح‬ ٗ‫آخحشی‬ ٚ
‫بشابش‬D3.‫بٛد‬ ‫خٛاٞذ‬‫٘حٛع‬ ٗ‫ای‬ ‫ٔٛسد‬ ‫دس‬ ‫بیـتش‬ ‫اطالػات‬ ‫بشای‬LCD‫اص‬ ‫ٔیتٛا٘یحذ‬ ‫ٞحا‬ata sheetd‫آٟ٘حا‬
.‫وٙیذ‬ ٜ‫اػفتاد‬
‫افضاس‬ ْ‫٘ش‬ ‫دس‬ ‫ایٙىاس‬ ‫بشای‬Proteus‫سٚی‬LCDٕٝ‫دو‬ ٚ ‫وٙیذ‬ ‫وّیه‬ ُ‫داب‬Data‫خحٛد‬ ‫بطحٛس‬ ‫تا‬ ‫دٞیذ‬ ‫فـاس‬ ‫سا‬
‫واس‬datasheet‫سٚؽ‬ ٗ‫ایح‬ ‫اص‬ ‫ٔیتٛا٘یذ‬ ‫ٞا‬ ‫آیؼی‬ ‫اوثش‬ ‫ٔٛسد‬ ‫دس‬ .‫دٞذ‬ ‫ٕ٘ایؾ‬ ٚ ٜ‫وشد‬ ‫داّ٘ٛد‬ ‫ایٙتش٘ت‬ ‫اص‬ ‫آ٘شا‬
.‫وٙیذ‬ ٜ‫اػتفاد‬
‫لؼٕت‬ ٝ‫ب‬ ‫دػتٛسات‬ ‫دس‬
;-----------------------------write-------
mov A,#'2'
acall write_char
mov A,#32H
acall write_char
here: sjmp here
‫واساوتش‬ ‫اػىی‬ ‫وذ‬ َٚ‫ا‬ ‫باس‬ ٝ‫و‬ ‫وٙیذ‬ ٝ‫تٛخ‬'2'ُ‫داخ‬ ‫دس‬ ‫سا‬A‫ػحذد‬ ْٚ‫د‬ ‫باس‬ ٚ ‫ٔیذٞذ‬ ‫لشاس‬32Hُ‫داخح‬ ‫دس‬ ‫سا‬
Aٞ ٓٞ ‫باص‬ ٝ‫و‬ ‫ٔیذٞذ‬ ‫لشاس‬‫ػذد‬ ‫اػىی‬ ‫وذ‬ ٖ‫ٕا‬2‫وحاساوتش‬ ‫دٚباس‬ ‫دػتٛسات‬ ٗ‫ای‬ ‫دس‬ ‫ػباستی‬ ٝ‫ب‬ .‫ٞؼت‬2ٝ‫٘ٛؿحت‬
.‫ٔیـٛد‬
‫وٕحه‬ ‫با‬ ٓ‫ٔیخٛاٞی‬ ٖٛٙ‫او‬data pointer‫اختلحاس‬ ‫بطحٛس‬ ٝ‫وح‬DPTRٝ‫سؿحت‬ ‫یحه‬ ‫ٔیـحٛد‬ ٝ‫٘ٛؿحت‬
‫سٚی‬ ‫سا‬ ‫واساوتشی‬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-
‫حٛع‬‫ح‬٘ ٗ‫ح‬‫ح‬‫ای‬ ‫اص‬ ٜ‫حذ‬‫ح‬٘‫ٔا‬ ‫حالی‬‫ح‬‫ب‬ ٝ‫ح‬‫ح‬‫٘ىت‬ ‫حه‬‫ح‬‫ی‬LCD‫حك‬‫ح‬‫طشی‬ ‫اص‬ ‫حا‬‫ح‬ٞ ‫حاساوتش‬‫ح‬‫و‬ ٗ‫ح‬‫ح‬‫ای‬ ٝ‫ح‬‫ح‬‫وّی‬ ٝ‫ح‬‫ح‬‫ایٙى‬CGROM(-
Character Generator ROM.‫وحشد‬ ‫ٔحذیشیت‬ ‫آ٘شا‬ ٖ‫ٔیتٛا‬ ٝ‫و‬ ‫ٔیـٛد‬ ‫تِٛیذ‬ )‫اطالػحات‬ ‫بحشای‬
‫بیـتش‬‫ٔٛسد‬ ‫دس‬Alphanumeric LCDٝ‫ب‬ ‫ٔیتٛا٘یذ‬
http://www.8051projects.net/lcd-interfacing/
.‫وٙیذ‬ ٝ‫ٔشاخؼ‬
‫تـىش‬ ‫با‬ٜ‫صاد‬ ِٝ‫ا‬ ‫ػیف‬ ٗ‫ٔاؼ‬1
mmohsen_seif@yahoo.co
1
‫قسمت‬ ‫ایه‬ ‫تا‬ ً‫مقال‬ ‫قیمت‬ ً‫توج‬35555‫از‬ ‫میتواویذ‬ ‫خودتان‬ ‫اختیار‬ ً‫ت‬ ً‫ک‬ ‫تاشذ‬ ‫می‬ ‫لایر‬5‫تا‬155‫در‬ ‫تگیریذ‬ ‫وظر‬ ‫در‬ ‫تخفیف‬ ‫آن‬ ‫ترای‬ ‫درصذ‬
‫از‬ ‫غیر‬ ً‫ت‬ ‫تخفیفی‬ ً‫ک‬ ‫صورتی‬155‫حساب‬ ‫شماري‬ ً‫ت‬ ‫میتواویذ‬ ‫داشتیذ‬ ‫درصذ‬1572355655211‫واریس‬ ‫زادي‬ ً‫ال‬ ‫سیف‬ ‫محسه‬ ‫وام‬ ً‫ت‬ ً‫سپ‬ ‫تاوک‬
‫مطالة‬ ً‫ادام‬ ً‫کىیذ.ٌسیى‬‫تود‬ ‫ثمر‬ ‫مثمر‬ ‫و‬ ‫مفیذ‬ ً‫ک‬ ‫درصورتی‬‫از‬ ‫تودوش‬ ‫مفیذ‬ ‫میسان‬ ً‫ت‬ ً‫تست‬35555‫تا‬255555.‫میثاشذ‬
19
:‫دوم‬ ‫بخش‬:‫دوم‬ ‫بخش‬
‫با‬ ‫کار‬Graphical LCD
‫بشخالف‬Alphanumeric LCD‫بخـٟا‬ ٝ‫ب‬ ٖ‫آ‬ ‫٘ماا‬ ٝ‫و‬ٜ‫اػتفاد‬ ‫با‬ ٖ‫ٔیتٛا‬ ٚ ٜ‫ؿذ‬ ٓ‫تمؼی‬ ‫وٛچىتش‬ ‫ی‬
‫اص‬CGROM‫دس‬ ‫وشد‬ ‫ٔذیشیت‬ ٚ ‫٘ٛؿت‬ ‫سا‬ ‫خاكی‬ ‫واسوتش‬ ٖ‫آ‬ ‫سٚی‬Graphical LCD‫كحٛست‬ ٝ‫بح‬ ‫٘محاا‬
‫ػطح‬ ْ‫تٕا‬ ‫سٚی‬ ٝ‫و‬ ‫ٔیـٛ٘ذ‬ ‫ٔذیشیت‬ ٓٞ ‫وٙاس‬ ‫دس‬ ٚ ‫یىدا‬LCD.‫ا٘ذ‬ ٜ‫ؿذ‬ ٜ‫ٌؼتشد‬
‫یه‬LCD‫ٌشافیىی‬64×128‫افضاس‬ ْ‫٘ش‬ ‫واس‬ ‫ٔایط‬ ٝ‫ب‬ ‫سا‬Proteus.‫بیاٚسیذ‬
‫ش‬‫کل‬‫‏‬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
‫جدول‬0-2
ُ‫ٔث‬ ٖ‫آ‬ ‫ٞای‬ ٝ‫پای‬LCD( .‫ٔیىٙیذ‬ ُٕ‫ػ‬ ‫واساوتشی‬ٝ‫كفا‬12)
ٝ‫پای‬VO‫ٔتییش‬ ‫(ٔماٚت‬ ‫پتا٘ؼیٛٔتش‬ ‫یه‬ ٝ‫ب‬ ٝ‫و‬POT‫وٕه‬ ٝ‫ب‬ ٚ ‫ٔیـٛد‬ ُ‫ٚك‬ )VDDٖ‫ٔیحضا‬contrast
ٝ‫٘ٛؿت‬.‫ٔیىٙذ‬ ٓ‫تٙظی‬ ‫سا‬ ‫ٞا‬
D/Iٚ ‫٘یؼت‬ ‫خذیذی‬ ٝ‫پای‬َ‫ٔؼاد‬RS.‫اػت‬
ٝ‫پای‬A(Anode +ٝ‫پای‬ ٚ ‫ٔثبت‬ ‫ِٚتاط‬ ٝ‫ب‬ )K(-cathode‫باػحث‬ ٝ‫و‬ ‫ٔیـٛ٘ذ‬ ُ‫ٚك‬ ‫ٔٙفی‬ ٝ‫پای‬ ٝ‫ب‬ )
ُ‫داخ‬ ‫ٞای‬ ‫چشاؽ‬ ٖ‫ؿذ‬ ٗ‫سٚؿ‬LCD.‫ٔیـٛ٘ذ‬
ٝ‫پای‬CS1(chip select1ٚ )CS2‫چحپ‬ ‫یحا‬ ‫ساػحت‬ ‫ػحٕت‬ ٜ‫وٙٙذ‬ َ‫فؼا‬ ٖ‫ػٙٛا‬ ٝ‫ب‬‫ٕ٘حایؾ‬ ٝ‫كحفا‬
‫ٔی‬.‫باؿذ‬
ٝ‫پای‬RES(RESET.‫ٔیـٛد‬ َ‫فؼا‬ ‫كفش‬ ‫با‬ ٝ‫و‬ ‫ٔیباؿذ‬ )
‫دیتای‬ ‫ٞای‬ ٝ‫پای‬ ٖٛٙ‫او‬LCD‫سا‬‫پٛست‬ ٝ‫ب‬P0‫پٛست‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫یاد‬ ٝ‫ب‬ .‫وٙیذ‬ ُ‫ٚك‬ ٚ‫ٔیىش‬P0ٝ‫ٌٛ٘ح‬ ٝ‫بح‬
‫ٔماٚٔتٟای‬ ‫اص‬ ‫بایذ‬ ٖ‫آ‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬ ٝ‫و‬ ٜ‫ؿذ‬ ‫طشاحی‬ ‫ای‬10k(resistor 10k).ٓ‫وٙی‬ ٜ‫اػتفاد‬
25
ٚ ٚ‫ٔیىش‬ ‫بش‬ ٜٚ‫ػال‬ ‫پغ‬DLC‫سا‬ ‫ٞـتایی‬ ‫ٔماٚٔت‬ ‫پىیح‬ ‫یه‬‫٘یض‬.‫وٙیحذ‬ ٝ‫اضحاف‬ ‫وحاس‬ ‫ٔایط‬ ٝ‫ب‬‫پىحیح‬ ٗ‫ایح‬ ُ‫داخ‬
‫ٔما‬ ‫ٞـت‬‫د‬ ‫لشاس‬ ٓٞ ‫وٙاس‬ ‫دس‬ ‫ٔٛاصی‬ ‫بلٛست‬ ‫ٚٔت‬.‫اس٘ذ‬
‫شکل‬‫‏‬027-
ٝ‫پای‬1ٝ‫ب‬ ‫سا‬ ‫ػشی‬ ‫ٔماٚٔت‬powerٖ‫ٕٞا‬ ‫یا‬5vٖٛ‫آیى‬ ‫سٚی‬ ‫ایٙىاس‬ ‫بشای‬ .‫وٙیذ‬ ُ‫ٚك‬Terminals
Modeٚ‫ٔیىحش‬ ٝ‫بح‬ ُ‫ؿحى‬ ‫ٔا٘ٙحذ‬ ‫٘یحض‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٝ‫بمی‬ .)‫وٙیذ‬ ٝ‫تٛخ‬ ُ‫ؿى‬ ٝ‫ب‬ ‫بیـتش‬ ‫تٛضیح‬ ‫بشای‬ ( ‫وٙیذ‬ ‫وّیه‬
.‫وٙیذ‬ ُ‫ٚك‬
‫شکل‬‫‏‬028-
‫لؼٕت‬ ‫دس‬Terminalsٖ‫ٔٛسدؿحا‬ ‫دس‬ ‫ٔختلحشی‬ ‫تٛضحیح‬ ‫٘یؼت‬ ‫بذ‬ ٝ‫و‬ ‫داس٘ذ‬ ‫ٚخٛد‬ ‫٘یض‬ ‫دیٍشی‬ ‫آیتٕٟای‬
.‫ؿٛد‬ ٜ‫داد‬
‫شکل‬‫‏‬029-
‫ابضاس‬DEFAULTٓ‫ػحی‬ ‫بدحای‬ ‫یؼٙحی‬ .‫ٔیـحٛد‬ ٜ‫اػحتفاد‬ ‫وـی‬ ٓ‫ػی‬ ‫یه‬ ‫ا٘تٟای‬ ٚ‫د‬ ‫دس‬ َ‫تشٔیٙا‬ ‫یه‬ ٖ‫ػٙٛا‬ ٝ‫ب‬
ٝ‫ٔیـحٛ٘ذ.ب‬ ُ‫ٚكح‬ ‫ٞحا‬ ٝ‫پایا٘ح‬ ‫لؼحٕت‬ ‫دس‬ ‫تٟٙا‬ ٝ‫و‬ ٓ‫وٙی‬ ٜ‫اػتفاد‬ ‫ابضاس‬ ٗ‫ای‬ ‫اص‬ ٓ‫ٔیتٛا٘ی‬ ‫بّٙذ‬ ٚ ٜ‫پیچیذ‬ ‫ٞای‬ ‫وـی‬
.‫وٙیذ‬ ٝ‫تٛخ‬ ‫صیش‬ ُ‫ؿى‬
21
.‫ٔؼادِٙذ‬ ٓٞ ‫با‬ ُ‫ؿى‬ ٚ‫د‬ ٗ‫ای‬
ٜ‫اػحتفاد‬ ْ‫٘حا‬ ‫یحه‬ ‫اص‬ ٚ‫د‬ ‫ٞحش‬ ‫بایحذ‬ ‫باؿذ‬ ٝ‫داؿت‬ ‫ٚخٛد‬ ‫استباا‬ ٝ٘‫پایا‬ ٚ‫د‬ ٗ‫بی‬ ٝ‫ایٙى‬ ‫بشای‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫بیاد‬ ‫أا‬
.‫وٙٙذ‬
ٕٝ‫دو‬ ٖ‫فـشد‬ ‫با‬ ‫ٔیتٛا٘یذ‬ ‫خٛدواس‬ ‫ٌزاسی‬ ْ‫٘ا‬ ‫بشای‬ ‫ضٕٙا‬'A'ٜ‫پٙدش‬Property Assignment
Tool‫ٌز‬ ْ‫٘ا‬ ‫بشای‬ ٖ‫آ‬ ‫أىا٘ات‬ ‫اص‬ ٚ ٜ‫ٌـٛد‬ ‫سا‬‫اسی‬.‫وٙیذ‬ ٜ‫اػتفاد‬
‫شکل‬‫‏‬030-
ّٕٝ‫و‬Buss‫بخؾ‬ ‫دس‬TERMINALS‫واسٞحای‬ َ‫ٔؼاد‬DEFAULTُ‫وابح‬ ‫یحه‬ ‫بحشای‬ ‫سا‬Busْ‫ا٘دحا‬
.‫ٔیذٞذ‬‫حشف‬ ٝ‫ایٙى‬ ٕٗ‫ض‬GROUND.‫ٔیـٛد‬ ٜ‫اػتفاد‬ ٗ‫صٔی‬ ٖ‫ػٙٛا‬ ٝ‫ب‬
ٝ‫ب‬.ٓ‫ٔیٍشدی‬ ‫بش‬ ‫واس‬ ٝٔ‫ادا‬
‫یه‬LCD‫ٌشافیىی‬128x64‫ٔا‬.‫داسد‬ ‫سا‬ ‫صیش‬ ُ‫ؿى‬ ‫ٔا٘ٙذ‬ ‫یطی‬ٝ‫٘مطح‬ ‫ٞحش‬ ٖ‫وحشد‬ ٗ‫سٚؿ‬ ‫خٟت‬ ٝ‫و‬ٖ‫آ‬ ‫سٚی‬
‫آ٘شا‬ ‫ٔمذاس‬1.ٓ‫ٔیىٙی‬ ‫كفش‬ ‫آ٘شا‬ ‫ٔمذاس‬ ٝ‫٘مط‬ ‫یه‬ ٖ‫وشد‬ ‫خأٛؽ‬ ‫خٟت‬ ٚ
‫شکل‬‫‏‬031-
ٗ‫ای‬ ‫دیتای‬ ‫خط‬ ‫اص‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬LCD،‫وشد‬ ‫پیـبیٙی‬ ٖ‫ٔیتٛا‬‫ٔی‬ ٝ‫ِاظ‬ ‫یه‬ ‫دس‬ ٝ‫و‬ ‫٘ماطی‬ ‫حذاوثش‬‫سٚی‬ ‫بحش‬ ٓ‫تٛا٘ی‬
LCDٓ‫وٙی‬ ‫خأٛؽ‬ ‫یا‬ ٗ‫سٚؿ‬8.‫اػت‬ ٝ‫٘مط‬ٚ‫ٕٞا٘ٙذ‬LCDٗ‫ایح‬ ‫اص‬ ‫لؼحٕت‬ ‫ٞحش‬ ‫دس‬ ٗ‫٘ٛؿحت‬ ‫بحشای‬ ‫واساوتشی‬
LCD‫بایذ‬ ‫٘یض‬َٚ‫ا‬.ٓ‫وٙی‬ ‫ٚاسد‬ ‫سا‬ ٝ‫٘مط‬ ٖ‫آ‬ ‫آدسع‬)ٝ‫٘مط‬ ٖ‫آ‬ ‫ٔاتشیؼی‬ ‫(ٔٛلؼیت‬
22
‫شکل‬‫‏‬032-
ُ‫ؿى‬ ‫دس‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬ ‫ٞا‬ ‫آدسع‬ ٗ‫ای‬‫ٔمذاس‬ ‫اص‬ ‫اػت‬ ‫ٔـخق‬ ‫٘یض‬40H‫تا‬7FH‫ٔاٛس‬ ‫بشای‬x‫اص‬ ٚ ‫ٞا‬B8H‫تحا‬
BFH‫ٔاٛس‬ ‫بشای‬yٝ‫بح‬ ‫بایحت‬ ‫سا‬ ‫ٔمحادیش‬ ‫ؿحشٚع‬ ‫ٔٛلؼیت‬ ٖ‫وشد‬ ‫ٔـخق‬ ‫با‬ ٓ‫ٔیتٛا٘ی‬ ‫ٔا‬ ٚ .‫اػت‬ ٜ‫ؿذ‬ ٗ‫تؼیی‬ ‫ٞا‬
‫بشای‬ ‫خٛدواس‬ ‫بطٛس‬ ‫ٔمذاس‬ ٗ‫ای‬ ٓ‫بٙٛیؼی‬ ‫٘ماا‬ ‫سٚی‬ ‫بش‬ ‫بایت‬xٝ‫ب‬ ‫تا‬ ‫یابذ‬ ‫ٔی‬ ‫افضایؾ‬ ‫ٞا‬7F.‫بشػذ‬
‫بش‬ ‫تٟٙا‬ ‫اٌش‬ ‫یؼٙی‬‫آدسع‬ ‫ٔثال‬ ‫ٔا‬ ٝ‫و‬ ‫اػت‬ ‫٘یاص‬ ‫ؿشٚع‬ ‫ای‬40Hٗ‫ایح‬ ‫خٛدوحاس‬ ‫بطحٛس‬ ٖ‫آ‬ ‫اص‬ ‫بؼحذ‬ ٚ ٓ‫وٙحی‬ ‫ٚاسد‬ ‫سا‬
.‫٘یؼت‬ ٖ‫آ‬ ‫ٔدذد‬ ٖ‫وشد‬ ‫ٚاسد‬ ٝ‫ب‬ ‫٘یاصی‬ ٚ ‫ٔیابذ‬ ‫افضایؾ‬ ‫آدسع‬
‫افضایؾ‬ ٗ‫ای‬xٝ‫ب‬ ٝ‫و‬ ‫صٔا٘ی‬ ‫تا‬7F‫ػذد‬ ٝ‫ب‬ ٖ‫آ‬ ‫اص‬ ‫بؼذ‬ ٚ ‫ٔیابذ‬ ٝٔ‫ادا‬ ‫بشػذ‬80H،‫ٔیشػحذ‬‫ػحذد‬80H‫ؿحشٚع‬
.‫بٛد‬ ‫خٛاٞذ‬ ْٚ‫د‬ ‫ػطش‬
‫ا‬ ٗ‫ای‬ ‫تشتیب‬‫فضایؾ‬x( ‫ٔا‬ ‫ؿشٚع‬ ‫ٔٛلؼیت‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬ .‫بٛد‬ ‫خٛاٞذ‬ ‫صیش‬ ‫كٛست‬ ٝ‫ب‬40H,B8H.‫بٛد‬ )
‫شکل‬‫‏‬033-
‫سا‬ ‫ؿشٚع‬ ٝ‫٘مط‬ ‫ٔا‬ ‫ٌش‬(40,B8)‫سا‬ ‫ٔمحذاس‬ ٗ‫ایح‬ ‫اٌحش‬ ٚ ٓ‫بٙٛیؼحی‬ َٚ‫ا‬ ‫ػحطش‬ ‫ابتحذای‬ ‫اص‬ ٓ‫ٔیتحٛا٘ی‬ ٓ‫دٞی‬ ‫لشاس‬
(80,B8)‫ٔیتٛا٘ی‬ ٓ‫دٞی‬ ‫لشاس‬‫با‬ ‫اػت‬ َ‫ٔؼاد‬ ٝ‫و‬ ٓ‫بٙٛیؼ‬ ْٚ‫د‬ ‫ػطش‬ ‫ابتذای‬ ‫اص‬ ٓ(40,B9)
23
(80,B8)=(40,B9)
‫افضایؾ‬ ‫اػت‬ ‫ٔـخق‬ ‫٘یض‬ ‫باال‬ ُ‫ؿى‬ ‫دس‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬x‫تحا‬ ‫ٕ٘یـحٛد‬ ‫باػث‬‫ػحتٛ٘ی‬ ‫٘ظحش‬ ‫اص‬ ‫٘محاا‬ ‫ٔٛلؼیحت‬ٝ‫بح‬
‫اص‬ ‫تش‬ ٗ‫پایی‬ ّٝ‫ٔشح‬BC‫ٔمذاس‬ ‫دیٍش‬ ‫باس‬ ‫بایذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬ ‫بشای‬ ٚ . ‫وٙذ‬ ‫سخٛع‬y‫بشابش‬ ‫سا‬BC.ٓ‫دٞی‬ ‫لشاس‬
‫ٔا‬ ‫پغ‬َ‫وٙتش‬ ‫با‬xٚy‫یحه‬ ٗ‫طحشفی‬ َ‫وٙتحش‬ ‫أا‬ ٓ‫وٙی‬ ‫پیذا‬ ‫دػتشػی‬ ٝ‫كفا‬ ٓ‫٘ی‬ ‫یه‬ ‫٘ماا‬ ُ‫و‬ ٝ‫ب‬ ٓ‫ٔیتٛا٘ی‬
LCD‫پیٟٙای‬ ‫وٕه‬ ٝ‫ب‬CS1ٚCS2.‫ٔیـٛد‬ ْ‫ا٘دا‬
‫كفش‬‫اص‬ ‫یه‬ ‫ٞش‬ ٖ‫بٛد‬ٗ‫پی‬ ٚ‫د‬CS1ٚCS2َ‫اػٕحا‬ ‫ساػت‬ ‫یا‬ ‫چپ‬ ‫ػٕت‬ ‫چیپ‬ ‫سٚی‬ ‫ٔا‬ ‫دػتٛسات‬ ‫ٔیـٛد‬ ‫باػث‬
. ‫ؿٛد‬‫وٙیذ‬ ‫فشم‬ ‫یؼٙی‬CS1=CS2=0‫ا‬ ٝ‫ب‬ ٓ‫باؿی‬ ٜ‫وشد‬‫طحشف‬ ٚ‫د‬ ‫ٞحش‬ ٝ‫وح‬ ‫اػحت‬ ‫ٔؼٙی‬ ٗ‫ی‬LCDَ‫فؼحا‬ ‫سا‬
ٓ‫ای‬ ٜ‫وشد‬ٚ‫بایذ‬ َٚ‫ا‬ ‫أا‬ ٓ‫بٙٛیؼی‬ ‫آٟ٘ا‬ ‫سٚی‬ ٓ‫ٔیتٛا٘ی‬‫ٔمذاس‬x,y‫آ٘شا‬‫ٔمحذاس‬ ‫وٙیحذ‬ ‫فشم‬ ٓ‫وٙی‬ ‫ٔـخق‬x,y
‫سا‬‫با‬ ‫بشابش‬(40,B8)‫طشف‬ ٚ‫د‬ ‫ٞش‬ ‫دس‬ ٗ‫٘ٛؿت‬ ُٕ‫ػ‬ ٓ‫ای‬ ٜ‫داد‬ ‫لشاس‬LCD.‫ؿحذ‬ ‫خٛاٞذ‬ ْ‫ا٘دا‬ ‫ٔٛاصی‬ ‫طٛس‬ ٝ‫ب‬‫تحا‬
‫باالی‬ ‫٘لف‬ ٝ‫و‬ ‫صٔا٘ی‬LCD‫بؼ‬ ‫ؿٛد‬ ‫پش‬‫ٔٛلؼیحت‬ ٝ‫بح‬ ٜ‫دٚبحاس‬ ‫بایذ‬ ٖ‫آ‬ ‫اص‬ ‫ذ‬(40,BC)‫دٚبحا‬ ٚ ٝ‫سفتح‬ُ‫ػٕح‬ ٜ‫س‬
‫٘یض‬ ٗ‫پایی‬ ٕٝ‫٘ی‬ ‫بشای‬ ‫سا‬ ٗ‫٘ٛؿت‬.ٓ‫دٞی‬ ْ‫ا٘دا‬
‫شکل‬‫‏‬034-
‫یه‬ ‫ػتٟٛ٘ای‬ ٚ ‫ػطشٞا‬ ‫چطٛس‬ ٝ‫و‬ ٓ‫فٟٕیذی‬ ‫ٔا‬ ‫واس‬ ‫ایٙدای‬ ‫تا‬LCD‫پحش‬ َٛ‫اك‬ ‫أا‬ .ٓ‫باؿی‬ ٝ‫داؿت‬ َ‫وٙتش‬ ‫تات‬ ‫سا‬
ٖ‫وشد‬.‫اػت‬ ٍٝ٘ٛ‫چ‬ ‫٘ماا‬ ٗ‫ای‬ٓ‫ٌفتی‬‫ٔمذاس‬ ‫ٞش‬1‫خحأٛؽ‬ ‫باػحث‬ ‫كحفش‬ ‫ٔمحذاس‬ ٚ ٝ‫٘مطح‬ ‫یه‬ ٖ‫ؿذ‬ ٗ‫سٚؿ‬ ‫باػث‬
( ٝ‫خا٘ح‬ ‫دس‬ ‫ٔحا‬ ٝ‫وح‬ ‫كحٛستی‬ ‫دس‬ .‫ٔیـحٛد‬ ٝ‫٘مطح‬ ٖ‫آ‬ ٖ‫ؿذ‬40,B8‫بحا‬ ‫بشابحش‬ ‫ٚسٚدی‬ ‫دیتحای‬ ‫ٔمحذاس‬ ٚ ٓ‫باؿحی‬ )
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
‫ا‬ ٝ‫چشخ‬ ٜ‫ٕٞٛاس‬ ٝ‫و‬ ‫وٙیذ‬ ٝ‫تٛخ‬‫ٔمحذاس‬ ‫بحاس‬ ‫ٞش‬ ٚ ‫ٔیىٙیذ‬ ‫طی‬ ‫سا‬ ‫ی‬00000000‫سٚی‬ ‫دس‬ ‫سا‬LCD‫ٔیٙٛیؼحذ‬
‫سٚی‬ ‫اػذاد‬ ٗ‫ای‬ ٗ‫٘ٛؿت‬ ٜ‫لاػذ‬LCDُ‫ؿى‬ ‫ٕٞا٘ٙذ‬1-33(ٝ‫كفا‬22).‫بٛد‬ ‫خٛاٞذ‬‫٘لحف‬ ‫تحا‬ ‫یؼٙحی‬LCD
ٝ‫٘لف‬ ‫بشای‬ ٓ‫سػیذی‬ ٝ‫كفا‬ ‫٘لف‬ ٝ‫ب‬ ٝ‫ایٙى‬ ‫اص‬ ‫بؼذ‬ ٝ‫و‬ ٓ‫وٙی‬ ‫اكال‬ ٗ‫چٙی‬ ‫سا‬ ‫دػتٛسات‬ ‫بایذ‬ ‫پغ‬ٜ‫دٚبحاس‬ ‫تحش‬ ٗ‫پایی‬
‫ٔمذاس‬Xٚy‫سٚی‬ ‫اطالػات‬ ُ‫و‬ ٝ‫ایٙى‬ ‫اص‬ ‫پغ‬ ٚ ٓ‫وٙی‬ ‫ٚاسد‬ ‫سا‬LCD.ٓ‫وٙی‬ ْ‫تٕا‬ ‫سا‬ ‫واس‬ ‫ؿذ‬ َ‫اسػا‬‫یحه‬ ‫بحاص‬ ‫أا‬
‫ساػت‬ ‫چپ‬ َ‫وٙتش‬ .‫داسد‬ ‫ٚخٛد‬ ُ‫ٔـى‬LCD‫بایذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬ ‫بشای‬CSٝ‫ایٙىح‬ ‫اص‬ ‫بؼحذ‬ ‫تا‬ ٓ‫وٙی‬ َ‫وٙتش‬ ٓٞ ‫سا‬ ‫ٞا‬
‫چپ‬ ‫ػٕت‬ ‫اص‬ ‫ػطش‬ ‫یه‬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
‫وافیؼت‬ ‫ٞا‬ ٗ‫سٚتی‬ ٗ‫ای‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬DPTR‫سا‬ٝ‫ب‬‫سٚی‬ ‫اػحت‬ ‫لشاس‬ ٝ‫و‬ ‫ؿىّی‬ ‫وذٞای‬ ‫ابتذای‬LCDٓ‫تشػحی‬
.ٓ‫بذٞی‬ ٜ‫اؿاس‬ ٓ‫وٙی‬
‫ػىغ‬ ‫یه‬ ُ‫پیىؼ‬ ‫ٞش‬ ‫اٌش‬BMP‫سٚی‬ ٝ‫٘مط‬ ‫یه‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ‫سا‬LCD‫بذیٟیؼحت‬ ٓ‫وٙحی‬ ‫تلحٛس‬‫بایحذ‬ ُ‫ؿحى‬ ٗ‫ایح‬
128x64.‫باؿذ‬ ُ‫پیىؼ‬‫سٚی‬ ٝ‫ایٙى‬ ٝ‫ب‬ ٝ‫تٛخ‬ ‫با‬LCD‫یحا‬ ‫كحفش‬ ‫یؼٙحی‬ ‫داسد‬ ‫ٚخٛد‬ ٜ‫تیش‬ ‫یا‬ ٗ‫سٚؿ‬ ً٘‫س‬ ٚ‫د‬ ‫تٟٙا‬
‫بیـتش‬ ‫ٕٞاٍٞٙی‬ ‫بشای‬ ‫یه‬BMP‫وٙیحذ.بشای‬ ٜ‫اػحتفاد‬ ‫بیت‬ ‫یه‬ ‫ػٕك‬ ‫با‬ ٜ‫ػیا‬ ٚ ‫ػفیذ‬ ً٘‫س‬ ٚ‫د‬ ‫فشٔت‬ ‫اص‬ ‫بایذ‬ ‫ٔا‬
ٝٔ‫بش٘ا‬ ‫اص‬ ‫ٔیتٛا٘یذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬Paint.‫وٙیذ‬ ٜ‫اػتفاد‬ ‫صیش‬ ‫بلٛست‬ ‫ٚیٙذٚص‬
‫ٔٙححٛی‬ ‫اص‬ ٝ‫بش٘أحح‬ ٖ‫وححشد‬ ‫بححاص‬ ‫اص‬ ‫حغ‬‫ح‬‫پ‬Imageٝ‫ٌضیٙحح‬utesAttribٜ‫پٙدححش‬ ‫تححا‬ ‫وٙیححذ‬ ‫ا٘تخححا‬ ‫سا‬
Attributesٝ‫ب‬ ‫آ٘شا‬ ‫ؿٛد.ػشم‬ ٜ‫داد‬ ‫ٕ٘ایؾ‬64ٝ‫ب‬ ‫آ٘شا‬ َٛ‫ط‬ ٚ128ً‫س٘ح‬ ٚ .‫وٙیحذ‬ ٓ‫تٙظحی‬ ُ‫پیىؼح‬
ٝ‫ب‬ ‫آ٘شا‬Black and white.‫دٞیذ‬ ‫تیییش‬
‫شکل‬‫‏‬040-
35
ٍٞ ‫وذٞای‬ ٝ‫ب‬ ‫سا‬ ٜ‫ؿذ‬ ٜ‫وـیذ‬ ‫ػىغ‬ ٝ‫و‬ ‫اػت‬ ٖ‫آ‬ ‫٘ٛبت‬ ٖٛٙ‫او‬‫با‬ ‫ٔتٙاػب‬ ‫ض‬LCD.ٓ‫وٙی‬ ُ‫تبذی‬
ْ‫٘حا‬ ‫بحا‬ ‫وٛچىی‬ ‫افضاس‬ ْ‫٘ش‬LCDCodeGenerator‫ػىؼحٟای‬ ُ‫تبحذی‬ ‫بحشای‬128x64ٝ‫بح‬ ‫پیىؼحّی‬
‫وذٞای‬‫اػٕبّی‬LCD.‫داسد‬ ‫ٚخٛد‬ٝ‫بح‬ ‫دػحت‬ ٖ‫خٛدتحا‬ ‫ٔیتٛا٘یذ‬ ‫٘ىشدیذ‬ ‫پیذا‬ ‫ایٙىاس‬ ‫بشای‬ ‫سا‬ ‫ٔٙاػبی‬ ٝٔ‫بش٘ا‬ ‫(اٌش‬
‫ایٙىاس‬ ‫بشای‬ َ‫ٚیظٚا‬ ‫ٞای‬ ٖ‫صبا‬ ‫با‬ ‫ٔٙاػب‬ ٝٔ‫بش٘ا‬ ‫ٚیه‬ ‫ؿٛیذ‬ ‫واس‬).‫وٙیذ‬ ‫طشاحی‬
‫بایذ‬ ‫حتٕا‬ ٖ‫ػىؼتا‬ ْ‫٘ا‬ ٖ‫آ‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬pic.bmp‫باؿذ‬‫آ‬ ‫سٚی‬ ُ‫ؿى‬ ‫ٔا٘ٙذ‬ .‫ی‬ٖٛ‫ىح‬change.bat
‫بحححشای‬ ‫تحححا‬ ‫وٙیحححذ‬ ‫وّیحححه‬pic.bmp‫یحححه‬pic.lcd‫وٕحححه‬ ‫بحححا‬ ‫ٔیتٛا٘یحححذ‬ ‫ػحححپغ‬ ‫بؼحححاصد‬
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.‫وٙیذ‬
ٖٛ‫آیىح‬ ‫ابتحذا‬step‫ٔٙحٛی‬ ‫اص‬ ‫ػحپغ‬ ‫وٙیحذ‬ ‫ا٘تخحا‬ ‫سا‬Debug‫ٔٙحٛی‬ ‫صیحش‬ ٚ8051 cpuٝ‫ٌضیٙح‬
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.
‫شکل‬3-1‎‫‏‬
Fig A. - MAX232 Pin Description
‫شکل‬4-1‎
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
‫شکل‬5-1‎
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
mohsen_seif@yahoo.com
43
‫ا‬ ٝ‫حشف‬ ‫ٞش‬ ‫دس‬‫ی‬‫ٞؼت‬ ٝ‫و‬‫ی‬‫ذ‬ٞ‫بذ‬ ٜ‫اخاص‬ ٝ٘‫ی‬‫ذ‬‫بذ‬ ٝ‫ب‬‫ب‬‫ی‬ٙ‫ی‬‫ٞا‬‫ی‬‫ب‬‫ی‬ٛ‫ؿ‬ ٜ‫آِٛد‬ ُ‫حاك‬‫ی‬‫ذ‬‫بٍزاس‬ ٝ٘ ٚ‫ی‬‫ذ‬‫بؼضح‬‫ی‬
‫بشا‬ ٝ‫و‬ ‫باس‬ ‫تاػف‬ ‫ِاظات‬‫ی‬‫ٔذت‬‫ی‬‫پ‬‫ی‬‫ؾ‬‫ٔح‬‫ی‬‫آ‬‫یح‬‫ذ‬ٝ‫بح‬ ‫سا‬ ‫ؿحٕا‬‫یح‬‫اع‬ٔ‫٘اا‬ ٚ‫یح‬‫ذ‬‫ی‬‫بحش‬ ٓ‫ححاو‬ ‫آسأحؾ‬ ‫دس‬ .‫بىـحا٘ذ‬
‫آصٔا‬‫ی‬‫ـٍاٟٞا‬‫ٞا‬ ٝ٘‫وتابخا‬ ٚ‫ی‬ٖ‫تا‬ٌ‫ص٘ذ‬‫ی‬ٙ‫و‬‫ی‬‫ذ‬.
‫٘خؼت‬‫بپشػ‬ ‫خٛد‬ ‫اص‬‫ی‬‫ذ‬‫بشا‬‫ی‬‫ی‬‫اد‬ٌ‫ی‬‫ش‬‫ی‬‫آٔٛص‬ ‫خٛد‬ ٚ‫ی‬‫پ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬ ‫ػپغ‬ ‫اْ؟‬ ٜ‫وشد‬ ٝ‫چ‬‫ی‬‫ؾ‬ٔ‫ی‬ٚ‫س‬‫ی‬‫ذ‬‫بپشػح‬‫ی‬‫ذ‬:
ٗٔ‫بشا‬‫ی‬‫ا‬ ٚ ‫اْ؟‬ ٜ‫وشد‬ ٝ‫چ‬ ْ‫وـٛس‬‫ی‬ٗٞ‫د‬ ٝٔ‫ادا‬ ‫آ٘مذس‬ ‫سا‬ ‫پشػؾ‬‫ی‬‫ذ‬‫ا‬ ٝ‫ب‬ ‫تا‬‫یح‬ٗ‫ؿحاد‬ ‫احؼحاع‬‫ی‬ٚ ‫بخحؾ‬ٞ‫ی‬ٖ‫دحا‬
ٍ٘‫ا‬‫ی‬‫ض‬‫بشػ‬‫ی‬‫ذ‬‫ؿا‬ ٝ‫و‬‫ی‬‫ذ‬‫وٛچى‬ ٟٓ‫ػ‬‫ی‬‫پ‬ ‫دس‬‫ی‬‫ـشفت‬‫اػتال‬ ٚ‫ی‬‫بـش‬‫ی‬‫ت‬‫ا‬ ٝ‫داؿت‬‫ی‬‫ذ‬‫پاداؿح‬ ‫ٞحش‬ ‫أحا‬‫ی‬ٌ‫ص٘حذ‬ ٝ‫وح‬‫ی‬ٝ‫بح‬
‫تالؿٟا‬‫ی‬ٖ‫تا‬‫بذٞذ‬‫ی‬‫ا‬ٔ‫ٍٞٙا‬ ‫٘ذٞذ‬‫ی‬‫پا‬ ٝ‫ب‬ ٝ‫و‬‫ی‬ٖ‫ا‬‫تالؿٟا‬‫ی‬ٖ‫ٕا‬‫٘ضد‬‫ی‬‫ه‬ٔ‫ی‬‫ؿ‬ٛ‫ی‬ٓ‫با‬ ‫ٔحا‬ ‫اص‬ ْ‫وحذا‬ ‫ٞحش‬‫یح‬‫ذ‬‫سا‬ ٖ‫آ‬ ‫ححك‬
‫باؿ‬ ٝ‫داؿت‬‫ی‬ٓ‫كذا‬ ‫با‬ ٝ‫و‬‫ی‬ٍٛ‫ب‬ ‫بّٙذ‬‫یی‬ٓ:
ْٗٔ‫ا‬ ٜ‫داد‬ ْ‫ا٘دا‬ ْ‫ا‬ ٝ‫داؿت‬ ٖ‫تٛا‬ ‫دس‬ ٝ‫آ٘چ‬
ِٛ‫یی‬‫پاػتٛس‬
‫ٔبحتال‬ ‫ِطیفحی‬ ‫ٔؼاسف‬ ‫ٚحـی‬ ‫خٟاِت‬ ٝ‫ب‬ ٚ ‫ػاص‬ ْٚ‫ٔاش‬ ‫٘یایذ‬ ْ‫ٔشد‬ ‫واس‬ ٝ‫ب‬ ٝ‫و‬ ‫فضاوّی‬ ٕٝٞ ‫اص‬ ‫ٔشا‬ ‫خذایا‬
‫ٞای‬ ‫ٔؼشاج‬ ‫اٚج‬ ٚ ‫بّٙذ‬ ‫ٞای‬ ‫احؼاع‬ ٝ‫خزب‬ ‫دس‬ ٝ‫و‬ ٗ‫ٔى‬‫وبحٛد‬ ‫خحط‬ ٚ ‫چـحٕی‬ ‫ػٕك‬ ‫دس‬ ‫سا‬ ‫ٌشػٍٙی‬ ‫بشق‬ ‫ٔاٚساء‬
.‫دیذ‬ ٓ٘‫٘تٛا‬ ‫پـتی‬ ‫بش‬ ‫سا‬ ٝ٘‫تاصیا‬
ٝ‫بح‬ ‫ٞٙحش‬ ‫یا‬ ّٓ‫ػ‬ ‫یا‬ ‫ػبادت‬ ‫پان‬ ‫ػضِت‬ ٚ ‫سیاضت‬ ‫ا٘ضٚای‬ ‫دس‬ ٝ‫و‬ ‫سا‬ ‫بضسٌی‬ ٖ‫پاسػایا‬ ‫خذایا‬"‫٘فحغ‬ ٗ‫وـحت‬"‫وٕحش‬
‫ٔؼٙاوی‬ ‫ٞا‬ ٗ‫ای‬ ‫خض‬ ‫سا‬ ‫ٔٛخٛدی‬ ‫ٞش‬ ٝ‫و‬ ‫خذا‬ ٛ‫خ‬ ‫طبیؼت‬ ٗ‫ای‬ ‫دس‬ ‫تا‬ ٜ‫د‬ ٖ‫تٛفیمـا‬ ‫صٚدتش‬ ٝ‫چ‬ ‫ٞش‬ ‫ا٘ذ‬ ٝ‫بؼت‬ٚ ‫اػت‬
‫خحض‬ ‫سا‬ ‫ٔخّحٛلی‬ ‫ٞش‬ ‫خّمت‬ ًٙٞ‫ٕٞا‬ ْ‫٘ظا‬ ٗ‫ای‬ ‫دس‬ ٚ ‫ػِّٛی‬ ‫ٞا‬ ٍُ٘‫ا‬ ٗ‫ای‬ ‫خض‬ ‫ای‬ ٜ‫رس‬ ‫ٞش‬ ٖ‫خٟا‬ ٜ‫ص٘ذ‬ ْ‫ا٘ذا‬ ٗ‫ای‬ ‫دس‬
ٚ ‫٘باؿحذ‬ ً‫تٙح‬ ‫ٔیىٙحذ‬ ‫ص٘ذٌی‬ ‫چشا‬ ‫ٔیذا٘ذ‬ ٝ‫و‬ ‫ای‬ ٜ‫حـش‬ ‫بشای‬ ‫خایی‬ ‫اػت‬ ‫٘مـی‬ ‫پان‬ ٖ‫پٛوا‬ ‫یا‬ ‫پٛن‬ ٖ‫پاوا‬ ٗ‫ای‬
‫خطا‬ ‫حافظ‬ ‫پیش‬ ٗ‫بی‬ ‫ظاٞش‬ ٓ‫چـ‬ ‫دس‬ ٚ ‫ٌشدد‬ ‫پان‬ ‫ػبث‬ ٚ ‫بیٟٛدٌی‬ ‫اص‬ ‫خّمت‬‫٘یایذ‬ ‫كٙغ‬ ّٓ‫ل‬ ‫بش‬ ‫وی‬
ٜ‫ؿذ‬ ‫بیٕاسی‬ ٚ ٝ‫سفت‬ ‫یاد‬ ‫اص‬ ‫ٚلاحتؾ‬ ٜ‫ؿذ‬ ‫ٌیش‬ ‫وغ‬ ٕٝٞ ٖٛ‫چ‬ ٝ‫و‬ ‫پشػتی‬ ‫ٔلّات‬ ‫پّیذ‬ ٝ‫خأؼ‬ ٗ‫ای‬ ‫اص‬ ‫ٔشا‬ ‫خذایا‬
‫سا‬ ‫حمیمت‬ ‫ٔلّات‬ ‫سػایت‬ ٝ‫ب‬ ‫تا‬ ‫بذاس‬ ٖٛ‫ٔل‬ ‫ٔیٕٙایذ‬ ‫بیٕاس‬ ‫باؿذ‬ ٜ‫ٔا٘ذ‬ ِٓ‫ػا‬ ٖ‫آ‬ ‫اص‬ ٝ‫و‬ ‫ٞش‬ ‫ػٕٛٔیتؾ‬ ‫فشا‬ ‫اص‬ ٝ‫و‬
ٓٙ‫٘ى‬ ‫ؿشػی‬ ‫ربح‬
ْ‫اػال‬ ٝ‫ب‬ ٓ٘‫ایٕا‬ ٝ‫و‬ ‫ٍٔزاس‬ ‫خذایا‬‫استدحاء‬ ٝ‫ػّٕح‬ ٚ ‫تؼلحب‬ ٝ‫حّٕح‬ ‫با‬ ٗ‫دی‬ ٝ‫وؼب‬ ‫با‬ ‫ٔشا‬ ‫پیأبش‬ ٖ‫خذا٘ذا‬ ٝ‫ب‬ ٓ‫ػـم‬ ٚ
‫ٔمّذ‬ ‫ٔشا‬ ‫ػٛأضدٌی‬ ٝ‫و‬ ،‫ؿٛد‬ ٗ‫دف‬ ٓ‫دیٙی‬ ٝ‫ٚخ‬ ‫پغ‬ ‫دس‬ ٓٙ‫دی‬ ٝ‫ٌشدد.و‬ ْ‫ػٛا‬ ‫پؼٙذ‬ ‫اػیش‬ ْ‫ا‬ ‫آصادی‬ ٝ‫وٙذ.و‬ ‫ٕٞأٚاص‬
.ٓٙ‫٘ى‬ ٖ‫وتٕا‬ ‫ٔیذا٘ٙذ‬ ‫بذ‬ ٝ‫آ٘ى‬ ‫بخاطش‬ ٓ٘‫ٔیذا‬ ‫حك‬ ‫سا‬ ٝ‫آ٘چ‬ ٝ‫و‬ ‫ػاصد‬ ٓ٘‫وٙٙذٌا‬ ‫تمّیذ‬
‫و‬ ‫سحٕتی‬ ‫خذایا‬ٗ‫ت‬‫تا‬ ٓٙ‫افى‬ ٓ٘‫ایٕا‬ ‫خطش‬ ‫دس‬ ‫سا‬ ٓٔ‫٘ا‬ ‫حتی‬ ٚ ‫سا‬ ٓ٘‫٘ا‬ ‫تا‬ ‫بخؾ‬ ٓ‫لٛت‬ ،‫٘یاٚسد‬ ٓ‫بشای‬ ٖ‫٘ا‬ ٚ ْ‫٘ا‬ ،ٖ‫ایٕا‬ ‫ا‬
‫وحاس‬ ‫د٘یحا‬ ‫بحشای‬ ٚ ‫ٔیٍیش٘حذ‬ ٗ‫دی‬ َٛ‫پ‬ ٝ‫و‬ ‫آٟ٘ا‬ ٝ٘ ،‫ٔیىٙٙذ‬ ‫واس‬ ٗ‫دی‬ ‫بشای‬ ٚ ‫ٔیٍیش٘ذ‬ ‫سا‬ ‫د٘یا‬ َٛ‫پ‬ ٝ‫و‬ ٓ‫باؿ‬ ‫آٟ٘ا‬ ‫اص‬
.‫ٔیىٙٙذ‬
ٝ‫ِاظ‬ ‫ثٕشی‬ ‫بی‬ ‫بش‬ ‫ٔشي‬ ٝ‫ِاظ‬ ‫دس‬ ٝ‫و‬ ٗ‫و‬ ‫ػطا‬ ‫صیؼتٙی‬ ٗٔ ٝ‫ب‬ ‫خذایا‬‫حؼحشت‬ ‫اػت‬ ٝ‫ٌزؿت‬ ٗ‫صیؼت‬ ‫بشای‬ ٝ‫و‬ ‫ای‬
.ٓ‫٘باؿ‬ ‫ػٌٛٛاس‬ ‫بیٟٛدٌیؾ‬ ‫بش‬ ٝ‫و‬ ٗ‫و‬ ‫ػطا‬ ‫ٔشد٘ی‬ ٚ ْ‫٘خٛس‬
‫ؿشیؼتی‬ ‫ػّی‬ ‫دوتش‬

More Related Content

What's hot

Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
Sumit Girdharwal
 
Sci X I I Model
Sci  X I I  ModelSci  X I I  Model
Sci X I I Model
GUDIA
 
Sapienza stochino-25-06-2013
Sapienza stochino-25-06-2013Sapienza stochino-25-06-2013
Sapienza stochino-25-06-2013
Franco Bontempi
 
Urbanismo - 1 - Ciudad antigua
Urbanismo - 1 - Ciudad antiguaUrbanismo - 1 - Ciudad antigua
Urbanismo - 1 - Ciudad antigua
ArcilaEdwin
 
Urbanismo 1 - ciudad antigua
Urbanismo 1 - ciudad antiguaUrbanismo 1 - ciudad antigua
Urbanismo 1 - ciudad antigua
ArcilaEdwin
 
Ciudad antigua Urbanismo 1
Ciudad antigua Urbanismo 1 Ciudad antigua Urbanismo 1
Ciudad antigua Urbanismo 1
ArcilaEdwin
 
Tong Hop Bai Tap C
Tong Hop Bai Tap CTong Hop Bai Tap C
Tong Hop Bai Tap C
SamQuiDaiBo
 
Kutm hr strategic plan
Kutm hr strategic planKutm hr strategic plan
Kutm hr strategic plan
kutmdoc
 

What's hot (18)

An Introduction to PASETO Tokens
An Introduction to PASETO TokensAn Introduction to PASETO Tokens
An Introduction to PASETO Tokens
 
Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
Baglamukhi Beej Mantra Sadhna Avam Puja Vidhi in Hindi
 
Sci X I I Model
Sci  X I I  ModelSci  X I I  Model
Sci X I I Model
 
साइबर जगत में सुरक्षा: विद्यालयों के लिए (CIET-NCERT) | Cyber Safety and Secu...
साइबर जगत में सुरक्षा: विद्यालयों के लिए (CIET-NCERT) | Cyber Safety and Secu...साइबर जगत में सुरक्षा: विद्यालयों के लिए (CIET-NCERT) | Cyber Safety and Secu...
साइबर जगत में सुरक्षा: विद्यालयों के लिए (CIET-NCERT) | Cyber Safety and Secu...
 
Sapienza stochino-25-06-2013
Sapienza stochino-25-06-2013Sapienza stochino-25-06-2013
Sapienza stochino-25-06-2013
 
निर्भयज्ञान (Nirbhaygyan)
निर्भयज्ञान (Nirbhaygyan)निर्भयज्ञान (Nirbhaygyan)
निर्भयज्ञान (Nirbhaygyan)
 
Kamakhya mantra sadhana evam siddhi in hindi by gurudev shri yogeshwaranand ji
Kamakhya mantra sadhana evam siddhi in hindi by gurudev shri yogeshwaranand jiKamakhya mantra sadhana evam siddhi in hindi by gurudev shri yogeshwaranand ji
Kamakhya mantra sadhana evam siddhi in hindi by gurudev shri yogeshwaranand ji
 
Urbanismo - 1 - Ciudad antigua
Urbanismo - 1 - Ciudad antiguaUrbanismo - 1 - Ciudad antigua
Urbanismo - 1 - Ciudad antigua
 
Urbanismo 1 - ciudad antigua
Urbanismo 1 - ciudad antiguaUrbanismo 1 - ciudad antigua
Urbanismo 1 - ciudad antigua
 
Ciudad antigua Urbanismo 1
Ciudad antigua Urbanismo 1 Ciudad antigua Urbanismo 1
Ciudad antigua Urbanismo 1
 
9 feb 15 feb 2015
9 feb 15 feb 20159 feb 15 feb 2015
9 feb 15 feb 2015
 
Tong Hop Bai Tap C
Tong Hop Bai Tap CTong Hop Bai Tap C
Tong Hop Bai Tap C
 
Kutm hr strategic plan
Kutm hr strategic planKutm hr strategic plan
Kutm hr strategic plan
 
Hindi vidhyut shabdawali-h
Hindi vidhyut shabdawali-hHindi vidhyut shabdawali-h
Hindi vidhyut shabdawali-h
 
HSC Physics - Vector: Lecture 2,3,4,5
HSC Physics - Vector: Lecture 2,3,4,5HSC Physics - Vector: Lecture 2,3,4,5
HSC Physics - Vector: Lecture 2,3,4,5
 
28 march 3 april 2016
28 march  3 april 201628 march  3 april 2016
28 march 3 april 2016
 
Securing Your Atlassian Connect Add-on With JWT
Securing Your Atlassian Connect Add-on With JWTSecuring Your Atlassian Connect Add-on With JWT
Securing Your Atlassian Connect Add-on With JWT
 
How to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing FestivalHow to get inside the search engine crawler head - Marketing Festival
How to get inside the search engine crawler head - Marketing Festival
 

Viewers also liked

Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generation
rawan_z
 
Streamus Senior Project
Streamus Senior ProjectStreamus Senior Project
Streamus Senior Project
Aditya Dev
 
CV - Marcio_ingles detalhado- v9s
CV - Marcio_ingles detalhado- v9sCV - Marcio_ingles detalhado- v9s
CV - Marcio_ingles detalhado- v9s
Marcio Barbosa
 
IndustryWeekBestPlantAward
IndustryWeekBestPlantAwardIndustryWeekBestPlantAward
IndustryWeekBestPlantAward
Anthony Sparks
 

Viewers also liked (12)

make component in proteus
make component in proteusmake component in proteus
make component in proteus
 
Compilers
CompilersCompilers
Compilers
 
Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generation
 
Historia de la Arquitectura II
Historia de la Arquitectura IIHistoria de la Arquitectura II
Historia de la Arquitectura II
 
elumalai_exp
elumalai_expelumalai_exp
elumalai_exp
 
Streamus Senior Project
Streamus Senior ProjectStreamus Senior Project
Streamus Senior Project
 
CV - Marcio_ingles detalhado- v9s
CV - Marcio_ingles detalhado- v9sCV - Marcio_ingles detalhado- v9s
CV - Marcio_ingles detalhado- v9s
 
Night Dress For Women Sex
Night Dress For Women SexNight Dress For Women Sex
Night Dress For Women Sex
 
IndustryWeekBestPlantAward
IndustryWeekBestPlantAwardIndustryWeekBestPlantAward
IndustryWeekBestPlantAward
 
Phan - analiza statyczna kodu z użyciem nowości PHP 7
Phan - analiza statyczna kodu z użyciem nowości PHP 7Phan - analiza statyczna kodu z użyciem nowości PHP 7
Phan - analiza statyczna kodu z użyciem nowości PHP 7
 
Open Science - Paradigm Shift or Revival of Old Ideas?
Open Science - Paradigm Shift or Revival of Old Ideas?Open Science - Paradigm Shift or Revival of Old Ideas?
Open Science - Paradigm Shift or Revival of Old Ideas?
 
презентация для копирайтеров
презентация для копирайтеровпрезентация для копирайтеров
презентация для копирайтеров
 

Similar to Proteus 8051lcd

Quick Reference Guide: Server Hosting
Quick Reference Guide: Server HostingQuick Reference Guide: Server Hosting
Quick Reference Guide: Server Hosting
webhostingguy
 
55 Aldosterone Inhibitors Diuretic S
55    Aldosterone Inhibitors  Diuretic S55    Aldosterone Inhibitors  Diuretic S
55 Aldosterone Inhibitors Diuretic S
kdiwavvou
 
التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
 التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي   التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
Essam Obaid
 
Internet of Things – IoT_انترنت الأشياء.pdf
Internet of Things – IoT_انترنت الأشياء.pdfInternet of Things – IoT_انترنت الأشياء.pdf
Internet of Things – IoT_انترنت الأشياء.pdf
Abduljabbar Al-dhufri
 
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptxதற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
RafeeMohamedMohamedS
 

Similar to Proteus 8051lcd (20)

اللائحة الداخلية
اللائحة الداخليةاللائحة الداخلية
اللائحة الداخلية
 
Cement
CementCement
Cement
 
English school-books-1st-preparatory-1st-term-khawagah-2019-11
English school-books-1st-preparatory-1st-term-khawagah-2019-11English school-books-1st-preparatory-1st-term-khawagah-2019-11
English school-books-1st-preparatory-1st-term-khawagah-2019-11
 
مذكرة انجليزي + القصة للصف الأول الإعدادي الترم الأول 2017 - موقع ملزمتي
مذكرة انجليزي + القصة للصف الأول الإعدادي الترم الأول 2017 - موقع ملزمتيمذكرة انجليزي + القصة للصف الأول الإعدادي الترم الأول 2017 - موقع ملزمتي
مذكرة انجليزي + القصة للصف الأول الإعدادي الترم الأول 2017 - موقع ملزمتي
 
Quick Reference Guide: Server Hosting
Quick Reference Guide: Server HostingQuick Reference Guide: Server Hosting
Quick Reference Guide: Server Hosting
 
Ceh v8 labs module 11 session hijacking
Ceh v8 labs module 11 session hijackingCeh v8 labs module 11 session hijacking
Ceh v8 labs module 11 session hijacking
 
كتاب تعليم الانجليزية
كتاب تعليم الانجليزيةكتاب تعليم الانجليزية
كتاب تعليم الانجليزية
 
WikiRobot Full Version - New Technology sends Your Traffic and Profits into O...
WikiRobot Full Version - New Technology sends Your Traffic and Profits into O...WikiRobot Full Version - New Technology sends Your Traffic and Profits into O...
WikiRobot Full Version - New Technology sends Your Traffic and Profits into O...
 
Know Meالتعريف بمشروع اعرفني
 Know Meالتعريف بمشروع اعرفني Know Meالتعريف بمشروع اعرفني
Know Meالتعريف بمشروع اعرفني
 
5. php bangla tutorial php basic
5. php bangla tutorial php basic5. php bangla tutorial php basic
5. php bangla tutorial php basic
 
55 Aldosterone Inhibitors Diuretic S
55    Aldosterone Inhibitors  Diuretic S55    Aldosterone Inhibitors  Diuretic S
55 Aldosterone Inhibitors Diuretic S
 
開発を愛する人の集まり『DevLOVE仙台』の紹介
開発を愛する人の集まり『DevLOVE仙台』の紹介開発を愛する人の集まり『DevLOVE仙台』の紹介
開発を愛する人の集まり『DevLOVE仙台』の紹介
 
Top british schools in sharjah
Top british schools in sharjahTop british schools in sharjah
Top british schools in sharjah
 
التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
 التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي   التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
التطوع الالكتروني واستقطاب المتطوعين مهارات التطوع الافتراضي
 
极简水彩墨迹通用PPT模板.pptx
极简水彩墨迹通用PPT模板.pptx极简水彩墨迹通用PPT模板.pptx
极简水彩墨迹通用PPT模板.pptx
 
Html by tanbircox
Html by tanbircoxHtml by tanbircox
Html by tanbircox
 
Internet of Things – IoT_انترنت الأشياء.pdf
Internet of Things – IoT_انترنت الأشياء.pdfInternet of Things – IoT_انترنت الأشياء.pdf
Internet of Things – IoT_انترنت الأشياء.pdf
 
Bai giang tn cau
Bai giang tn cauBai giang tn cau
Bai giang tn cau
 
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptxதற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
தற்காலக் கல்விப்புலத்தில் தகவல் ததாழிநுட்பத்தின் வகிபாகம்.pptx
 
Python + Hive on AWS EMR で貧者のログサマリ
Python + Hive on AWS EMR で貧者のログサマリPython + Hive on AWS EMR で貧者のログサマリ
Python + Hive on AWS EMR で貧者のログサマリ
 

Recently uploaded

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 

Recently uploaded (20)

UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICSUNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Vivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design SpainVivazz, Mieres Social Housing Design Spain
Vivazz, Mieres Social Housing Design Spain
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 

Proteus 8051lcd

  • 1. ‫خدا‬ ‫نام‬ ‫به‬: ‫از‬ ‫استفاده‬ ‫راهنمای‬‫از‬ ‫استفاده‬ ‫راهنمای‬ MMiiccrrooccoonnttrroolllleerr 88005511 AAllpphhaannuummeerriicc LLCCDD GGrraapphhiiccaall LLCCDD ‫در‬‫در‬PPrrootteeuuss ‫زاده‬ ‫اله‬ ‫سیف‬ ‫محسن‬ mohsen_seif@yahoo.com
  • 2. 1 ‫مقذمه‬‫مقذمه‬ ‫دس‬ ٝ‫ایٙى‬ ‫اص‬ ‫ٌشأی‬ ‫خٛاٞش‬ ،‫اسخٕٙذ‬ ‫بشادس‬ِٓ‫خٛؿحاا‬ ‫بؼیاس‬ ‫ٞؼتیذ‬ ‫ٔطاِب‬ ٗ‫ای‬ ٝ‫ٔطاِؼ‬ َ‫حا‬‫احؼحاع‬ ٚ ‫خحٛبی‬ ‫سإٞٙحای‬ ‫ٞؼتیذ‬ ‫بذ٘باِؾ‬ ٝ‫و‬ ‫ٔباحثی‬ ‫ٔٛسد‬ ‫دس‬ ‫بتٛا٘ذ‬ ٝ‫ٔدٕٛػ‬ ٗ‫ای‬ ‫ؿایذ‬ ٝ‫ایٙى‬ ‫اص‬ ٓٙ‫ٔیى‬ ‫ٔٙذی‬ ‫سضایت‬ .‫باؿذ‬ ٖ‫بشایتا‬‫٘شػیذ‬ ْ‫اتٕا‬ ٝ‫ب‬ ٝ‫و‬ ٜ‫بٛد‬ ٜ‫پشٚط‬ ‫یه‬ ‫ٔؼتٙذات‬ ‫اص‬ ‫بخـی‬ ٚ‫س‬ ‫پیؾ‬ ‫ٔطاِب‬ ٝ‫و‬ ‫اػت‬ ‫روش‬ ُ‫لاب‬ٗ‫ایح‬ ‫اص‬ ٚ ‫ػٙایت‬ ‫با‬ ٚ‫س‬‫تحا‬ ٓ‫ٌزاؿحت‬ ‫اؿحتشان‬ ٝ‫بح‬ ‫ایٙتش٘حت‬ ‫دس‬ ٚ‫س‬ ‫ٔطاِحب‬ ٗ‫ایح‬ ‫اػت‬ ٗ‫آٔٛخت‬ ّٓ‫ػ‬ ‫صوات‬ ٝ‫ایٙى‬ ٝ‫ب‬ ‫اػتماد‬ .‫ؿٛ٘ذ‬ ‫بٟشٔٙذ‬ ٖ‫آ‬ ‫اص‬ ٖ‫دیٍشا‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫با‬ ‫ٔمذٔاتی‬ ‫آؿٙایی‬ ٝ‫و‬ ‫افشادی‬ ‫بشای‬ ٝ‫ٔدٕٛػ‬ ٗ‫ای‬8551ٖ‫چٙذا‬ ‫٘ذاس٘ذ‬ ٖ‫آ‬ ‫٘ٛیؼی‬ ‫وذ‬ ٚ .‫بٛد‬ ‫٘خٛاٞذ‬ ‫ٔفیذ‬ ٗ‫ٔاؼ‬ٜ‫صاد‬ ِٝ‫ا‬ ‫ػیف‬2/15/88 ‫ٚیشایؾ‬5ٜ‫ٔا‬ ‫دی‬1395
  • 3. ‫فهرست‬‫فهرست‬ ‫فهرست‬‫فهرست‬....................................................................................................................................5 : ‫اول‬ ‫بخش‬: ‫اول‬ ‫بخش‬...........................................................................................................................1 ‫با‬ ‫کار‬Alphanumeric LCD(LCDcharacter)...................................................................12 :‫دوم‬ ‫بخش‬:‫دوم‬ ‫بخش‬..........................................................................................................................19 ‫با‬ ‫کار‬Graphical LCD.....................................................................................................19 ‫ضم‬‫ضم‬‫ی‬‫ی‬‫مه‬‫مه‬‫کامپ‬ ‫با‬ ‫:ارتباط‬‫کامپ‬ ‫با‬ ‫:ارتباط‬‫ی‬‫ی‬‫وتر‬‫وتر‬...........................................................................................................35 :‫منابع‬:‫منابع‬....................................................................................................................................42
  • 4. 1 : ‫اول‬ ‫بخش‬: ‫اول‬ ‫بخش‬ ‫با‬ ‫لبّی‬ ‫آؿٙایی‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬ ‫افضاس‬ ْ‫٘ش‬ ‫٘لب‬ ‫اص‬ ‫پغ‬Proteus.‫وٙیذ‬ ‫طی‬ ‫سا‬ ‫صیش‬ ُ‫ٔشاح‬ ‫٘ذاسیذ‬ ‫سا‬ ٖٛ‫آیى‬ ‫سٚی‬ ‫ابضاس‬ ‫ٔٙٛی‬ ‫دس‬Component Mode‫وّیه‬‫حشف‬ ‫ػپغ‬ ٚ ٜ‫وشد‬P‫ححشف‬ ‫سٚی‬ ‫سا‬ ‫دٞیذ‬ ‫فـاس‬ ‫سا‬ Pٜ‫پٙدش‬ ‫دس‬ ‫وٙیذ‬ ‫وّیه‬ ُ‫ؿى‬ ‫دس‬ ٜ‫ؿذ‬ ٜ‫داد‬ ٖ‫٘ـا‬Pick Device‫دس‬ ‫ٔحزوٛس‬ ٜ‫پٙدحش‬ ‫دس‬ ‫ؿحذ‬ ‫خٛاٞحذ‬ ‫ظحاٞش‬ ‫لؼٕت‬Keywords‫ٔیتٛا٘یذ‬ ‫ایٙىاس‬ ‫بشای‬ ‫وٙیذ‬ ‫ٚاسد‬ ‫سا‬ ٖ‫٘ظشتا‬ ‫ٔٛسد‬ ّٝ‫ٚػی‬ ْ‫٘ا‬Category‫سا‬ ُ‫ٚػای‬ ٗ‫ای‬ ٝ‫و‬ ‫ای‬ ‫دس‬ .‫وٙیذ‬ ٜ‫اػتفاد‬ ٜ‫وشد‬ ‫بٙذی‬ ٝ‫دػت‬ّٝ‫ٚػحی‬ ٝ‫ػ‬ ‫ٔا‬ َ‫ٔثا‬ ٗAND,LogicState,LogicProb‫ا٘تخحا‬ ‫سا‬ .ٓ‫ای‬ ٜ‫وشد‬ ‫شکل‬‫‏‬01- ‫شکل‬‫‏‬02-
  • 5. 2 ‫شکل‬‫‏‬03- ‫ح‬ ‫دس‬ ‫ػاصی‬ ٝ‫ؿبی‬ ٝ‫و‬ َ‫حا‬‫سٚی‬ ‫وّیحه‬ ‫بحا‬ ‫اخشاػحت‬ َ‫ا‬LogicState‫سا‬ ٝ‫٘تیدح‬ ‫ٔیتٛا٘یحذ‬ ٝ‫كحفا‬ ‫سٚی‬ ‫ٞحای‬ .‫وٙیذ‬ ‫بشسػی‬ ‫ٔا٘ٙذ‬ ّٝ‫ٚػی‬ ‫یه‬ ‫سٚی‬ ٖ‫وشد‬ ‫وّیه‬ ‫با‬ ‫بتٛا٘یذ‬ ٝ‫ایٙى‬ ‫بشای‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬LogicState‫تیییحش‬ ‫آ٘حشا‬ ‫حاِت‬ ‫حاِت‬ ‫دس‬ ُ‫ٚػای‬ ‫اص‬ ْ‫وذا‬ ‫ٞیچ‬ ‫٘بایذ‬ ‫دٞیذ‬Select.‫باؿٙذ‬ ٝ‫داؿت‬ ‫لشاس‬ ‫شکل‬‫‏‬04- .‫وٙیذ‬ ‫ٔتٛلف‬ ‫سا‬ ٝٔ‫بش٘ا‬ ‫اخشای‬ ‫دٚباس‬ ‫با‬.‫وٙیذ‬ ‫حزف‬ ‫آ٘شا‬ ‫ٔیتٛا٘یذ‬ ُ‫ٚػای‬ ‫اص‬ ْ‫وذا‬ ‫ٞش‬ ‫سٚی‬ ‫وّیه‬ ‫ساػت‬
  • 6. 3 ‫تش‬ ّٛ‫خ‬ ‫وٕی‬ َ‫حا‬‫پیؾ‬‫بش‬ٚ‫یه‬ :ٓ‫ی‬7segٝ‫ب‬ ‫سا‬ ‫ای‬ ٝ‫پای‬ ‫چٟاس‬ ‫ٔٙاػب‬.‫وٙیذ‬ ٝ‫اضاف‬ ٖ‫ابضاستا‬ ‫ِیؼت‬ ‫شکل‬‫‏‬05- 7seg‫یه‬ ٝ‫ب‬ ‫آ٘شا‬ ٝ‫پای‬ ‫چٟاس‬ ‫ٞش‬ ٚ ٜ‫آٚسد‬ ‫اكّی‬ ٝ‫كفا‬ ‫سٚی‬ ‫سا‬LogicState. ‫وٙیذ‬ ُ‫ٚك‬ .‫وٙیذ‬ ‫بشسػی‬ ‫سا‬ ٝ‫٘تید‬ ٚ ٜ‫وشد‬ ‫اخشا‬ ‫سا‬ ٝٔ‫بش٘ا‬ ‫دیٍش‬ ‫باس‬ ‫شکل‬‫‏‬06- ‫وّیه‬ ‫ساػت‬ ‫با‬ ّٝ‫ٚػی‬ ‫یه‬ ‫ا٘تخا‬ ‫اص‬ ‫بؼذ‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬‫ٔیتٛا٘یحذ‬ ٖ‫آ‬ ‫دس‬ ‫ٔٛخٛد‬ ‫ٞا‬ ٝٙ‫ٌضی‬ ‫ا٘تخا‬ ٚ ٖ‫وشد‬ .‫وٙیذ‬ َ‫اػٕا‬ ٖ‫آ‬ ‫سٚی‬ ‫سا‬ ٝٙ‫آی‬ ‫ٚضؼیت‬ ‫تیییش‬ ‫یا‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫ٌشد‬ ‫ػاػت‬ ‫پاد‬ ‫یا‬ ‫ٌشد‬ ‫ػاػت‬ ‫چشخؾ‬ ‫حاِت‬ ‫وّیذ‬ ٖ‫داد‬ ‫فـاس‬'+'ٚ'-'.‫اػت‬ ‫ایٙىاس‬ ‫بشای‬ ‫ٔٙاػبی‬ ‫ٔیا٘بش‬ ‫شکل‬‫‏‬07- ‫ی‬ ‫بیایذ‬.ٓ‫بشٚی‬ ‫پیؾ‬ ‫خّٛتش‬ ٓٞ ْ‫ٌا‬ ‫ه‬
  • 7. 4 ‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫یه‬8551‫وٙیحذ‬ ٝ‫اضحاف‬ ٖ‫ابضاستحا‬ ٝ‫ٔدٕٛػح‬ ٝ‫ب‬(‫ػحشیؼتش‬ ‫خؼحتدٛی‬ ‫بحشای‬‫ٔیتٛا٘یحذ‬ٝ‫وّٕح‬ ‫اص‬ 80C51.)‫وٙیذ‬ ٜ‫اػتفاد‬ ‫شکل‬‫‏‬08- ٜ‫ٕٞشا‬ ٝ‫ب‬ ‫سا‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬7seg‫ٞحای‬ ٝ‫پای‬ ٚ ‫بیاٚسد‬ ‫اكّی‬ ٝ‫كفا‬ ٝ‫ب‬seg7‫پحٛست‬ ٝ‫بح‬ ‫سا‬P2.‫وٙیحذ‬ ُ‫ٚكح‬ ٖ‫آ‬ ... ٚ ‫اسصؽ‬ ٓ‫و‬ ٗ‫پی‬ ٝ‫ب‬ ‫اسصؽ‬ ٓ‫و‬ ٝ‫پای‬ ‫یؼٙی‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ُ‫ٚك‬ ‫ٔٙاػب‬ ‫ٞا‬ ٝ‫پای‬ ٝ‫و‬ ‫وٙیذ‬ ‫دلت‬ ‫دس‬Proteus‫ٞای‬ ٝ‫پای‬ ٝ‫و‬ ‫٘ذاسد‬ ‫ضشٚستی‬XTAL1,XTAL2ٝ‫پای‬ ٚRST‫دس‬ ‫أحا‬ ‫وٙیحذ‬ ُ‫ٚكح‬ ‫خای‬ ٝ‫ب‬ ‫سا‬ ‫ٞح‬ ‫بخؾ‬ ‫دس‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ُ‫ٚك‬ ‫ٔٙاػب‬ ‫بطٛس‬ ‫بایذ‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫ٚالؼی‬ ‫حاِت‬ٓ‫خحٛاٞی‬ ُ‫ٔؼحاو‬ ٗ‫ایح‬ ٝ‫بح‬ ‫بؼحذی‬ ‫ای‬ .‫بٍزاسیذ‬ ‫آصاد‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫بیـتش‬ ‫ػادٌی‬ ‫بشا‬ ‫فؼال‬ ‫پشداخت‬ ‫شکل‬‫‏‬09-
  • 8. 5 ‫بشای‬ ‫٘ٛیؼی‬ ٝٔ‫بش٘ا‬ ‫٘ٛبت‬ ‫حاال‬ ‫٘ىٙیذ‬ ّٝ‫ػد‬8051.‫اػت‬ ‫یه‬text documentٝ‫ػاخت‬ٝ‫بح‬ ‫آ٘شا‬ ‫پؼٛ٘ذ‬ ٚasm‫دٞیحذ‬ ‫تیییحش‬‫تِٛیح‬ ‫بحشای‬ (.ُ‫فایح‬ ‫ذ‬hex‫پؼحٛ٘ذ‬ ‫تیییحش‬ ٝ‫بح‬ ‫آ٘شا‬ ‫پؼٛ٘ذ‬ ‫اػت‬ ‫بٟتش‬ ٓ‫٘ىٙی‬ ‫بشخٛسد‬ ‫ٔـىّی‬ ٝ‫ب‬ ٝٔ‫ادا‬ ‫دس‬ ٝ‫ایٙى‬ ‫بشای‬ ‫أا‬ ‫٘یؼت‬ ‫ضشٚسی‬ ٖ‫چٙذا‬asm‫تیییحش‬ )‫دٞیذ‬ ُ‫فای‬ ٗ‫ای‬ ‫بٙابش‬test.asm‫اػٕبّی‬ ‫وذٞای‬ ‫با‬ ‫آ٘شا‬ ‫ٔاتٛای‬ ٚ.ٓ‫ٔیؼاصی‬ ‫سا‬8551.ٓ‫ٔیىٙی‬ ‫پش‬‫باؿحیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬ ‫بٙذی‬ ‫وذ‬ ‫اص‬ ‫بایذ‬ ‫حتٕا‬ ٝ‫و‬ASCII‫اػت‬‫افحضاس‬ ْ‫٘حش‬ ‫بحا‬ ‫استبحاا‬ ‫دس‬ ُ‫فایح‬ ٗ‫ایح‬ ٝ‫و‬ ‫آ٘دایی‬ ‫اص‬ ٗ‫وٙیذ.ٕٞچٙی‬ ٜ‫فاد‬ Proteus.‫باؿذ‬ ‫واسوتش‬ ‫ٞـت‬ ‫اص‬ ‫وٕتش‬ ‫حتٕا‬ ‫ٔیىٙیذ‬ ‫ا٘تخا‬ ُ‫فای‬ ٗ‫ای‬ ‫بشای‬ ٝ‫و‬ ‫سا‬ ‫٘أی‬ ‫ضشٚسیؼت‬ ‫بٛد‬ ‫خٛاٞذ‬ .‫وٙیذ‬ ‫ٚاسد‬ ‫صیش‬ ‫كٛست‬ ٝ‫ب‬ ‫سا‬ ‫وذٞا‬ org 0 mov p2,#2 end ٚ‫ٔیىش‬ ‫بشای‬ ٖ‫خٛا٘ذ‬ ُ‫لاب‬ ‫ٔزوٛس‬ ‫وذٞای‬ ٝ‫ایٙى‬ ‫بشای‬ُ‫فای‬ ‫بایذ‬ ‫باؿذ‬hex.‫وٙیذ‬ ‫تِٛیذ‬ ٓٞ ‫آ٘شا‬ 1..‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ‫ٔتٙاػب‬ ‫اػٕبّی‬ ٚ ‫بشٚیذ‬ ‫صیش‬ ‫ٔؼیش‬ ٝ‫ب‬ D:Program FilesLabcenter ElectronicsProteus 7 ProfessionalTools ‫شکل‬‫‏‬010- 2.‫و‬ ‫ٔٛع‬ ‫با‬ ‫ایذ‬ ٝ‫٘ٛؿت‬ ‫لبال‬ ٝ‫و‬ ‫سا‬ ‫ٔتٙی‬ ُ‫فای‬ٝٔ‫بش٘ا‬ ‫سٚی‬ ٚ ٜ‫ـیذ‬ASEM.‫وٙیذ‬ ‫سٞا‬ ‫شکل‬‫‏‬011- 3.ُ‫فای‬ ‫باؿذ‬ ٝ‫٘ذاؿت‬ ‫ٔـىّی‬ ‫ؿٕا‬ ٝٔ‫بش٘ا‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬Hex.‫ؿذ‬ ‫خٛاٞذ‬ ‫تِٛیذ‬ ٖ‫آ‬
  • 9. 6 ‫شکل‬‫‏‬012- 4.ٝٔ‫بش٘ا‬ ‫دس‬Proteus‫ساػ‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫سٚی‬ٝٙ‫ٌضی‬ ٚ ٜ‫وشد‬ ‫وّیه‬ ‫ت‬Edit Properties.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ‫شکل‬‫‏‬013- 5.ٜ‫پٙدش‬ ‫دس‬Edit Componentُ‫فای‬Hex. ‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ٜ‫ؿذ‬ ‫تِٛیذ‬
  • 10. 7 ‫شکل‬‫‏‬014- ‫دو‬ ‫اخشاػت‬ ٜ‫آٔاد‬ ٝٔ‫بش٘ا‬ َ‫حا‬ٕٝRun.‫وٙیذ‬ ٜ‫ٔـاٞذ‬ ‫سا‬ ٝ‫٘تید‬ ٚ ٜ‫وشد‬ ‫وّیه‬ ‫سا‬ ‫شکل‬‫‏‬015- ُ‫فای‬ ‫دس‬ ‫ٞا‬ ‫وذ‬ ٜ‫رخیش‬ ‫اص‬ ‫پغ‬ ٝ‫و‬ ‫اػت‬ ٗ‫ای‬ ‫تش‬ ‫اكِٛی‬ ُ‫ح‬ ٜ‫سا‬ ‫أا‬asm.‫وٙیذ‬ ‫طی‬ ‫سا‬ ‫صیش‬ ُ‫ٔشاح‬ 1.‫لؼٕت‬ ٝ‫ب‬Sourceٝٙ‫ٌضی‬ ٚ ٝ‫سفت‬Add/Remove Source files ….‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬
  • 11. 8 ‫شکل‬‫‏‬016- 2.ٜ‫حش‬‫ح‬‫پٙد‬ ‫دس‬Add/Remove Source Code Filesٝ‫ح‬‫ح‬ٕ‫دو‬ ‫سٚی‬Newُ‫ح‬‫ح‬‫فای‬ ٚ ٜ‫حشد‬‫ح‬‫و‬ ‫حه‬‫ح‬‫وّی‬ test.asm.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬‫لؼحٕت‬ ‫اص‬ ٜ‫پٙدحش‬ ٖ‫ٕٞا‬ ‫دس‬ ‫ػپغ‬Code Generation Toolٝ‫ٌضیٙح‬ ASM51.‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ‫شکل‬‫‏‬017- 3.‫ٔٙٛی‬ ٝ‫ب‬ ‫دیٍش‬ ‫باس‬Sourceٝٙ‫ٌضی‬ ٚ ٝ‫سفت‬Build Allُ‫فایح‬ ‫تحا‬ ‫وٙیحذ‬ ‫ا٘تخحا‬ ‫سا‬hexٚlsdٚsdi .‫ؿٛ٘ذ‬ ٝ‫ػاخت‬ ‫شکل‬‫‏‬018-
  • 12. 9 .‫دیذ‬ ‫خٛاٞیذ‬ ‫سا‬ ‫صیش‬ ُ‫ؿى‬ ‫باؿٙذ‬ َ‫اؿىا‬ ٖٚ‫بذ‬ ‫ؿٕا‬ ‫دػتٛسات‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬ ‫شکل‬‫‏‬019- ‫وذ‬ ‫ٔیتٛا٘یذ‬ ٚhexٝ‫ب‬ ُ‫لب‬ ُ‫ٔث‬ ‫آ٘شا‬8551.‫وٙیذ‬ ُ‫ٚك‬ ‫صیش‬ ‫كٛست‬ ٝ‫ب‬ ‫ٔثال‬ ‫ؿٕا‬ ‫وذٞای‬ ‫اٌش‬ ‫أا‬ٜ‫اؿتبا‬.‫ؿذ‬ ‫خٛاٞیذ‬ ٝ‫ٔٛاخ‬ ‫صیش‬ ْ‫پییا‬ ‫با‬ ‫باؿٙذ‬ ٜ‫ؿذ‬ ‫ٚاسد‬ org 0 molv p2,#2 ‫شکل‬‫‏‬020- .‫ٔیـٛد‬ ٜ‫داد‬ ‫ٕ٘ایؾ‬ ‫آٟ٘ا‬ ‫ػطش‬ ٜ‫ٕٞشا‬ ٝ‫ب‬ ‫دػتٛسی‬ ‫اؿىاالت‬ ُ‫فای‬ ‫دس‬ ‫ٔیتٛا٘یذ‬ ‫سا‬ ٜ‫ؿذ‬ ٝ‫یافت‬ ‫اؿىاالت‬lst.‫وٙیذ‬ ٜ‫ٔـاٞذ‬ ‫تش‬ ‫ٚاضح‬ ‫كٛست‬ ٝ‫ب‬ ٓٞ ٜ‫ؿذ‬ ‫تِٛیذ‬‫صیش‬ ٝ‫٘ٛؿت‬ ‫با‬ ٝ‫و‬ .‫ٔیض٘ذ‬ ‫ػالٔت‬ ‫سا‬ ‫خاف‬ ‫لؼٕت‬ ٖ‫آ‬ ‫افضاس‬ ْ‫٘ش‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬ :ٝ‫٘ىت‬Proteus‫٘ل‬ ‫كایح‬ٜ‫داد‬ ٓ‫ٞح‬ َٕٛ‫ٔؼ‬ ‫غیش‬ ‫اخطاسٞای‬ ‫اػت‬ ٗ‫ٕٔى‬ ‫باؿذ‬ ٜ‫٘ـذ‬ ‫ب‬ .‫ؿٛد‬ ‫پؼٛ٘ذ‬ ‫با‬ ٓٞ ‫فایّی‬ ٜ‫ؿذ‬ ‫روش‬ ‫فایّٟای‬ ‫بش‬ ٜٚ‫ػال‬sdi‫دس‬ ٖ‫آ‬ ‫سدیحف‬ ٚ ٜ‫ؿحذ‬ ٝ‫٘ٛؿحت‬ ‫اكحّی‬ ‫وحذ‬ ٝ‫وح‬ ‫ٔیـٛد‬ ‫تِٛیذ‬ ُ‫داخ‬rom.‫ٔیذٞذ‬ ‫ٕ٘ایؾ‬ ٓٞ ‫با‬ ‫ٔتٙاػب‬ ‫سا‬ ٖ‫آ‬ ‫ٍٞض‬ ‫وذ‬ ٚ ‫دػتٛس‬ ‫بشای‬ َ‫ٔثا‬ ‫بشای‬mov p2,#2‫داؿت‬ ٓ‫خٛاٞی‬ 0000,75 A0 02,,mov p2,#2 ^ @@@@@illegal statement syntax@@@@@
  • 13. 15 :ٖ‫آ‬ ‫دس‬ ٝ‫و‬ 5555ُ‫داخ‬ ‫دس‬ ‫وذ‬ ‫سدیف‬rom ‫ػذد‬75‫ٔمذاس‬opcode‫دػتٛس‬mov A0‫پٛست‬ ‫بایذ‬ ٜ‫ؿٕاس‬P2 ٜ‫باالخش‬ ٚ52‫پٛست‬ ٝ‫ب‬ ٜ‫ؿذ‬ ‫ٚاسد‬ ‫ػذد‬p2.‫ٔیذٞذ‬ ٖ‫٘ـا‬ ‫سا‬ ‫ٔؼحیش‬ ٝ‫ایٙىح‬ ٝ‫بح‬ ٝ‫تٛخ‬ ‫با‬ ‫وٙیذ‬ ‫اخشا‬ ‫دیٍشی‬ ‫وأپیٛتش‬ ‫دس‬ ‫بخٛاٞیذ‬ ‫سا‬ ٝٔ‫بش٘ا‬ ُ‫و‬ ُ‫فای‬ ‫اٌش‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬ ‫ٞای‬‫بحشای‬ ‫ِحزا‬ .‫وٙیحذ‬ ٓ‫تٙظحی‬ ٜ‫دٚبحاس‬ ‫ٔؼحیشٞا‬ ٗ‫ایح‬ ٝ‫وح‬ ‫اػحت‬ ‫٘یاص‬ ‫بٛد‬ ‫خٛاٞٙذ‬ ‫٘أؼتبش‬ ‫وأپیٛتش‬ ٖ‫ا‬ ‫س‬ ‫د‬ ‫ؿٕا‬ ٖ‫تحا‬ ٜ‫ؿحذ‬ ‫ػحاصی‬ ٝ‫ؿحبی‬ ‫اكّی‬ ُ‫فای‬ ‫وٙاس‬ ‫دس‬ ‫سا‬ ‫اػٕبّی‬ ٝ‫ب‬ ‫ٔشبٛا‬ ‫فایّٟای‬ ‫ٔیـٛد‬ ٝ‫تٛكی‬ ‫واس‬ ٗ‫ای‬ ‫اص‬ ‫خٌّٛیشی‬ .‫٘ـٛیذ‬ ٝ‫ٔٛاخ‬ ‫ٔـىالت‬ ٗ‫ای‬ ‫با‬ ‫تا‬ ‫دٞیذ‬ ‫لشاس‬ ‫ٔٛسد‬ ‫دس‬ ٝ‫و‬ ‫دیٍشی‬ ٝ‫٘ىت‬8551‫الص‬‫آٚسی‬ ‫یاد‬ ٓٙ‫ٔیبی‬ ْ،ٓٙ‫و‬‫اػحت‬ ٖ‫آ‬ ‫داخّحی‬ ٝ‫حافظ‬ٛ‫ٚضح‬ ٝ‫بح‬ ‫صیحش‬ ُ‫ؿحى‬ . ‫اص‬ ‫ٞای‬ ‫لؼٕت‬ ٝ‫چ‬ ‫اص‬ ‫ٔا‬ ٝ‫و‬ ‫ٔیذٞذ‬ ٖ‫٘ـا‬ram‫داخّی‬ٜ‫اػتفاد‬ ٝ‫ب‬ ‫ٔداص‬‫ٞحای‬ ‫ٔتیییحش‬ ٜ‫رخیحش‬ ‫بحشای‬ ٚ .ٓ‫ٞؼتی‬ ٗ‫ای‬ ‫بایذ‬ ٖ‫احتٕاِیٕا‬‫ٔٛسد‬.ٓ‫وٙی‬ ‫سػایت‬ ‫سا‬ ‫شکل‬‫‏‬021- ‫بایت‬ ‫آدسع‬ RAM ٜ‫ٔٙظٛس‬ ٕٝٞ 7F 30 78797A7B7C7D7E7F2F ‫بیتی‬‫پزیش‬‫آدسع‬‫ٔىاٟ٘ای‬ 70717273747576772E 68696A6B6C6D6E6F2D 60616263646566672C 58595A5B5C5D5E5F2B 50515253545556572A 48494A4B4C4D4E4F29 404142434445464728 38393A3B3C3D3E3F27 303132333435363726 28292A2B2C2D2E2F25 202122232425262724 18191A1B1C1D1E1F23 101112131415161722 08090A0B0C0D0E0F21 000102030405060720 ‫با٘ه‬31F 18 ‫با٘ه‬217 10 ‫با٘ه‬10F 08 ‫بشای‬ ‫فشم‬ ‫پیؾ‬ ‫ثبات‬ ‫با٘ىٟای‬ R0-R707 00
  • 14. 11 ‫شکل‬‫‏‬022- ‫بیت‬ ‫آدسع‬‫بایت‬ ‫آدسع‬ FF BF0F1F2F3F4F5F6F7F0 ACCE0E1E2E3E4E5E6E7E0 PSWD0D1D2D3D4D5D6D7D0 IPB8B9BABBBC------B8 P3B0B1B2B3B4B5B6B7B0 IEA8A9AAABAC----AFA8 P2A0A1A2A3A4A5A6A7A0 SBUFnot bit addressable99 SCON98999A9B9C9D9E9F98 P1909192939495969790 TH1not bit addressable8D TH0not bit addressable8C TL1not bit addressable8B TH0not bit addressable8A TMODnot bit addressable89 TCON88898A8B8C8D8E8F88 PCONnot bit addressable87 DPHnot bit addressable83 DPLnot bit addressable82 SPnot bit addressable81 P0808182838485868780
  • 15. 12 ‫با‬ ‫کار‬Alphanumeric LCD(character LCD) LCD‫وحاسوتش‬ ‫ٔیتٛا٘یحذ‬ ٖ‫آ‬ ٝ‫بح‬ ‫اػىی‬ ‫وذ‬ َ‫اسػا‬ ‫با‬ ‫ػادٌی‬ ٝ‫ب‬ ٝ‫و‬ ‫ا٘ذ‬ ٜ‫ؿذ‬ ‫طشاحی‬ ‫ای‬ ٌٝ٘ٛ ٝ‫ب‬ ‫واساوتشی‬ ‫ٞای‬ ‫ٔـا‬ ‫سا‬ ‫٘ظش‬ ‫ٔٛسد‬.‫وٙیذ‬ ٜ‫ٞذ‬ ‫یه‬LCD‫واساوتشی‬2×25‫افضاس‬ ْ‫٘ش‬ ‫واس‬ ‫ٔایط‬ ٝ‫ب‬ ‫سا‬Proteus.‫بیاٚسیذ‬ ‫شکل‬‫‏‬023- ٗ‫ای‬LCDُٔ‫ؿا‬16‫دس‬ ٝ‫و‬ ‫اػت‬ ٝ‫پای‬Proteus،14.‫اػت‬ ٜ‫ٔـاٞذ‬ ُ‫لاب‬ ٓ‫ٔؼتمی‬ ‫بلٛست‬ ٖ‫آ‬ ‫تای‬ 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 ‫دس‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ‫اص‬ ‫بشخی‬ ٝ‫و‬ ‫كٛستی‬ ‫دس‬Proteus. ‫آٔذ‬ ‫٘خٛاٞذ‬ ‫پیؾ‬ ‫ٔـىّی‬ ‫٘ىٙیذ‬ ُ‫ٚك‬‫ٞحای‬ ٝ‫پای‬ ‫یؼٙی‬1، 2،3ٝ‫ب‬ ‫تشتیب‬ ٝ‫ب‬ ٝ‫و‬0Vٚ5V‫واساوتشٞحای‬ ‫وٙتشاػحت‬ ٖ‫ػٙحٛا‬ ٝ‫بح‬ ٝ‫وح‬ ٝ‫ػح‬ ٜ‫ؿٕاس‬ ٝ‫پای‬ ٚ ‫ؿذ‬ ‫خٛاٞذ‬ ُ‫ٚك‬ ٛ‫ٔیت‬ ٝ‫و‬ ‫وشد‬ ‫خٛاٞذ‬ ُٕ‫ػ‬ ٜ‫ؿذ‬ ٝ‫٘ٛؿت‬‫یه‬ ٝ‫ب‬ ‫آ٘شا‬ ٖ‫ا‬(PVT).‫وحشد‬ ُ‫ٚكح‬ ‫ِٚت‬ ‫كفش‬ ٝ‫ب‬ ‫یا‬ ٚ ‫ٔتیییش‬ ‫ٔماٚت‬‫فؼال‬ .‫وٙیذ‬ ‫سٞا‬ ‫آصاد‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٗ‫ای‬ ٝ‫پای‬RSٜ‫داد‬ ‫یحه‬ ‫یحا‬ ‫اػحت‬ ُ‫ػٕح‬ ‫دػحتٛس‬ ‫یحه‬ ‫ٚسٚدی‬ ‫آیحا‬ ٝ‫وح‬ ‫ٔیىٙذ‬ ٗ‫تؼیی‬ ‫ٔیىٙیذ‬ ٜ‫ٔـاٞذ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬ )‫(واساوتش‬
  • 16. 13 R/Wٝ‫ب‬ ‫اػت‬ ‫لشاس‬ ‫ای‬ ٜ‫داد‬ ‫آیا‬ ٝ‫و‬ ‫ٔیىٙذ‬ ٗ‫تؼیی‬LCDٖ‫آ‬ ‫اص‬ ‫یا‬ ‫ؿٛد‬ ٜ‫فشػتاد‬.‫ؿٛد‬ ٜ‫خٛا٘ذ‬ ‫باالی‬ ٝ‫ب‬ ٗ‫پایی‬ ‫یا‬ ٗ‫پایی‬ ٝ‫ب‬ ‫باال‬ )َ‫(ػیٍٙا‬ ٝ‫ضشب‬ ‫یه‬ ‫با‬ ‫واسٞا‬ ٗ‫ای‬ ٕٝٞEN.‫ٔیـٛد‬ ْ‫ا٘دا‬ ‫ٞای‬ ٝ‫پای‬D0‫تا‬D7.‫ٔیـٛ٘ذ‬ ٜ‫اػتفاد‬ ٜ‫داد‬ ‫باع‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ( ‫واساوتش‬ ‫یه‬ َ‫اسػا‬ ‫بشای‬ ٝ‫و‬ ‫صد‬ ‫حذع‬ ٖ‫ٔیتٛا‬ ‫اطالػات‬ ٗ‫ای‬ ‫با‬ َ‫حا‬dataُ‫ٔث‬ )'A'.‫وشد‬ ‫بایذ‬ ٝ‫چ‬ ‫واسوتش‬ ‫اػىی‬ ‫وذ‬ ‫بایذ‬ َٚ‫ا‬A( ٜ‫داد‬ ‫باع‬ ُ‫داخ‬ ‫سا‬D0‫تا‬D7.ٓ‫بشیضی‬ ) ‫بایذ‬ ‫پغ‬ ‫اػت‬ ٜ‫داد‬ ‫یه‬ ‫خٛا‬ ‫؟‬ ُٕ‫اِؼ‬ ‫دػتٛس‬ ‫یا‬ ‫اػت‬ ٜ‫داد‬ ‫یه‬ ٗ‫ای‬RS.ٓ‫وٙی‬ ‫یه‬ ‫سا‬ ‫سٚی‬ ‫سا‬ ٜ‫داد‬ ٗ‫ای‬ ‫اػت‬ ‫لشاس‬ ‫ٔا‬LCD‫پغ‬ ٓ‫بٙٛیؼی‬ ٖ‫آ‬ ‫سٚی‬ ‫خٛا‬ ‫بخٛا٘یٓ؟‬ ٖ‫آ‬ ‫اص‬ ‫یا‬ ٓ‫بٙٛیؼی‬R/W‫كحفش‬ ‫بایذ‬ .‫ؿٛد‬ ‫ػّٕی‬ ٗ‫ای‬ ٝ‫و‬ ٓ‫داسی‬ ‫٘یاص‬ َ‫ػیٍٙا‬ ‫یه‬ ٝ‫ب‬ ‫تٟٙا‬ َ‫حا‬‫بایذ‬ ‫یؼٙی‬ ‫وٙذ‬ َ‫اػٕا‬ ‫سا‬ ‫ات‬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 .‫اػت‬ ‫صیش‬ ‫ؿش‬ ٝ‫ب‬ ٝ‫و‬ ‫داسد‬ ‫ٚخٛد‬ ‫خاكی‬ ٜ‫ؿٕاس‬ ُٕ‫اِؼ‬ ‫دػتٛس‬ ‫ٞش‬ ‫بشای‬ ‫وذ‬Hexadecimalٝ‫ب‬ ٖ‫فشٔا‬LCD 1‫ٕ٘ایؾ‬ ٝ‫كفا‬ ٖ‫وشد‬ ‫پان‬ 2)‫(ؿشٚع‬ َٚ‫ا‬ ٖ‫ٔىا‬ ٝ‫ب‬ ‫باصٌـت‬ 4)‫چپ‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫(خابدای‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫واٞؾ‬ 6‫ٔى‬ ‫(خابدای‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫افضایؾ‬)‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ا‬ 5‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ‫خابدایی‬ 7‫چپ‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ‫خابدای‬ 8‫خأٛؽ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫خأٛؽ‬ ‫ٕ٘ایؾ‬ Aٗ‫سٚؿ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ‫خأٛؽ‬ ‫ٕ٘ایؾ‬ C‫خأٛؽ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬ Eٗ‫سٚؿ‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬
  • 17. 14 F‫بض٘ذ‬ ‫چـٕه‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ٗ‫سٚؿ‬ ‫ٕ٘ایؾ‬ 10‫چپ‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ُ‫ٔا‬ ‫خابدایی‬ 14ٔ ‫خابدایی‬‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ ُ‫ا‬ 18‫ؿٛد‬ ‫خابدا‬ ‫چپ‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ٝ‫كفا‬ ُ‫و‬ 1C‫ؿٛد‬ ‫خابدا‬ ‫ساػت‬ ٝ‫ب‬ ‫ٕ٘ایؾ‬ ٝ‫كفا‬ ُ‫و‬ C0‫بشٚد‬ ْٚ‫د‬ ‫خط‬ ‫آغاص‬ ٝ‫ب‬ ‫ٕ٘ا‬ ٖ‫ٔىا‬ 38‫ػاصٔا٘ذٞی‬2‫ٔاتشیغ‬ ٚ ‫خط‬5×7 ‫دس‬ ‫سا‬ ُٕ‫ػ‬ ٗ‫ٕٞی‬ ‫باال‬ ‫اطالػات‬ ‫وٕه‬ ‫با‬ ٓ‫داسی‬ ٓ‫تلٕی‬ َ‫حا‬Proteusٖ‫داد‬ ٝ‫ادأح‬ ‫اص‬ ‫پحیؾ‬ ٓ‫وٙی‬ ‫ػاصی‬ ٝ‫ؿبی‬ ‫ضشٚسی‬‫دػتٛس‬ ‫ٔٛسد‬ ‫دس‬ ‫وٕی‬ ‫ٔیشػذ‬ ‫٘ظش‬ ٝ‫ب‬EQU‫تٛضیح‬‫ؿٛد‬ ٜ‫داد‬. .‫بٍیشیذ‬ ‫٘ظش‬ ‫دس‬ ‫سا‬ ‫صیش‬ ‫دػتٛس‬ ‫ٔا٘ٙذ‬ ‫دػتٛسی‬ X EQU 40 ‫بایت‬ ‫دػتٛس‬ ٗ‫ای‬ ‫با‬45ٝ‫حافظ‬ ْ‫ا‬RAMّٕٝ‫و‬ ‫با‬ ‫سا‬ ٚ‫ٔیىش‬X‫ٔحا‬ ٝ‫و‬ ‫صٔا٘ی‬ ‫دس‬ ٝ‫و‬ ‫اػت‬ ‫بذیٟی‬ .‫ٔیض٘ذ‬ ‫بشچؼب‬ ‫وذ‬ ‫اػٕبّی‬ ‫وذٞای‬ ‫اص‬hexّٕٝ‫و‬ ٓ‫ٔیىٙی‬ ‫ایداد‬X‫ٔمذاس‬ ‫با‬45ٝ‫صٔیٙح‬ ‫وحاس‬ ٗ‫ایح‬ ‫أحا‬ .‫ؿحذ‬ ‫خٛاٞیحذ‬ ٗ‫خایٍضی‬ .‫ٔیىٙذ‬ ‫ایداد‬ ‫سا‬ ‫ٞا‬ ٜ‫ؿٕاس‬ ‫بدای‬ ‫اػأی‬ ‫وٕه‬ ‫با‬ ٝ‫حافظ‬ ‫ٔذیشیت‬ ‫بشای‬ ‫ٔٙاػبی‬ ‫حشف‬ ‫ٔیذا٘یذ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬b‫ححشف‬ ٚ ‫بحایٙشی‬ ‫ػذد‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ‫سا‬ ‫ػذد‬ ٖ‫آ‬ ‫خاف‬ ‫ػذدی‬ ‫اص‬ ‫بؼذ‬hٝ‫بح‬ ‫سا‬ ‫ػحذد‬ ٖ‫آ‬ .‫ؿٙاخت‬ ‫خٛاٞذ‬ َ‫ٍٞضادػیٕا‬ ‫ػذد‬ ٖ‫ػٙٛا‬ ‫بش‬ ٜٚ‫ػال‬LCD‫واساوتشی‬2×25‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫یه‬8551‫دس‬ ‫خحٛد‬ ‫وحاس‬ ‫ٔایط‬ ٝ‫ب‬ ٓٞ ‫سا‬Proteusٝ‫اضحاف‬ .‫وٙیذ‬ٝ‫ب‬ ‫صیش‬ ُ‫ؿى‬ ُ‫ٔث‬ ‫آ٘شا‬ ‫ٞای‬ ٝ‫پای‬ ٚLCD.‫وٙیذ‬ ُ‫ٚك‬ ‫شکل‬‫‏‬024- ‫ٔٙاػبی‬ ٗ‫سٚتی‬ ٓ‫ٔیتٛا٘ی‬ ‫باال‬ ‫ٔطاِب‬ ‫بٙذی‬ ‫خٕغ‬ ‫با‬ ٖٛٙ‫او‬،َ‫اسػا‬ ‫بشای‬"ُٕ‫اِؼ‬ ‫دػتٛس‬"ٚ"‫دیتا‬"‫بحشای‬LCD ‫سا‬.ٓ‫بٙٛیؼی‬ Org 0 RS equ p2.0 RW equ p2.1 E equ p2.2
  • 18. 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
  • 19. 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
  • 20. 17 ٝ‫خا٘ح‬ ‫دس‬ ٜ‫ؿذ‬ َ‫اسػا‬ ٜ‫داد‬ ‫ٔیـٛد‬ ‫باػث‬ ‫دػتٛس‬ ٗ‫ای‬ ‫وٙیذ‬ ٝ‫تٛخ‬80ٝ‫حافظح‬ ‫اص‬ ْ‫ا‬DDRAM(Display Data RAM٘)‫سٚی‬ ‫دس‬ ‫كفش‬ ‫ٔٛلؼیت‬ ‫با‬ َ‫ٔؼاد‬ ٝ‫و‬ ‫ؿٛد‬ ٝ‫ٛؿت‬LCD‫چطحٛس‬ ٓ‫ؿحٛی‬ ٝ‫ٔتٛخ‬ ٝ‫ایٙى‬ ‫بشای‬ .‫اػت‬ ‫ٔخت‬ ‫ٞای‬ ‫ٔٛلؼیت‬ ٝ‫ب‬‫سٚی‬ ‫ّف‬‫یه‬LCDٓ‫وٙی‬ ٜ‫اػتفاد‬ ‫صیش‬ ‫سٚؽ‬ ‫اص‬ ‫بایذ‬ ٓ‫باؿی‬ ٝ‫داؿت‬ ‫دػتشػی‬ ‫ػطشی‬ ٚ‫د‬. ‫جدول‬0-1 ‫دس‬ َ‫ٔثا‬ ‫بشای‬LCD‫ٔا‬ ‫ای‬ ٝ٘‫خا‬ ‫بیؼت‬‫بشابش‬ ْٚ‫د‬ ‫ػطش‬ ‫اص‬ ٝ٘‫خا‬ ٗ‫اِٚی‬ ٜ‫ؿٕاس‬C0ْٚ‫د‬ ‫ػحطش‬ ‫اص‬ ٝ‫خا٘ح‬ ٗ‫آخحشی‬ ٚ ‫بشابش‬D3.‫بٛد‬ ‫خٛاٞذ‬‫٘حٛع‬ ٗ‫ای‬ ‫ٔٛسد‬ ‫دس‬ ‫بیـتش‬ ‫اطالػات‬ ‫بشای‬LCD‫اص‬ ‫ٔیتٛا٘یحذ‬ ‫ٞحا‬ata sheetd‫آٟ٘حا‬ .‫وٙیذ‬ ٜ‫اػفتاد‬ ‫افضاس‬ ْ‫٘ش‬ ‫دس‬ ‫ایٙىاس‬ ‫بشای‬Proteus‫سٚی‬LCDٕٝ‫دو‬ ٚ ‫وٙیذ‬ ‫وّیه‬ ُ‫داب‬Data‫خحٛد‬ ‫بطحٛس‬ ‫تا‬ ‫دٞیذ‬ ‫فـاس‬ ‫سا‬ ‫واس‬datasheet‫سٚؽ‬ ٗ‫ایح‬ ‫اص‬ ‫ٔیتٛا٘یذ‬ ‫ٞا‬ ‫آیؼی‬ ‫اوثش‬ ‫ٔٛسد‬ ‫دس‬ .‫دٞذ‬ ‫ٕ٘ایؾ‬ ٚ ٜ‫وشد‬ ‫داّ٘ٛد‬ ‫ایٙتش٘ت‬ ‫اص‬ ‫آ٘شا‬ .‫وٙیذ‬ ٜ‫اػتفاد‬ ‫لؼٕت‬ ٝ‫ب‬ ‫دػتٛسات‬ ‫دس‬ ;-----------------------------write------- mov A,#'2' acall write_char mov A,#32H acall write_char here: sjmp here ‫واساوتش‬ ‫اػىی‬ ‫وذ‬ َٚ‫ا‬ ‫باس‬ ٝ‫و‬ ‫وٙیذ‬ ٝ‫تٛخ‬'2'ُ‫داخ‬ ‫دس‬ ‫سا‬A‫ػحذد‬ ْٚ‫د‬ ‫باس‬ ٚ ‫ٔیذٞذ‬ ‫لشاس‬32Hُ‫داخح‬ ‫دس‬ ‫سا‬ Aٞ ٓٞ ‫باص‬ ٝ‫و‬ ‫ٔیذٞذ‬ ‫لشاس‬‫ػذد‬ ‫اػىی‬ ‫وذ‬ ٖ‫ٕا‬2‫وحاساوتش‬ ‫دٚباس‬ ‫دػتٛسات‬ ٗ‫ای‬ ‫دس‬ ‫ػباستی‬ ٝ‫ب‬ .‫ٞؼت‬2ٝ‫٘ٛؿحت‬ .‫ٔیـٛد‬ ‫وٕحه‬ ‫با‬ ٓ‫ٔیخٛاٞی‬ ٖٛٙ‫او‬data pointer‫اختلحاس‬ ‫بطحٛس‬ ٝ‫وح‬DPTRٝ‫سؿحت‬ ‫یحه‬ ‫ٔیـحٛد‬ ٝ‫٘ٛؿحت‬ ‫سٚی‬ ‫سا‬ ‫واساوتشی‬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
  • 21. 18 .ٓ‫ببیٙی‬ ‫سا‬ ‫صیش‬ ‫خشٚخی‬ ٓ‫ٔیتٛا٘ی‬ ‫باال‬ ‫ٔطاِب‬ ‫بٙذی‬ ‫خٕغ‬ ‫با‬ ٖٛٙ‫او‬ ‫شکل‬‫‏‬025- ‫حٛع‬‫ح‬٘ ٗ‫ح‬‫ح‬‫ای‬ ‫اص‬ ٜ‫حذ‬‫ح‬٘‫ٔا‬ ‫حالی‬‫ح‬‫ب‬ ٝ‫ح‬‫ح‬‫٘ىت‬ ‫حه‬‫ح‬‫ی‬LCD‫حك‬‫ح‬‫طشی‬ ‫اص‬ ‫حا‬‫ح‬ٞ ‫حاساوتش‬‫ح‬‫و‬ ٗ‫ح‬‫ح‬‫ای‬ ٝ‫ح‬‫ح‬‫وّی‬ ٝ‫ح‬‫ح‬‫ایٙى‬CGROM(- Character Generator ROM.‫وحشد‬ ‫ٔحذیشیت‬ ‫آ٘شا‬ ٖ‫ٔیتٛا‬ ٝ‫و‬ ‫ٔیـٛد‬ ‫تِٛیذ‬ )‫اطالػحات‬ ‫بحشای‬ ‫بیـتش‬‫ٔٛسد‬ ‫دس‬Alphanumeric LCDٝ‫ب‬ ‫ٔیتٛا٘یذ‬ http://www.8051projects.net/lcd-interfacing/ .‫وٙیذ‬ ٝ‫ٔشاخؼ‬ ‫تـىش‬ ‫با‬ٜ‫صاد‬ ِٝ‫ا‬ ‫ػیف‬ ٗ‫ٔاؼ‬1 mmohsen_seif@yahoo.co 1 ‫قسمت‬ ‫ایه‬ ‫تا‬ ً‫مقال‬ ‫قیمت‬ ً‫توج‬35555‫از‬ ‫میتواویذ‬ ‫خودتان‬ ‫اختیار‬ ً‫ت‬ ً‫ک‬ ‫تاشذ‬ ‫می‬ ‫لایر‬5‫تا‬155‫در‬ ‫تگیریذ‬ ‫وظر‬ ‫در‬ ‫تخفیف‬ ‫آن‬ ‫ترای‬ ‫درصذ‬ ‫از‬ ‫غیر‬ ً‫ت‬ ‫تخفیفی‬ ً‫ک‬ ‫صورتی‬155‫حساب‬ ‫شماري‬ ً‫ت‬ ‫میتواویذ‬ ‫داشتیذ‬ ‫درصذ‬1572355655211‫واریس‬ ‫زادي‬ ً‫ال‬ ‫سیف‬ ‫محسه‬ ‫وام‬ ً‫ت‬ ً‫سپ‬ ‫تاوک‬ ‫مطالة‬ ً‫ادام‬ ً‫کىیذ.ٌسیى‬‫تود‬ ‫ثمر‬ ‫مثمر‬ ‫و‬ ‫مفیذ‬ ً‫ک‬ ‫درصورتی‬‫از‬ ‫تودوش‬ ‫مفیذ‬ ‫میسان‬ ً‫ت‬ ً‫تست‬35555‫تا‬255555.‫میثاشذ‬
  • 22. 19 :‫دوم‬ ‫بخش‬:‫دوم‬ ‫بخش‬ ‫با‬ ‫کار‬Graphical LCD ‫بشخالف‬Alphanumeric LCD‫بخـٟا‬ ٝ‫ب‬ ٖ‫آ‬ ‫٘ماا‬ ٝ‫و‬ٜ‫اػتفاد‬ ‫با‬ ٖ‫ٔیتٛا‬ ٚ ٜ‫ؿذ‬ ٓ‫تمؼی‬ ‫وٛچىتش‬ ‫ی‬ ‫اص‬CGROM‫دس‬ ‫وشد‬ ‫ٔذیشیت‬ ٚ ‫٘ٛؿت‬ ‫سا‬ ‫خاكی‬ ‫واسوتش‬ ٖ‫آ‬ ‫سٚی‬Graphical LCD‫كحٛست‬ ٝ‫بح‬ ‫٘محاا‬ ‫ػطح‬ ْ‫تٕا‬ ‫سٚی‬ ٝ‫و‬ ‫ٔیـٛ٘ذ‬ ‫ٔذیشیت‬ ٓٞ ‫وٙاس‬ ‫دس‬ ٚ ‫یىدا‬LCD.‫ا٘ذ‬ ٜ‫ؿذ‬ ٜ‫ٌؼتشد‬ ‫یه‬LCD‫ٌشافیىی‬64×128‫افضاس‬ ْ‫٘ش‬ ‫واس‬ ‫ٔایط‬ ٝ‫ب‬ ‫سا‬Proteus.‫بیاٚسیذ‬ ‫ش‬‫کل‬‫‏‬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 ‫جدول‬0-2 ُ‫ٔث‬ ٖ‫آ‬ ‫ٞای‬ ٝ‫پای‬LCD( .‫ٔیىٙیذ‬ ُٕ‫ػ‬ ‫واساوتشی‬ٝ‫كفا‬12) ٝ‫پای‬VO‫ٔتییش‬ ‫(ٔماٚت‬ ‫پتا٘ؼیٛٔتش‬ ‫یه‬ ٝ‫ب‬ ٝ‫و‬POT‫وٕه‬ ٝ‫ب‬ ٚ ‫ٔیـٛد‬ ُ‫ٚك‬ )VDDٖ‫ٔیحضا‬contrast ٝ‫٘ٛؿت‬.‫ٔیىٙذ‬ ٓ‫تٙظی‬ ‫سا‬ ‫ٞا‬ D/Iٚ ‫٘یؼت‬ ‫خذیذی‬ ٝ‫پای‬َ‫ٔؼاد‬RS.‫اػت‬ ٝ‫پای‬A(Anode +ٝ‫پای‬ ٚ ‫ٔثبت‬ ‫ِٚتاط‬ ٝ‫ب‬ )K(-cathode‫باػحث‬ ٝ‫و‬ ‫ٔیـٛ٘ذ‬ ُ‫ٚك‬ ‫ٔٙفی‬ ٝ‫پای‬ ٝ‫ب‬ ) ُ‫داخ‬ ‫ٞای‬ ‫چشاؽ‬ ٖ‫ؿذ‬ ٗ‫سٚؿ‬LCD.‫ٔیـٛ٘ذ‬ ٝ‫پای‬CS1(chip select1ٚ )CS2‫چحپ‬ ‫یحا‬ ‫ساػحت‬ ‫ػحٕت‬ ٜ‫وٙٙذ‬ َ‫فؼا‬ ٖ‫ػٙٛا‬ ٝ‫ب‬‫ٕ٘حایؾ‬ ٝ‫كحفا‬ ‫ٔی‬.‫باؿذ‬ ٝ‫پای‬RES(RESET.‫ٔیـٛد‬ َ‫فؼا‬ ‫كفش‬ ‫با‬ ٝ‫و‬ ‫ٔیباؿذ‬ ) ‫دیتای‬ ‫ٞای‬ ٝ‫پای‬ ٖٛٙ‫او‬LCD‫سا‬‫پٛست‬ ٝ‫ب‬P0‫پٛست‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫یاد‬ ٝ‫ب‬ .‫وٙیذ‬ ُ‫ٚك‬ ٚ‫ٔیىش‬P0ٝ‫ٌٛ٘ح‬ ٝ‫بح‬ ‫ٔماٚٔتٟای‬ ‫اص‬ ‫بایذ‬ ٖ‫آ‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬ ٝ‫و‬ ٜ‫ؿذ‬ ‫طشاحی‬ ‫ای‬10k(resistor 10k).ٓ‫وٙی‬ ٜ‫اػتفاد‬
  • 23. 25 ٚ ٚ‫ٔیىش‬ ‫بش‬ ٜٚ‫ػال‬ ‫پغ‬DLC‫سا‬ ‫ٞـتایی‬ ‫ٔماٚٔت‬ ‫پىیح‬ ‫یه‬‫٘یض‬.‫وٙیحذ‬ ٝ‫اضحاف‬ ‫وحاس‬ ‫ٔایط‬ ٝ‫ب‬‫پىحیح‬ ٗ‫ایح‬ ُ‫داخ‬ ‫ٔما‬ ‫ٞـت‬‫د‬ ‫لشاس‬ ٓٞ ‫وٙاس‬ ‫دس‬ ‫ٔٛاصی‬ ‫بلٛست‬ ‫ٚٔت‬.‫اس٘ذ‬ ‫شکل‬‫‏‬027- ٝ‫پای‬1ٝ‫ب‬ ‫سا‬ ‫ػشی‬ ‫ٔماٚٔت‬powerٖ‫ٕٞا‬ ‫یا‬5vٖٛ‫آیى‬ ‫سٚی‬ ‫ایٙىاس‬ ‫بشای‬ .‫وٙیذ‬ ُ‫ٚك‬Terminals Modeٚ‫ٔیىحش‬ ٝ‫بح‬ ُ‫ؿحى‬ ‫ٔا٘ٙحذ‬ ‫٘یحض‬ ‫سا‬ ‫ٞا‬ ٝ‫پای‬ ٝ‫بمی‬ .)‫وٙیذ‬ ٝ‫تٛخ‬ ُ‫ؿى‬ ٝ‫ب‬ ‫بیـتش‬ ‫تٛضیح‬ ‫بشای‬ ( ‫وٙیذ‬ ‫وّیه‬ .‫وٙیذ‬ ُ‫ٚك‬ ‫شکل‬‫‏‬028- ‫لؼٕت‬ ‫دس‬Terminalsٖ‫ٔٛسدؿحا‬ ‫دس‬ ‫ٔختلحشی‬ ‫تٛضحیح‬ ‫٘یؼت‬ ‫بذ‬ ٝ‫و‬ ‫داس٘ذ‬ ‫ٚخٛد‬ ‫٘یض‬ ‫دیٍشی‬ ‫آیتٕٟای‬ .‫ؿٛد‬ ٜ‫داد‬ ‫شکل‬‫‏‬029- ‫ابضاس‬DEFAULTٓ‫ػحی‬ ‫بدحای‬ ‫یؼٙحی‬ .‫ٔیـحٛد‬ ٜ‫اػحتفاد‬ ‫وـی‬ ٓ‫ػی‬ ‫یه‬ ‫ا٘تٟای‬ ٚ‫د‬ ‫دس‬ َ‫تشٔیٙا‬ ‫یه‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ٝ‫ٔیـحٛ٘ذ.ب‬ ُ‫ٚكح‬ ‫ٞحا‬ ٝ‫پایا٘ح‬ ‫لؼحٕت‬ ‫دس‬ ‫تٟٙا‬ ٝ‫و‬ ٓ‫وٙی‬ ٜ‫اػتفاد‬ ‫ابضاس‬ ٗ‫ای‬ ‫اص‬ ٓ‫ٔیتٛا٘ی‬ ‫بّٙذ‬ ٚ ٜ‫پیچیذ‬ ‫ٞای‬ ‫وـی‬ .‫وٙیذ‬ ٝ‫تٛخ‬ ‫صیش‬ ُ‫ؿى‬
  • 24. 21 .‫ٔؼادِٙذ‬ ٓٞ ‫با‬ ُ‫ؿى‬ ٚ‫د‬ ٗ‫ای‬ ٜ‫اػحتفاد‬ ْ‫٘حا‬ ‫یحه‬ ‫اص‬ ٚ‫د‬ ‫ٞحش‬ ‫بایحذ‬ ‫باؿذ‬ ٝ‫داؿت‬ ‫ٚخٛد‬ ‫استباا‬ ٝ٘‫پایا‬ ٚ‫د‬ ٗ‫بی‬ ٝ‫ایٙى‬ ‫بشای‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ‫بیاد‬ ‫أا‬ .‫وٙٙذ‬ ٕٝ‫دو‬ ٖ‫فـشد‬ ‫با‬ ‫ٔیتٛا٘یذ‬ ‫خٛدواس‬ ‫ٌزاسی‬ ْ‫٘ا‬ ‫بشای‬ ‫ضٕٙا‬'A'ٜ‫پٙدش‬Property Assignment Tool‫ٌز‬ ْ‫٘ا‬ ‫بشای‬ ٖ‫آ‬ ‫أىا٘ات‬ ‫اص‬ ٚ ٜ‫ٌـٛد‬ ‫سا‬‫اسی‬.‫وٙیذ‬ ٜ‫اػتفاد‬ ‫شکل‬‫‏‬030- ّٕٝ‫و‬Buss‫بخؾ‬ ‫دس‬TERMINALS‫واسٞحای‬ َ‫ٔؼاد‬DEFAULTُ‫وابح‬ ‫یحه‬ ‫بحشای‬ ‫سا‬Busْ‫ا٘دحا‬ .‫ٔیذٞذ‬‫حشف‬ ٝ‫ایٙى‬ ٕٗ‫ض‬GROUND.‫ٔیـٛد‬ ٜ‫اػتفاد‬ ٗ‫صٔی‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ٝ‫ب‬.ٓ‫ٔیٍشدی‬ ‫بش‬ ‫واس‬ ٝٔ‫ادا‬ ‫یه‬LCD‫ٌشافیىی‬128x64‫ٔا‬.‫داسد‬ ‫سا‬ ‫صیش‬ ُ‫ؿى‬ ‫ٔا٘ٙذ‬ ‫یطی‬ٝ‫٘مطح‬ ‫ٞحش‬ ٖ‫وحشد‬ ٗ‫سٚؿ‬ ‫خٟت‬ ٝ‫و‬ٖ‫آ‬ ‫سٚی‬ ‫آ٘شا‬ ‫ٔمذاس‬1.ٓ‫ٔیىٙی‬ ‫كفش‬ ‫آ٘شا‬ ‫ٔمذاس‬ ٝ‫٘مط‬ ‫یه‬ ٖ‫وشد‬ ‫خأٛؽ‬ ‫خٟت‬ ٚ ‫شکل‬‫‏‬031- ٗ‫ای‬ ‫دیتای‬ ‫خط‬ ‫اص‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬LCD،‫وشد‬ ‫پیـبیٙی‬ ٖ‫ٔیتٛا‬‫ٔی‬ ٝ‫ِاظ‬ ‫یه‬ ‫دس‬ ٝ‫و‬ ‫٘ماطی‬ ‫حذاوثش‬‫سٚی‬ ‫بحش‬ ٓ‫تٛا٘ی‬ LCDٓ‫وٙی‬ ‫خأٛؽ‬ ‫یا‬ ٗ‫سٚؿ‬8.‫اػت‬ ٝ‫٘مط‬ٚ‫ٕٞا٘ٙذ‬LCDٗ‫ایح‬ ‫اص‬ ‫لؼحٕت‬ ‫ٞحش‬ ‫دس‬ ٗ‫٘ٛؿحت‬ ‫بحشای‬ ‫واساوتشی‬ LCD‫بایذ‬ ‫٘یض‬َٚ‫ا‬.ٓ‫وٙی‬ ‫ٚاسد‬ ‫سا‬ ٝ‫٘مط‬ ٖ‫آ‬ ‫آدسع‬)ٝ‫٘مط‬ ٖ‫آ‬ ‫ٔاتشیؼی‬ ‫(ٔٛلؼیت‬
  • 25. 22 ‫شکل‬‫‏‬032- ُ‫ؿى‬ ‫دس‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬ ‫ٞا‬ ‫آدسع‬ ٗ‫ای‬‫ٔمذاس‬ ‫اص‬ ‫اػت‬ ‫ٔـخق‬ ‫٘یض‬40H‫تا‬7FH‫ٔاٛس‬ ‫بشای‬x‫اص‬ ٚ ‫ٞا‬B8H‫تحا‬ BFH‫ٔاٛس‬ ‫بشای‬yٝ‫بح‬ ‫بایحت‬ ‫سا‬ ‫ٔمحادیش‬ ‫ؿحشٚع‬ ‫ٔٛلؼیت‬ ٖ‫وشد‬ ‫ٔـخق‬ ‫با‬ ٓ‫ٔیتٛا٘ی‬ ‫ٔا‬ ٚ .‫اػت‬ ٜ‫ؿذ‬ ٗ‫تؼیی‬ ‫ٞا‬ ‫بشای‬ ‫خٛدواس‬ ‫بطٛس‬ ‫ٔمذاس‬ ٗ‫ای‬ ٓ‫بٙٛیؼی‬ ‫٘ماا‬ ‫سٚی‬ ‫بش‬ ‫بایت‬xٝ‫ب‬ ‫تا‬ ‫یابذ‬ ‫ٔی‬ ‫افضایؾ‬ ‫ٞا‬7F.‫بشػذ‬ ‫بش‬ ‫تٟٙا‬ ‫اٌش‬ ‫یؼٙی‬‫آدسع‬ ‫ٔثال‬ ‫ٔا‬ ٝ‫و‬ ‫اػت‬ ‫٘یاص‬ ‫ؿشٚع‬ ‫ای‬40Hٗ‫ایح‬ ‫خٛدوحاس‬ ‫بطحٛس‬ ٖ‫آ‬ ‫اص‬ ‫بؼحذ‬ ٚ ٓ‫وٙحی‬ ‫ٚاسد‬ ‫سا‬ .‫٘یؼت‬ ٖ‫آ‬ ‫ٔدذد‬ ٖ‫وشد‬ ‫ٚاسد‬ ٝ‫ب‬ ‫٘یاصی‬ ٚ ‫ٔیابذ‬ ‫افضایؾ‬ ‫آدسع‬ ‫افضایؾ‬ ٗ‫ای‬xٝ‫ب‬ ٝ‫و‬ ‫صٔا٘ی‬ ‫تا‬7F‫ػذد‬ ٝ‫ب‬ ٖ‫آ‬ ‫اص‬ ‫بؼذ‬ ٚ ‫ٔیابذ‬ ٝٔ‫ادا‬ ‫بشػذ‬80H،‫ٔیشػحذ‬‫ػحذد‬80H‫ؿحشٚع‬ .‫بٛد‬ ‫خٛاٞذ‬ ْٚ‫د‬ ‫ػطش‬ ‫ا‬ ٗ‫ای‬ ‫تشتیب‬‫فضایؾ‬x( ‫ٔا‬ ‫ؿشٚع‬ ‫ٔٛلؼیت‬ ٝ‫و‬ ‫باؿیذ‬ ٝ‫داؿت‬ ٝ‫تٛخ‬ .‫بٛد‬ ‫خٛاٞذ‬ ‫صیش‬ ‫كٛست‬ ٝ‫ب‬40H,B8H.‫بٛد‬ ) ‫شکل‬‫‏‬033- ‫سا‬ ‫ؿشٚع‬ ٝ‫٘مط‬ ‫ٔا‬ ‫ٌش‬(40,B8)‫سا‬ ‫ٔمحذاس‬ ٗ‫ایح‬ ‫اٌحش‬ ٚ ٓ‫بٙٛیؼحی‬ َٚ‫ا‬ ‫ػحطش‬ ‫ابتحذای‬ ‫اص‬ ٓ‫ٔیتحٛا٘ی‬ ٓ‫دٞی‬ ‫لشاس‬ (80,B8)‫ٔیتٛا٘ی‬ ٓ‫دٞی‬ ‫لشاس‬‫با‬ ‫اػت‬ َ‫ٔؼاد‬ ٝ‫و‬ ٓ‫بٙٛیؼ‬ ْٚ‫د‬ ‫ػطش‬ ‫ابتذای‬ ‫اص‬ ٓ(40,B9)
  • 26. 23 (80,B8)=(40,B9) ‫افضایؾ‬ ‫اػت‬ ‫ٔـخق‬ ‫٘یض‬ ‫باال‬ ُ‫ؿى‬ ‫دس‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬x‫تحا‬ ‫ٕ٘یـحٛد‬ ‫باػث‬‫ػحتٛ٘ی‬ ‫٘ظحش‬ ‫اص‬ ‫٘محاا‬ ‫ٔٛلؼیحت‬ٝ‫بح‬ ‫اص‬ ‫تش‬ ٗ‫پایی‬ ّٝ‫ٔشح‬BC‫ٔمذاس‬ ‫دیٍش‬ ‫باس‬ ‫بایذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬ ‫بشای‬ ٚ . ‫وٙذ‬ ‫سخٛع‬y‫بشابش‬ ‫سا‬BC.ٓ‫دٞی‬ ‫لشاس‬ ‫ٔا‬ ‫پغ‬َ‫وٙتش‬ ‫با‬xٚy‫یحه‬ ٗ‫طحشفی‬ َ‫وٙتحش‬ ‫أا‬ ٓ‫وٙی‬ ‫پیذا‬ ‫دػتشػی‬ ٝ‫كفا‬ ٓ‫٘ی‬ ‫یه‬ ‫٘ماا‬ ُ‫و‬ ٝ‫ب‬ ٓ‫ٔیتٛا٘ی‬ LCD‫پیٟٙای‬ ‫وٕه‬ ٝ‫ب‬CS1ٚCS2.‫ٔیـٛد‬ ْ‫ا٘دا‬ ‫كفش‬‫اص‬ ‫یه‬ ‫ٞش‬ ٖ‫بٛد‬ٗ‫پی‬ ٚ‫د‬CS1ٚCS2َ‫اػٕحا‬ ‫ساػت‬ ‫یا‬ ‫چپ‬ ‫ػٕت‬ ‫چیپ‬ ‫سٚی‬ ‫ٔا‬ ‫دػتٛسات‬ ‫ٔیـٛد‬ ‫باػث‬ . ‫ؿٛد‬‫وٙیذ‬ ‫فشم‬ ‫یؼٙی‬CS1=CS2=0‫ا‬ ٝ‫ب‬ ٓ‫باؿی‬ ٜ‫وشد‬‫طحشف‬ ٚ‫د‬ ‫ٞحش‬ ٝ‫وح‬ ‫اػحت‬ ‫ٔؼٙی‬ ٗ‫ی‬LCDَ‫فؼحا‬ ‫سا‬ ٓ‫ای‬ ٜ‫وشد‬ٚ‫بایذ‬ َٚ‫ا‬ ‫أا‬ ٓ‫بٙٛیؼی‬ ‫آٟ٘ا‬ ‫سٚی‬ ٓ‫ٔیتٛا٘ی‬‫ٔمذاس‬x,y‫آ٘شا‬‫ٔمحذاس‬ ‫وٙیحذ‬ ‫فشم‬ ٓ‫وٙی‬ ‫ٔـخق‬x,y ‫سا‬‫با‬ ‫بشابش‬(40,B8)‫طشف‬ ٚ‫د‬ ‫ٞش‬ ‫دس‬ ٗ‫٘ٛؿت‬ ُٕ‫ػ‬ ٓ‫ای‬ ٜ‫داد‬ ‫لشاس‬LCD.‫ؿحذ‬ ‫خٛاٞذ‬ ْ‫ا٘دا‬ ‫ٔٛاصی‬ ‫طٛس‬ ٝ‫ب‬‫تحا‬ ‫باالی‬ ‫٘لف‬ ٝ‫و‬ ‫صٔا٘ی‬LCD‫بؼ‬ ‫ؿٛد‬ ‫پش‬‫ٔٛلؼیحت‬ ٝ‫بح‬ ٜ‫دٚبحاس‬ ‫بایذ‬ ٖ‫آ‬ ‫اص‬ ‫ذ‬(40,BC)‫دٚبحا‬ ٚ ٝ‫سفتح‬ُ‫ػٕح‬ ٜ‫س‬ ‫٘یض‬ ٗ‫پایی‬ ٕٝ‫٘ی‬ ‫بشای‬ ‫سا‬ ٗ‫٘ٛؿت‬.ٓ‫دٞی‬ ْ‫ا٘دا‬ ‫شکل‬‫‏‬034- ‫یه‬ ‫ػتٟٛ٘ای‬ ٚ ‫ػطشٞا‬ ‫چطٛس‬ ٝ‫و‬ ٓ‫فٟٕیذی‬ ‫ٔا‬ ‫واس‬ ‫ایٙدای‬ ‫تا‬LCD‫پحش‬ َٛ‫اك‬ ‫أا‬ .ٓ‫باؿی‬ ٝ‫داؿت‬ َ‫وٙتش‬ ‫تات‬ ‫سا‬ ٖ‫وشد‬.‫اػت‬ ٍٝ٘ٛ‫چ‬ ‫٘ماا‬ ٗ‫ای‬ٓ‫ٌفتی‬‫ٔمذاس‬ ‫ٞش‬1‫خحأٛؽ‬ ‫باػحث‬ ‫كحفش‬ ‫ٔمحذاس‬ ٚ ٝ‫٘مطح‬ ‫یه‬ ٖ‫ؿذ‬ ٗ‫سٚؿ‬ ‫باػث‬ ( ٝ‫خا٘ح‬ ‫دس‬ ‫ٔحا‬ ٝ‫وح‬ ‫كحٛستی‬ ‫دس‬ .‫ٔیـحٛد‬ ٝ‫٘مطح‬ ٖ‫آ‬ ٖ‫ؿذ‬40,B8‫بحا‬ ‫بشابحش‬ ‫ٚسٚدی‬ ‫دیتحای‬ ‫ٔمحذاس‬ ٚ ٓ‫باؿحی‬ ) 11111110B‫باؿذ‬ٗ‫اِٚی‬ٝ‫٘مط‬ ‫ٞـت‬‫ػتٛ٘ی‬‫دس‬( ‫ٔٛلؼیت‬40,B8‫تشتیحب‬ ٝ‫بح‬ ٚ ‫ؿحذ‬ ‫خٛاٞیذ‬ ‫ا٘تخا‬ ) ‫ا‬ ٝ‫٘مط‬َٚٚ ‫خأٛؽ‬7.‫ؿذ‬ ‫خٛاٞذ‬ ٗ‫سٚؿ‬ ‫تش‬ ‫اسصؽ‬ ‫با‬ ٝ‫٘مط‬
  • 27. 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-
  • 28. 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
  • 29. 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 ‫ا‬ ٝ‫چشخ‬ ٜ‫ٕٞٛاس‬ ٝ‫و‬ ‫وٙیذ‬ ٝ‫تٛخ‬‫ٔمحذاس‬ ‫بحاس‬ ‫ٞش‬ ٚ ‫ٔیىٙیذ‬ ‫طی‬ ‫سا‬ ‫ی‬00000000‫سٚی‬ ‫دس‬ ‫سا‬LCD‫ٔیٙٛیؼحذ‬ ‫سٚی‬ ‫اػذاد‬ ٗ‫ای‬ ٗ‫٘ٛؿت‬ ٜ‫لاػذ‬LCDُ‫ؿى‬ ‫ٕٞا٘ٙذ‬1-33(ٝ‫كفا‬22).‫بٛد‬ ‫خٛاٞذ‬‫٘لحف‬ ‫تحا‬ ‫یؼٙحی‬LCD ٝ‫٘لف‬ ‫بشای‬ ٓ‫سػیذی‬ ٝ‫كفا‬ ‫٘لف‬ ٝ‫ب‬ ٝ‫ایٙى‬ ‫اص‬ ‫بؼذ‬ ٝ‫و‬ ٓ‫وٙی‬ ‫اكال‬ ٗ‫چٙی‬ ‫سا‬ ‫دػتٛسات‬ ‫بایذ‬ ‫پغ‬ٜ‫دٚبحاس‬ ‫تحش‬ ٗ‫پایی‬ ‫ٔمذاس‬Xٚy‫سٚی‬ ‫اطالػات‬ ُ‫و‬ ٝ‫ایٙى‬ ‫اص‬ ‫پغ‬ ٚ ٓ‫وٙی‬ ‫ٚاسد‬ ‫سا‬LCD.ٓ‫وٙی‬ ْ‫تٕا‬ ‫سا‬ ‫واس‬ ‫ؿذ‬ َ‫اسػا‬‫یحه‬ ‫بحاص‬ ‫أا‬ ‫ساػت‬ ‫چپ‬ َ‫وٙتش‬ .‫داسد‬ ‫ٚخٛد‬ ُ‫ٔـى‬LCD‫بایذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬ ‫بشای‬CSٝ‫ایٙىح‬ ‫اص‬ ‫بؼحذ‬ ‫تا‬ ٓ‫وٙی‬ َ‫وٙتش‬ ٓٞ ‫سا‬ ‫ٞا‬ ‫چپ‬ ‫ػٕت‬ ‫اص‬ ‫ػطش‬ ‫یه‬LCD‫ساػت‬ ‫ػٕت‬ ٝ‫ب‬ ‫سا‬ َ‫وٙتش‬ ‫ؿذ‬ ٝ‫٘ٛؿت‬‫سا‬ ‫ػحطش‬ ٖ‫ٕٞحا‬ ٝ‫ادأح‬ ٚ ٜ‫بحشد‬‫لؼحٕت‬ ‫دس‬ ‫ساػت‬LCD.‫بٙٛیؼذ‬ ‫شکل‬‫‏‬038-
  • 30. 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 ;----------------------------------------
  • 31. 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
  • 32. 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 ‫وافیؼت‬ ‫ٞا‬ ٗ‫سٚتی‬ ٗ‫ای‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬DPTR‫سا‬ٝ‫ب‬‫سٚی‬ ‫اػحت‬ ‫لشاس‬ ٝ‫و‬ ‫ؿىّی‬ ‫وذٞای‬ ‫ابتذای‬LCDٓ‫تشػحی‬ .ٓ‫بذٞی‬ ٜ‫اؿاس‬ ٓ‫وٙی‬ ‫ػىغ‬ ‫یه‬ ُ‫پیىؼ‬ ‫ٞش‬ ‫اٌش‬BMP‫سٚی‬ ٝ‫٘مط‬ ‫یه‬ ٖ‫ػٙٛا‬ ٝ‫ب‬ ‫سا‬LCD‫بذیٟیؼحت‬ ٓ‫وٙحی‬ ‫تلحٛس‬‫بایحذ‬ ُ‫ؿحى‬ ٗ‫ایح‬ 128x64.‫باؿذ‬ ُ‫پیىؼ‬‫سٚی‬ ٝ‫ایٙى‬ ٝ‫ب‬ ٝ‫تٛخ‬ ‫با‬LCD‫یحا‬ ‫كحفش‬ ‫یؼٙحی‬ ‫داسد‬ ‫ٚخٛد‬ ٜ‫تیش‬ ‫یا‬ ٗ‫سٚؿ‬ ً٘‫س‬ ٚ‫د‬ ‫تٟٙا‬ ‫بیـتش‬ ‫ٕٞاٍٞٙی‬ ‫بشای‬ ‫یه‬BMP‫وٙیحذ.بشای‬ ٜ‫اػحتفاد‬ ‫بیت‬ ‫یه‬ ‫ػٕك‬ ‫با‬ ٜ‫ػیا‬ ٚ ‫ػفیذ‬ ً٘‫س‬ ٚ‫د‬ ‫فشٔت‬ ‫اص‬ ‫بایذ‬ ‫ٔا‬ ٝٔ‫بش٘ا‬ ‫اص‬ ‫ٔیتٛا٘یذ‬ ‫ٔٙظٛس‬ ٗ‫ای‬Paint.‫وٙیذ‬ ٜ‫اػتفاد‬ ‫صیش‬ ‫بلٛست‬ ‫ٚیٙذٚص‬ ‫ٔٙححٛی‬ ‫اص‬ ٝ‫بش٘أحح‬ ٖ‫وححشد‬ ‫بححاص‬ ‫اص‬ ‫حغ‬‫ح‬‫پ‬Imageٝ‫ٌضیٙحح‬utesAttribٜ‫پٙدححش‬ ‫تححا‬ ‫وٙیححذ‬ ‫ا٘تخححا‬ ‫سا‬ Attributesٝ‫ب‬ ‫آ٘شا‬ ‫ؿٛد.ػشم‬ ٜ‫داد‬ ‫ٕ٘ایؾ‬64ٝ‫ب‬ ‫آ٘شا‬ َٛ‫ط‬ ٚ128ً‫س٘ح‬ ٚ .‫وٙیحذ‬ ٓ‫تٙظحی‬ ُ‫پیىؼح‬ ٝ‫ب‬ ‫آ٘شا‬Black and white.‫دٞیذ‬ ‫تیییش‬ ‫شکل‬‫‏‬040-
  • 33. 35 ٍٞ ‫وذٞای‬ ٝ‫ب‬ ‫سا‬ ٜ‫ؿذ‬ ٜ‫وـیذ‬ ‫ػىغ‬ ٝ‫و‬ ‫اػت‬ ٖ‫آ‬ ‫٘ٛبت‬ ٖٛٙ‫او‬‫با‬ ‫ٔتٙاػب‬ ‫ض‬LCD.ٓ‫وٙی‬ ُ‫تبذی‬ ْ‫٘حا‬ ‫بحا‬ ‫وٛچىی‬ ‫افضاس‬ ْ‫٘ش‬LCDCodeGenerator‫ػىؼحٟای‬ ُ‫تبحذی‬ ‫بحشای‬128x64ٝ‫بح‬ ‫پیىؼحّی‬ ‫وذٞای‬‫اػٕبّی‬LCD.‫داسد‬ ‫ٚخٛد‬ٝ‫بح‬ ‫دػحت‬ ٖ‫خٛدتحا‬ ‫ٔیتٛا٘یذ‬ ‫٘ىشدیذ‬ ‫پیذا‬ ‫ایٙىاس‬ ‫بشای‬ ‫سا‬ ‫ٔٙاػبی‬ ٝٔ‫بش٘ا‬ ‫(اٌش‬ ‫ایٙىاس‬ ‫بشای‬ َ‫ٚیظٚا‬ ‫ٞای‬ ٖ‫صبا‬ ‫با‬ ‫ٔٙاػب‬ ٝٔ‫بش٘ا‬ ‫ٚیه‬ ‫ؿٛیذ‬ ‫واس‬).‫وٙیذ‬ ‫طشاحی‬ ‫بایذ‬ ‫حتٕا‬ ٖ‫ػىؼتا‬ ْ‫٘ا‬ ٖ‫آ‬ ‫اص‬ ٜ‫اػتفاد‬ ‫بشای‬pic.bmp‫باؿذ‬‫آ‬ ‫سٚی‬ ُ‫ؿى‬ ‫ٔا٘ٙذ‬ .‫ی‬ٖٛ‫ىح‬change.bat ‫بحححشای‬ ‫تحححا‬ ‫وٙیحححذ‬ ‫وّیحححه‬pic.bmp‫یحححه‬pic.lcd‫وٕحححه‬ ‫بحححا‬ ‫ٔیتٛا٘یحححذ‬ ‫ػحححپغ‬ ‫بؼحححاصد‬ LCDCodeGenerator.‫وٙیذ‬ ُ‫تبذی‬ ‫اػٕبّی‬ ‫وذ‬ ٝ‫ب‬ ‫ٟ٘ایت‬ ‫دس‬ ٚ ‫وٙیذ‬ ‫ٚیشایؾ‬ ٜ‫وشد‬ ‫باص‬ ‫آ٘شا‬ ٔ‫بش٘ا‬ ‫اص‬ ‫بشخی‬ (‫ٞحایی‬ ٝ‫بش٘أح‬ ٗ‫چٙی‬ ‫وٙیذ‬ ‫ػؼی‬ ٗ‫ٕٞی‬ ‫بشای‬ ‫٘ذاسد‬ ‫ػاصٌاسی‬ ‫اٍّ٘یؼی‬ ‫غیش‬ ٖ‫صبا‬ ‫با‬ ‫ٔٛخٛد‬ ‫ٞای‬ ٝ )‫٘ىٙیذ‬ ٜ‫رخیش‬ ‫فاسػی‬ ْ‫٘ا‬ ‫با‬ ‫ای‬ ٝ‫پٛؿ‬ ُ‫داخ‬ ‫سا‬ ‫شکل‬‫‏‬041-
  • 34. 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
  • 35. 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
  • 36. 33 :ٝٔ‫بش٘ا‬ ‫خشٚخی‬ ‫شکل‬‫‏‬042- ‫سا‬ ٖ‫خٛدتا‬ ‫وذٞای‬ ‫ٔیتٛا٘یذ‬ ‫ػاصی‬ ٝ‫ؿبی‬ ‫اخشای‬ ْ‫ٍٞٙا‬ ٝ‫ب‬trace.‫وٙیذ‬ ٖٛ‫آیىح‬ ‫ابتحذا‬step‫ٔٙحٛی‬ ‫اص‬ ‫ػحپغ‬ ‫وٙیحذ‬ ‫ا٘تخحا‬ ‫سا‬Debug‫ٔٙحٛی‬ ‫صیحش‬ ٚ8051 cpuٝ‫ٌضیٙح‬ source code.‫ؿٛد‬ ٜ‫داد‬ ‫ٕ٘ایؾ‬ ‫وذ‬ ٜ‫پٙدش‬ ‫تا‬ ‫وٙیذ‬ ‫ا٘تخا‬ ‫سا‬ ‫شکل‬‫‏‬043-
  • 37. 34 ‫شکل‬‫‏‬044- ‫تٛػط‬ ٝ‫و‬ ‫خایی‬ ‫تا‬ ٝٔ‫بش٘ا‬ ٝ‫پیٛػت‬ ‫اخشای‬ ‫بشای‬ :.‫ٔیشٚد‬ ‫واس‬ ٝ‫ب‬ ‫باؿذ‬ ٜ‫ؿذ‬ ٜ‫صد‬ ‫ػالٔت‬ .‫ٔیشٚد‬ ‫واس‬ ٝ‫ب‬ ٝٔ‫بش٘ا‬ ‫صیش‬ ُ‫داخ‬ ٝ‫ب‬ ‫ٚسٚد‬ ٝ٘ٚ‫بذ‬ ‫ػطش‬ ٝ‫ب‬ ‫ػطش‬ ‫اخشای‬ ‫بشای‬ : ‫بشا‬ :.‫ٔیشٚد‬ ‫واس‬ ٝ‫ب‬ ٝٔ‫بش٘ا‬ ‫صیش‬ ُ‫داخ‬ ٝ‫ب‬ ‫ٚسٚد‬ ‫با‬ ‫ػطش‬ ٝ‫ب‬ ‫ػطش‬ ‫اخشای‬ ‫ی‬ .‫ٔیشٚد‬ ‫واس‬ ٝ‫ب‬ ‫باالتش‬ ‫ػطح‬ ٝ‫ب‬ ٖ‫آ‬ ‫اص‬ ‫خشٚج‬ ٚ ٝٔ‫بش٘ا‬ ‫صیش‬ ُٔ‫وا‬ ‫اخشای‬ ‫بشای‬ : ُ‫داخ‬ ٝ‫حافظ‬ ‫یا‬ ‫ٞا‬ ‫سخیؼتش‬ ٜ‫ٔـاٞذ‬ ‫بشای‬ ‫واسٞاسا‬ ٗ‫ٕٞی‬CPU.‫ببشیذ‬ ‫واس‬ ٝ‫ب‬ ‫ٔیتٛا٘یذ‬ ٓٞ ‫سٚی‬ ‫سا‬ ٝ‫كفا‬ ‫یه‬ ٓ‫ؿذی‬ ‫ٔٛفك‬ ‫ٔا‬ ‫واس‬ ‫ایٙدای‬ ‫تا‬LCDْ‫ا٘دحا‬ ‫صیحش‬ ‫ػىغ‬ ‫بشای‬ ‫واسٞاسا‬ ٗ‫ای‬ ٕٝٞ.ٓ‫دٞی‬ ‫ٕ٘ایؾ‬ ‫ؿٛد‬ ٜ‫داد‬ ‫ٕ٘ایؾ‬ ٝ‫كفا‬ ‫سٚی‬ ‫تا‬ ٓ‫دٞی‬ ‫ٔی‬.
  • 38. 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
  • 39. 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. ‫شکل‬3-1‎‫‏‬ Fig A. - MAX232 Pin Description ‫شکل‬4-1‎ Fig B. - MAX232 Typical Connection Circuit
  • 40. 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 ‫شکل‬5-1‎ 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.
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 42 :‫منابع‬:‫منابع‬ ‫وٙتشِش‬ ٚ‫ٔیىش‬ ‫وتا‬8551ْ‫٘ا‬ ‫ػپیذ‬ ‫لذست‬ ٕٝ‫تشخ‬ ،‫ٌّیؼپی‬ ‫ٔضیذی،خا٘یغ‬ ‫ػّی‬ ‫ٔإذ‬ ٝ‫٘ٛؿت‬ http://www.mikroe.com http://www.8051projects.net http://www.eca.ir ٜ‫صاد‬ ِٝ‫ا‬ ‫ػیف‬ ٗ‫ٔاؼ‬ 59143186489 mohsen_seif@yahoo.com
  • 46. 43 ‫ا‬ ٝ‫حشف‬ ‫ٞش‬ ‫دس‬‫ی‬‫ٞؼت‬ ٝ‫و‬‫ی‬‫ذ‬ٞ‫بذ‬ ٜ‫اخاص‬ ٝ٘‫ی‬‫ذ‬‫بذ‬ ٝ‫ب‬‫ب‬‫ی‬ٙ‫ی‬‫ٞا‬‫ی‬‫ب‬‫ی‬ٛ‫ؿ‬ ٜ‫آِٛد‬ ُ‫حاك‬‫ی‬‫ذ‬‫بٍزاس‬ ٝ٘ ٚ‫ی‬‫ذ‬‫بؼضح‬‫ی‬ ‫بشا‬ ٝ‫و‬ ‫باس‬ ‫تاػف‬ ‫ِاظات‬‫ی‬‫ٔذت‬‫ی‬‫پ‬‫ی‬‫ؾ‬‫ٔح‬‫ی‬‫آ‬‫یح‬‫ذ‬ٝ‫بح‬ ‫سا‬ ‫ؿحٕا‬‫یح‬‫اع‬ٔ‫٘اا‬ ٚ‫یح‬‫ذ‬‫ی‬‫بحش‬ ٓ‫ححاو‬ ‫آسأحؾ‬ ‫دس‬ .‫بىـحا٘ذ‬ ‫آصٔا‬‫ی‬‫ـٍاٟٞا‬‫ٞا‬ ٝ٘‫وتابخا‬ ٚ‫ی‬ٖ‫تا‬ٌ‫ص٘ذ‬‫ی‬ٙ‫و‬‫ی‬‫ذ‬. ‫٘خؼت‬‫بپشػ‬ ‫خٛد‬ ‫اص‬‫ی‬‫ذ‬‫بشا‬‫ی‬‫ی‬‫اد‬ٌ‫ی‬‫ش‬‫ی‬‫آٔٛص‬ ‫خٛد‬ ٚ‫ی‬‫پ‬ ٝ‫و‬ ٖ‫ٕٞچٙا‬ ‫ػپغ‬ ‫اْ؟‬ ٜ‫وشد‬ ٝ‫چ‬‫ی‬‫ؾ‬ٔ‫ی‬ٚ‫س‬‫ی‬‫ذ‬‫بپشػح‬‫ی‬‫ذ‬: ٗٔ‫بشا‬‫ی‬‫ا‬ ٚ ‫اْ؟‬ ٜ‫وشد‬ ٝ‫چ‬ ْ‫وـٛس‬‫ی‬ٗٞ‫د‬ ٝٔ‫ادا‬ ‫آ٘مذس‬ ‫سا‬ ‫پشػؾ‬‫ی‬‫ذ‬‫ا‬ ٝ‫ب‬ ‫تا‬‫یح‬ٗ‫ؿحاد‬ ‫احؼحاع‬‫ی‬ٚ ‫بخحؾ‬ٞ‫ی‬ٖ‫دحا‬ ٍ٘‫ا‬‫ی‬‫ض‬‫بشػ‬‫ی‬‫ذ‬‫ؿا‬ ٝ‫و‬‫ی‬‫ذ‬‫وٛچى‬ ٟٓ‫ػ‬‫ی‬‫پ‬ ‫دس‬‫ی‬‫ـشفت‬‫اػتال‬ ٚ‫ی‬‫بـش‬‫ی‬‫ت‬‫ا‬ ٝ‫داؿت‬‫ی‬‫ذ‬‫پاداؿح‬ ‫ٞحش‬ ‫أحا‬‫ی‬ٌ‫ص٘حذ‬ ٝ‫وح‬‫ی‬ٝ‫بح‬ ‫تالؿٟا‬‫ی‬ٖ‫تا‬‫بذٞذ‬‫ی‬‫ا‬ٔ‫ٍٞٙا‬ ‫٘ذٞذ‬‫ی‬‫پا‬ ٝ‫ب‬ ٝ‫و‬‫ی‬ٖ‫ا‬‫تالؿٟا‬‫ی‬ٖ‫ٕا‬‫٘ضد‬‫ی‬‫ه‬ٔ‫ی‬‫ؿ‬ٛ‫ی‬ٓ‫با‬ ‫ٔحا‬ ‫اص‬ ْ‫وحذا‬ ‫ٞحش‬‫یح‬‫ذ‬‫سا‬ ٖ‫آ‬ ‫ححك‬ ‫باؿ‬ ٝ‫داؿت‬‫ی‬ٓ‫كذا‬ ‫با‬ ٝ‫و‬‫ی‬ٍٛ‫ب‬ ‫بّٙذ‬‫یی‬ٓ: ْٗٔ‫ا‬ ٜ‫داد‬ ْ‫ا٘دا‬ ْ‫ا‬ ٝ‫داؿت‬ ٖ‫تٛا‬ ‫دس‬ ٝ‫آ٘چ‬ ِٛ‫یی‬‫پاػتٛس‬ ‫ٔبحتال‬ ‫ِطیفحی‬ ‫ٔؼاسف‬ ‫ٚحـی‬ ‫خٟاِت‬ ٝ‫ب‬ ٚ ‫ػاص‬ ْٚ‫ٔاش‬ ‫٘یایذ‬ ْ‫ٔشد‬ ‫واس‬ ٝ‫ب‬ ٝ‫و‬ ‫فضاوّی‬ ٕٝٞ ‫اص‬ ‫ٔشا‬ ‫خذایا‬ ‫ٞای‬ ‫ٔؼشاج‬ ‫اٚج‬ ٚ ‫بّٙذ‬ ‫ٞای‬ ‫احؼاع‬ ٝ‫خزب‬ ‫دس‬ ٝ‫و‬ ٗ‫ٔى‬‫وبحٛد‬ ‫خحط‬ ٚ ‫چـحٕی‬ ‫ػٕك‬ ‫دس‬ ‫سا‬ ‫ٌشػٍٙی‬ ‫بشق‬ ‫ٔاٚساء‬ .‫دیذ‬ ٓ٘‫٘تٛا‬ ‫پـتی‬ ‫بش‬ ‫سا‬ ٝ٘‫تاصیا‬ ٝ‫بح‬ ‫ٞٙحش‬ ‫یا‬ ّٓ‫ػ‬ ‫یا‬ ‫ػبادت‬ ‫پان‬ ‫ػضِت‬ ٚ ‫سیاضت‬ ‫ا٘ضٚای‬ ‫دس‬ ٝ‫و‬ ‫سا‬ ‫بضسٌی‬ ٖ‫پاسػایا‬ ‫خذایا‬"‫٘فحغ‬ ٗ‫وـحت‬"‫وٕحش‬ ‫ٔؼٙاوی‬ ‫ٞا‬ ٗ‫ای‬ ‫خض‬ ‫سا‬ ‫ٔٛخٛدی‬ ‫ٞش‬ ٝ‫و‬ ‫خذا‬ ٛ‫خ‬ ‫طبیؼت‬ ٗ‫ای‬ ‫دس‬ ‫تا‬ ٜ‫د‬ ٖ‫تٛفیمـا‬ ‫صٚدتش‬ ٝ‫چ‬ ‫ٞش‬ ‫ا٘ذ‬ ٝ‫بؼت‬ٚ ‫اػت‬ ‫خحض‬ ‫سا‬ ‫ٔخّحٛلی‬ ‫ٞش‬ ‫خّمت‬ ًٙٞ‫ٕٞا‬ ْ‫٘ظا‬ ٗ‫ای‬ ‫دس‬ ٚ ‫ػِّٛی‬ ‫ٞا‬ ٍُ٘‫ا‬ ٗ‫ای‬ ‫خض‬ ‫ای‬ ٜ‫رس‬ ‫ٞش‬ ٖ‫خٟا‬ ٜ‫ص٘ذ‬ ْ‫ا٘ذا‬ ٗ‫ای‬ ‫دس‬ ٚ ‫٘باؿحذ‬ ً‫تٙح‬ ‫ٔیىٙحذ‬ ‫ص٘ذٌی‬ ‫چشا‬ ‫ٔیذا٘ذ‬ ٝ‫و‬ ‫ای‬ ٜ‫حـش‬ ‫بشای‬ ‫خایی‬ ‫اػت‬ ‫٘مـی‬ ‫پان‬ ٖ‫پٛوا‬ ‫یا‬ ‫پٛن‬ ٖ‫پاوا‬ ٗ‫ای‬ ‫خطا‬ ‫حافظ‬ ‫پیش‬ ٗ‫بی‬ ‫ظاٞش‬ ٓ‫چـ‬ ‫دس‬ ٚ ‫ٌشدد‬ ‫پان‬ ‫ػبث‬ ٚ ‫بیٟٛدٌی‬ ‫اص‬ ‫خّمت‬‫٘یایذ‬ ‫كٙغ‬ ّٓ‫ل‬ ‫بش‬ ‫وی‬ ٜ‫ؿذ‬ ‫بیٕاسی‬ ٚ ٝ‫سفت‬ ‫یاد‬ ‫اص‬ ‫ٚلاحتؾ‬ ٜ‫ؿذ‬ ‫ٌیش‬ ‫وغ‬ ٕٝٞ ٖٛ‫چ‬ ٝ‫و‬ ‫پشػتی‬ ‫ٔلّات‬ ‫پّیذ‬ ٝ‫خأؼ‬ ٗ‫ای‬ ‫اص‬ ‫ٔشا‬ ‫خذایا‬ ‫سا‬ ‫حمیمت‬ ‫ٔلّات‬ ‫سػایت‬ ٝ‫ب‬ ‫تا‬ ‫بذاس‬ ٖٛ‫ٔل‬ ‫ٔیٕٙایذ‬ ‫بیٕاس‬ ‫باؿذ‬ ٜ‫ٔا٘ذ‬ ِٓ‫ػا‬ ٖ‫آ‬ ‫اص‬ ٝ‫و‬ ‫ٞش‬ ‫ػٕٛٔیتؾ‬ ‫فشا‬ ‫اص‬ ٝ‫و‬ ٓٙ‫٘ى‬ ‫ؿشػی‬ ‫ربح‬ ْ‫اػال‬ ٝ‫ب‬ ٓ٘‫ایٕا‬ ٝ‫و‬ ‫ٍٔزاس‬ ‫خذایا‬‫استدحاء‬ ٝ‫ػّٕح‬ ٚ ‫تؼلحب‬ ٝ‫حّٕح‬ ‫با‬ ٗ‫دی‬ ٝ‫وؼب‬ ‫با‬ ‫ٔشا‬ ‫پیأبش‬ ٖ‫خذا٘ذا‬ ٝ‫ب‬ ٓ‫ػـم‬ ٚ ‫ٔمّذ‬ ‫ٔشا‬ ‫ػٛأضدٌی‬ ٝ‫و‬ ،‫ؿٛد‬ ٗ‫دف‬ ٓ‫دیٙی‬ ٝ‫ٚخ‬ ‫پغ‬ ‫دس‬ ٓٙ‫دی‬ ٝ‫ٌشدد.و‬ ْ‫ػٛا‬ ‫پؼٙذ‬ ‫اػیش‬ ْ‫ا‬ ‫آصادی‬ ٝ‫وٙذ.و‬ ‫ٕٞأٚاص‬ .ٓٙ‫٘ى‬ ٖ‫وتٕا‬ ‫ٔیذا٘ٙذ‬ ‫بذ‬ ٝ‫آ٘ى‬ ‫بخاطش‬ ٓ٘‫ٔیذا‬ ‫حك‬ ‫سا‬ ٝ‫آ٘چ‬ ٝ‫و‬ ‫ػاصد‬ ٓ٘‫وٙٙذٌا‬ ‫تمّیذ‬ ‫و‬ ‫سحٕتی‬ ‫خذایا‬ٗ‫ت‬‫تا‬ ٓٙ‫افى‬ ٓ٘‫ایٕا‬ ‫خطش‬ ‫دس‬ ‫سا‬ ٓٔ‫٘ا‬ ‫حتی‬ ٚ ‫سا‬ ٓ٘‫٘ا‬ ‫تا‬ ‫بخؾ‬ ٓ‫لٛت‬ ،‫٘یاٚسد‬ ٓ‫بشای‬ ٖ‫٘ا‬ ٚ ْ‫٘ا‬ ،ٖ‫ایٕا‬ ‫ا‬ ‫وحاس‬ ‫د٘یحا‬ ‫بحشای‬ ٚ ‫ٔیٍیش٘حذ‬ ٗ‫دی‬ َٛ‫پ‬ ٝ‫و‬ ‫آٟ٘ا‬ ٝ٘ ،‫ٔیىٙٙذ‬ ‫واس‬ ٗ‫دی‬ ‫بشای‬ ٚ ‫ٔیٍیش٘ذ‬ ‫سا‬ ‫د٘یا‬ َٛ‫پ‬ ٝ‫و‬ ٓ‫باؿ‬ ‫آٟ٘ا‬ ‫اص‬ .‫ٔیىٙٙذ‬ ٝ‫ِاظ‬ ‫ثٕشی‬ ‫بی‬ ‫بش‬ ‫ٔشي‬ ٝ‫ِاظ‬ ‫دس‬ ٝ‫و‬ ٗ‫و‬ ‫ػطا‬ ‫صیؼتٙی‬ ٗٔ ٝ‫ب‬ ‫خذایا‬‫حؼحشت‬ ‫اػت‬ ٝ‫ٌزؿت‬ ٗ‫صیؼت‬ ‫بشای‬ ٝ‫و‬ ‫ای‬ .ٓ‫٘باؿ‬ ‫ػٌٛٛاس‬ ‫بیٟٛدٌیؾ‬ ‫بش‬ ٝ‫و‬ ٗ‫و‬ ‫ػطا‬ ‫ٔشد٘ی‬ ٚ ْ‫٘خٛس‬ ‫ؿشیؼتی‬ ‫ػّی‬ ‫دوتش‬