Upload
jihan-ba
View
221
Download
1
Embed Size (px)
DESCRIPTION
LCD experience
Citation preview
1
كلیة الھندسة الكھربائیة واإللكترونیة مخبر اآلالت الحاسبة
سنة رابعة حاسبات–مادة معالجات متطورة جیھان محمد بركات عبدو:اعداد المھندسة
الخامسةالجلسة
الغاية من التجربة
LCDوحدة اإلظهار التعرف على -
.تعلم كيفية وصل الشرائح الطرفية إىل ممر املعاجل -
LCDصفات مزايا وموا
. حمرف 16 من سطرين حيوي كل منهما LCDتتألف وحدة -
.تستطيع الشاشة إظهار حمارف فقط حسب الفونت املخزن بداخلها -
. بت 4 بت أو 8ميكن ربط الشاشة مع ممر -
.يتم التحكم باإلظهار على الشاشة بواسطة جمموعة من األوامر اخلاصة -
ابة إىل هذه الذاكرة تظهر املعلومات املكتوبة مباشرة على حتوي وحدة الشاشة ذاكرة إظهار ، عند الكت -
.DDRAMالشاشة تدعى هذه الذاكرة
.CGRAMختزن هذه الرموز يف ذاكرة ) رمز16حىت (ميكن إنشاء رموز جديدة إلظهارها على الشاشة -
LCDأقطاب
.اجلدول التايل يبني توزع األقطاب ووظائفها
2
. بت العليا فقط 4ها كلها أو أقطاب معطيات ميكن استخدام8 -
. خمصص من أجل حتديد تباين الشاشة ويوصل عادة مع مقاومة متغرية VL . 3أقطاب تغذية عدد -
. 3أقطاب حتكم عدد -
LCDاألوامر الخاصة بـ
3
مع المعالج LCDاتصال
مع املعاجلLCDيبني الشكل التايل طريقة وصل
بت8تتصل مع ممر املعاجل بطول -
. تقوم بعمل مشفر العناوينPLD عبارة عن شرحية 22V10لشرحية ا -
- A1 و A2 متصلة مع RSو R/W وهذا يؤدي لوجود عناوين مستقلة للكتابة والقراءة واألوامر واحلالة
حسب اجلدول التايل
A1 العنوان
R/W
A2
RS
الوظيفة
كتابة أمر 0 0 00
قراءة الحالة 0 1 02
كتابة معطيات 1 0 04
حظ أن حالة قراءة املعطيات غري مستخدمةال
.)عناوين زوجية (0 يساوي A0 يتم تفعيله يف حاليت القراءة والكتابة وفقط عندما يكون Eالقطب -
4
: التمارين
:LCDالربنامج محل -1
;*****************************************
; *MDE-8086 EXPERIMENT PROGRAM*
; *Chapter 10-4 (Example 1* (
; *PROGRAM BY MiDAS ENGINEERING*
;*****************************************
;
; FILENAME : LCD.ASM
; PROCESSOR : I8086
; VER. : V1.1
;
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
;
STACK EQU 0540H
;
LCDC EQU 00H
LCDC_S EQU 02H
LCDD EQU 04H
;
ORG 1000H
;
XOR AX,AX
MOV SS,AX
MOV SP,STACK
;
CALL ALLCLR
;
MOV SI,OFFSET CUSOR1
CALL STRING
;
5
CALL LN21
MOV SI,OFFSET CUSOR2
CALL STRING
;
L1: CALL DISPOFF
CALL TIMER
CALL DISPON
CALL TIMER
JMP L1
;
CUSOR1 DB 'Serial monitor !',00H,00H
CUSOR2 DB 'Midas 335-0964/5',00H,00H
;
;LCD instruction
ALLCLR: MOV AH,01H
JMP LNXX
;
DISPOFF:
MOV AH,08H
JMP LNXX
;
DISPON: MOV AH,0FH
JMP LNXX
;
LN11: MOV AH,02H
JMP LNXX
;
LN21: MOV AH,0C0H
;
LNXX: CALL BUSY
MOV AL,AH
OUT LCDC,AL
RET
6
;busy flag check
BUSY: IN AL,LCDC_S
AND AL,10000000B
JNZ BUSY
RET
;
;1 char. LCD OUT
;AH = out data
CHAROUT:
CALL BUSY
;
MOV AL,AH
OUT LCDD,AL
RET
;
STRING: MOV AH,BYTE PTR CS:[SI[
CMP AH,00H
JE STRING1
;out
CALL BUSY
CALL CHAROUT
INC SI
JMP STRING
STRING1:
RET
;
TIMER: MOV CX,2
TIMER2: PUSH CX
MOV CX,0
TIMER1: NOP
NOP
NOP
NOP
7
LOOP TIMER1
POP CX
LOOP TIMER2
RET
;
CODE ENDS
END
.ماذا يفعل الربنامج -
كيف متت �يئة املكدس -
عدل النص الظاهر على الشاشة -
:LCD_1محل الربنامج -2
;*****************************************
;* MDE-8086 EXPERIMENT PROGRAM *
;* Chapter 10-4 (Example 2) *
;* PROGRAM BY MiDAS ENGINEERING *
;*****************************************
;
; FILENAME : LCD_1.ASM
; PROCESSOR : I8086
; VER. : V1.1
;
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
;
STACK EQU 0540H
;
LCDC EQU 00H
LCDC_S EQU 02H
LCDD EQU 04H
;
ORG 1000H
;
8
XOR AX,AX
MOV SS,AX
MOV SP,STACK
;
L2: CALL ALLCLR
;
MOV SI,OFFSET CUSOR1
CALL STRING
;
CALL LN21
MOV SI,OFFSET CUSOR2
CALL STRING
;
MOV DL,16
L1: CALL TIMER
CALL SHIFT
CALL TIMER
DEC DL
JNZ L1
JMP L2
;
CUSOR1 DB 'Serial monitor !',00H
CUSOR2 DB 'Very very Good !',00H
;
; LCD instruction
ALLCLR: MOV AH,01H
JMP LNXX
;
SHIFT: MOV AH,00011100B
JMP LNXX
;
LN21: MOV AH,0C0H
;
9
LNXX: CALL BUSY
MOV AL,AH
OUT LCDC,AL
RET
; busy flag check
BUSY: IN AL,LCDC_S
AND AL,10000000B
JNZ BUSY
RET
;
; 1 char. LCD OUT
; AH = out data
CHAROUT:
CALL BUSY
;
MOV AL,AH
OUT LCDD,AL
RET
;
STRING: MOV AH,BYTE PTR CS:[SI]
CMP AH,00H
JE STRING1
; out
CALL BUSY
CALL CHAROUT
INC SI
JMP STRING
STRING1:
RET
;
TIMER: MOV CX,2
TIMER2: PUSH CX
MOV CX,0
10
TIMER1: NOP
NOP
NOP
NOP
LOOP TIMER1
POP CX
LOOP TIMER2
RET
;
CODE ENDS
END
.ماذا يفعل الربنامج -
كيف متت عملية اإلزاحة ؟ -
.هل ميكنك عكس االجتاه -
LCD_2محل الربنامج -3
;*****************************************
; *MDE-8086 EXPERIMENT PROGRAM*
; *Chapter 10-4 (Example 3* (
; *PROGRAM BY MiDAS ENGINEERING*
;*****************************************
;
; FILENAME : LCD_2.ASM
; PROCESSOR : I8086
; VER. : V1.1
;
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE
;
;
STACK EQU 0540H
;
LCDC EQU 00H
LCDC_S EQU 02H
11
LCDD EQU 04H
;
ORG 1000H
;
XOR AX,AX
MOV SS,AX
MOV SP,STACK
;
CALL ALLCLR
;
CALL ENTMODE
L1: CALL CUSOR1
MOV SI,OFFSET DATA
CALL STRING
JMP L1
;
DATA DB '8086 Training Kit Good !',00H
;
;LCD instruction
ALLCLR: MOV AH,01H
JMP LNXX
;
ENTMODE:
MOV AH,00000111B
JMP LNXX
;
CUSOR1: MOV AH,90H
;
LNXX: CALL BUSY
MOV AL,AH
OUT LCDC,AL
RET
;busy flag check
12
BUSY: IN AL,LCDC_S
AND AL,10000000B
JNZ BUSY
RET
;
;1 char. LCD OUT
;AH = out data
CHAROUT:
CALL BUSY
;
MOV AL,AH
OUT LCDD,AL
RET
;
STRING: MOV AH,BYTE PTR CS:[SI[
CMP AH,00H
JE STRING1
;out
CALL BUSY
CALL CHAROUT
INC SI
CALL TIMER
JMP STRING
STRING1:
RET
;
TIMER: MOV CX,1
TIMER2: PUSH CX
MOV CX,0
TIMER1: NOP
NOP
NOP
NOP