الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كتبت برنامج لبرمجة Uart في 8051 ولكن !

مغلق
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قمت بكتابة برنامج يقوم بعملية قراءة الحروف من الكيبورد ومن ثم يظهرها الى UART ولكن المشكلة هو كيف اقوم من خلال UART بكتابة مثلا اي كلمة وتظيء اللوحة الخاصة بألـ LED disiplay

وهنا في اعتقادي لابد ان نفعل ذللك من buffer وقد حاولت كثيرا ولكن لا فائدة.

وهذا هو البرنامج

CLR SM0
	SETB SM1;clear SM0 and set SM1 to put the serial port in mode 1
	MOV TMOD, #20H;put timer 1 in mode 2 interval timing
	MOV TH1, #253;put the reload value in TH1 - this results in a baud rate of 9600
	SETB TR1;start timer 1
	MOV 40H, #'a'
	MOV 41H, #'b'
	MOV 42H, #'c';store the text in memory starting at address 40H
	MOV 43H, #0;terminate the text with 0
	MOV R0, #40H;put the start address in R0
	CALL sendText


	  The main program is show above, which calls the subrotine as detailed below.



sendText:

	MOV A, @R0;move data pointed to by R0 into A
	JZ finish;if contents of A are equal to 0 jump to finish

loop:

	MOV SBUF, A;move contents of A to the serial buffer - this initiates the transmission down the serial line
	INC R0;increment R0 to point to next character
	JNB TI, $;wait for entire character (ie; the current character that was sent to SBUF) to be sent down serial line
	CLR TI;clear the transmit overflow
	JMP loop;go back to send next character

finish:

	RET
#2

اليك اخي الكريم هذا البرنامج للاستقبال والارسال من ال 8051 الاستقبال يتم علي seven segment اما الارسال يتم علي برنامج ال hyper terminal وتقدر طبعا تغير فيه زي مانت عايز وتحط ال lcd بتاعتك مكان ال 7 segment :

 ORG	0
 JMP	START

 ORG	23H
 JBC	TI,NOTHING
 MOV	A,SBUF
 MOV	SBUF,A
 ANL	A,#0FH
 MOVC	A,@A+DPTR
 MOV	P1,A
 CLR	RI

 NOTHING:
 RETI

 START:
 MOV	SCON,#50H
 MOV	TMOD,#20H
 MOV	TH1,#243
 MOV	TL1,#243
 MOV	IE,#90H
 SETB	TR1
 MOV	DPTR,#TABLE
 JMP	$

 TABLE:
 DB		00111111B;0
 DB		00000110B;1
 DB		01011011B;2
 DB		01001111B;3
 DB		01100110B;4
 DB		01101101B;5
 DB		01111101B;6
 DB		00000111B;7
 DB		01111111B;8
 DB		01101111B;9



 END
#3

جزاك الله خيرا اخي الكريم

وفقك الله ... وفعلا هي نفس الفكره التي كنت اريدها

وكتب الله لك الاجر والثواب

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…