Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.


CÙNG HỌC TẬP VÀ CHIA SẺ
 
Trang ChínhNỘI QUYLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051

Go down 
3 posters
Tác giảThông điệp
Sunset_Pro
Thành viên chính thức
Thành viên chính thức



Tổng số bài gửi : 55
Điểm : 97
Danh tiếng : 11
Ngày tham gia : 25/12/2010
Đến từ : UNETI

GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty
Bài gửiTiêu đề: GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051   GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 EmptySat Jan 08, 2011 4:28 pm

I/ SƠ ÐỒ KHỐI -CÁC CHÂN CHỨC NĂNG BỘ TRUYỀN SONG SONG DỮ LIỆU 8 BIT CỦA 8051 VỚI 8255 ; KỸ THUẬT TRUYỀN SONG SONG 8 BIT VÀ QUÉT MATTRIX 24 CỘT DÙNG NGẮT NGOÀI
[You must be registered and logged in to see this image.]
- 8255A-5 là vi mạch giao tiếp song song rất thông dụng trong toàn các hệ thống .Vi mạch này có 24 chân cho thiết bị I/O có thể lập trình hoạt động trong 3 mode khác nhau .8255A-5 có thể nối ghép bất kỳ thiết bị vào ra kiểu TTL và tương thích với 8088 .8255A-5 thường được sử dụng để ghép nối với bàn phím và cổng máy in song song trong các máy PC . Ba cổng vào ra của nó được lập trình thành các nhóm 12 chân .Nhóm A bao gồm cổng A ( PA7 - PA0 ) và nửa cao của cổng C (PC7 - PC4 ) , nhóm B bao gồm cổng B (PB7 - PB0 ) và nửa thấp của cổng C ( PC3 - PC0 ). 8255A-5 được chọn bằng chân CS của nó để lập trình và phục vụ việc ghi đọc ra cổng I/O . Hai chân chọn thanh ghi nội để lập trình hoặc hoạt động .Trong máy PC 8255A-5 được giải mã tại địa chỉ 60h-63h . Ðể 8255A-5 có thể đọc ghi thì chân CS phải ở mức logic 0 và địa chỉ I/O phải được nối với chân A1 và A0 ,không cần quan tâm đến các chân địa chỉ cổng còn lại và được giải mã bên ngoài để chọn 8255A-5

- CÁC BẠN LOAD TÀI LIỆU TẠI ĐÂY:
[You must be registered and logged in to see this link.]
- ĐÂY LÀ MẠCH MÔ PHỎNG:
[You must be registered and logged in to see this link.]
- CHƯƠNG TRÌNH:
* bonhanslave8051-M01A.asm
quet equ 2fh
moadd EQU 0
dataadd equ 30h
framebytemodul EQU 48
conhandulieu equ r7

org 0
jmp setup
org 03h
jmp exint0
org 13h
jmp exint1
;------------------------------------------------------------------------
; ngat ngoai 00 , dung truyen du lieu
exint0:
jb p3.1,skip01
mov dptr,#0
skip01:
push acc
mov a,dph
cjne a,#high(moadd),skip02
mov a,dpl
cjne a,#low(moadd),skip02
mov conhandulieu,#1
skip02:
mov a,dph
cjne a,#high(moadd+framebytemodul),skip03
mov a,dpl
cjne a,#low(moadd+framebytemodul),skip03
mov conhandulieu,#0
mov r0,#dataadd
skip03:
mov a,conhandulieu
jz skip04
mov @r0,p1
inc r0
skip04:
inc dptr
exitdata:
pop acc
reti
;------------------------------------------------------------------------
; ngat ngoai 01 dung quet cot
exint1:
push acc
mov p0,#0ffh
mov p2,#0ffh

jb p3.4,skipA
mov quet,#0

skipA:
mov a,quet
clr c
rlc a
add a,#dataadd
mov r4,a
mov r1,a
mov a,@r1
mov r2,a
mov a,r4
inc a

mov r1,a
mov a,@r1
mov r3,a

mov p0,r2
mov p2,r3

inc quet
pop acc
reti ; ngat ngoai hien thi cot quet
;------------------------------------------------------------------------

setup:


mov DPTR,#0
mov R0,#dataadd

mov IE,#10000101b
setb it0
setb it1
mov r7,#0



bandau:
JMP bandau





end
*bonhanslave8051-M01B.asm
quet equ 2fh
moadd EQU 48
dataadd equ 30h
framebytemodul EQU 48
conhandulieu equ r7

org 0
jmp setup
org 03h
jmp exint0
org 13h
jmp exint1
;------------------------------------------------------------------------
; ngat ngoai 00 , dung truyen du lieu
exint0:
jb p3.1,skip01
mov dptr,#0
skip01:
push acc
mov a,dph
cjne a,#high(moadd),skip02
mov a,dpl
cjne a,#low(moadd),skip02
mov conhandulieu,#1
skip02:
mov a,dph
cjne a,#high(moadd+framebytemodul),skip03
mov a,dpl
cjne a,#low(moadd+framebytemodul),skip03
mov conhandulieu,#0
mov r0,#dataadd
skip03:
mov a,conhandulieu
jz skip04
mov @r0,p1
inc r0
skip04:
inc dptr
exitdata:
pop acc
reti
;------------------------------------------------------------------------
; ngat ngoai 01 dung quet cot
exint1:
push acc
mov p0,#0ffh
mov p2,#0ffh

jb p3.4,skipA
mov quet,#0

skipA:
mov a,quet
clr c
rlc a
add a,#dataadd
mov r4,a
mov r1,a
mov a,@r1
mov r2,a
mov a,r4
inc a

mov r1,a
mov a,@r1
mov r3,a

mov p0,r2
mov p2,r3

inc quet
pop acc
reti ; ngat ngoai hien thi cot quet
;------------------------------------------------------------------------

setup:


mov DPTR,#0
mov R0,#dataadd

mov IE,#10000101b
setb it0
setb it1
mov r7,#0



bandau:
JMP bandau





end
*boquetcot.asm
scanning equ p3.5
DONGBOQUET equ p3.7
QUET equ p3.6
org 0
jmp setup



quet16cot:

demcotquet equ 070h ;o nho chua gia tri dem cot quet


push acc
setb DONGBOQUET
mov a,demcotquet
jnz skip01
clr DONGBOQUET
skip01:
setb scanning
mov r7,#40
wait: djnz r7,$ ; cho cho cac modul lay het du lieu.
clr QUET
nop
nop
setb QUET

mov b,#3
mul ab
mov r1,a
mov dptr,#chuoiquet
movc a,@a+dptr
mov r0,a

mov a,r1
inc dptr
movc a,@a+dptr
mov r2,a

mov a,r1
inc dptr
movc a,@a+dptr
mov r3,a

mov a,r0
mov p0,a
mov a,r2
mov p2,a
mov a,r3
mov p1,a

inc demcotquet
mov a,demcotquet
cjne a,#24,skip02
mov demcotquet,#0
skip02:

pop acc
clr scanning
ret

setup:



clr a
mov demcotquet,a
setb QUET
setb DONGBOQUET

bandau:
call quet16cot
call delay_24prs
jmp bandau

delay_24prs:
mov r4,#1
d3_: mov r5,#2
d2_: mov r6,#200
d1_: djnz r6,$
djnz r5,d2_
djnz r4,d3_
ret
begadd:

chuoiquet:
quethang01:
db 00000001b
db 00000000b
db 00000000b
quethang02:
db 00000010b
db 00000000b
db 00000000b
quethang03:
db 00000100b
db 00000000b
db 00000000b
quethang04:
db 00001000b
db 00000000b
db 00000000b
quethang05:
db 00010000b
db 00000000b
db 00000000b
quethang06:
db 00100000b
db 00000000b
db 00000000b
quethang07:
db 01000000b
db 00000000b
db 00000000b
quethang08:
db 10000000b
db 00000000b
db 00000000b
quethang09:
db 00000000b
db 00000001b
db 00000000b
quethang10:
db 00000000b
db 00000010b
db 00000000b
quethang11:
db 00000000b
db 00000100b
db 00000000b
quethang12:
db 00000000b
db 00001000b
db 00000000b
quethang13:
db 00000000b
db 00010000b
db 00000000b
quethang14:
db 00000000b
db 00100000b
db 00000000b
quethang15:
db 00000000b
db 01000000b
db 00000000b
quethang16:
db 00000000b
db 10000000b
db 00000000b
quethang17:
db 00000000b
db 00000000b
db 00000001b
quethang18:
db 00000000b
db 00000000b
db 00000010b
quethang19:
db 00000000b
db 00000000b
db 00000100b
quethang20:
db 00000000b
db 00000000b
db 00001000b
quethang21:
db 00000000b
db 00000000b
db 00010000b
quethang22:
db 00000000b
db 00000000b
db 00100000b
quethang23:
db 00000000b
db 00000000b
db 01000000b
quethang24:
db 00000000b
db 00000000b
db 10000000b

end


*botruyenmaster.asm
scanning equ p3.4
CTRLDATA equ p3.2
RESETFRAME equ p3.1

org 0
jmp setup

framebytenum equ 97 ;(=(TONGSOMODUL*SOBYTEMOIMODUL)+1;VD: (2 MODUL * 48)+1)

setup:

cham1 equ 1
cham2 equ 120
cham3 equ 255

hsobytetruyen equ r7
lsobytetruyen equ r6

mov dptr,#begadd
clr a
movc a,@a+dptr
cpl a
mov r1,a
mov hsobytetruyen,#0
mov lsobytetruyen,#0
setb CTRLDATA

bandau:
jb scanning,$ ; cho sau khi quet cot xong moi truyen du lieu

setb RESETFRAME ; reset frame truyen sau khi gui xong 1 framebyte truyen
cjne hsobytetruyen,#0,skip01
cjne lsobytetruyen,#0,skip01
clr RESETFRAME

skip01: mov p1,r1 ; gui 1 byte truyen qua port 01
clr CTRLDATA
nop
nop
setb CTRLDATA

mov a,#1 ; tang so byte truyen len 1 byte
add a,lsobytetruyen
mov lsobytetruyen,a
mov a,#0
addc a,hsobytetruyen
mov hsobytetruyen,a ; tang so byte truyen len 1 byte

cjne hsobytetruyen,#high(framebytenum),skip02
cjne lsobytetruyen,#low(framebytenum),skip02

mov r4,#cham1 ; lam cham toc do truyen sau khi gui het 1 framebyte truyen
d3_: mov r3,#cham2
d2_: mov r2,#cham3
d1_: djnz r2,$
djnz r3,d2_
djnz r4,d3_


mov hsobytetruyen,#0
mov lsobytetruyen,#0

inc dptr
inc dptr


mov a,dph
cjne a,#high(finadd),skip02
mov a,dpl
cjne a,#low(finadd),skip02
mov dptr,#begadd

skip02:

mov a,dpl ; tinh so byte truyen voi dptr
push acc
add a,lsobytetruyen
mov dpl,a
mov a,dph
push acc
addc a,hsobytetruyen
mov dph,a
clr a
movc a,@a+dptr
cpl a
mov r1,a
pop acc
mov dph,a
pop acc
mov dpl,a

skip04:

jmp bandau

begadd:
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,0,0,0,0,0,0,0

===HIỂN THỊ DÒNG " QUẢNG CÁO "========================
db 192,248,224,252,32,4,32,20,32,12,224,254,192,249,0,1
db 224,248,224,252,0,4,0,4,0,4,224,252,224,248,0,0
db 128,252,192,252,32,64,41,64,39,64,195,252,128,252,0,0
db 224,252,224,252,128,128,0,192,0,96,224,252,224,252,0 ,0
db 192,248,224,252,32,4,32,4,32,68,96,124,64,120,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 192,248,224,252,32,4,32,4,32,4,96,12,64,8,0,0
db 128,252,192,252,34,64,35,64,35,64,193,252,128,252,0,0
db 192,248,224,252,32,4,32,4,32,4,224,252,192,248,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

finadd:
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,0,0,0,0,0,0,0



end


Được sửa bởi sunset_sunset ngày Sat Jan 08, 2011 4:34 pm; sửa lần 3.
Về Đầu Trang Go down
Sunset_Pro
Thành viên chính thức
Thành viên chính thức



Tổng số bài gửi : 55
Điểm : 97
Danh tiếng : 11
Ngày tham gia : 25/12/2010
Đến từ : UNETI

GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty
Bài gửiTiêu đề: Re: GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051   GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 EmptySat Jan 08, 2011 4:29 pm

CÁC BẠN ĐỌC THAM KHẢO.CẢM ƠN !
Về Đầu Trang Go down
trungkienksnb.tk
Thành viên tích cực
Thành viên tích cực
trungkienksnb.tk


Tổng số bài gửi : 115
Điểm : 195
Danh tiếng : 15
Ngày tham gia : 06/12/2010
Tuổi : 36
Đến từ : Ninh Bình

GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty
Bài gửiTiêu đề: Re: GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051   GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 EmptySat Jan 08, 2011 4:39 pm

Thank!
Về Đầu Trang Go down
http://trungkienksnb.tk
star_honxu
Thành viên mới
Thành viên mới



Tổng số bài gửi : 9
Điểm : 9
Danh tiếng : 0
Ngày tham gia : 08/01/2011

GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty
Bài gửiTiêu đề: anh   GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 EmptySun Jan 09, 2011 10:35 pm

ban co the tham khao chuong trinh truyen i2c hien thi lcd 16.2
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.8d Professional
Automatic Program Generator
© Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
[You must be registered and logged in to see this link.]

Project :
Version :
Date : 8/15/2010
Author :
Company : dien_tdhk1a
Comments:


Chip type : ATmega16
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/

#include
#include

// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTD
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include

// DS1307 Real Time Clock functions
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include

// Declare your global variables here
unsigned char h,m,s;
unsigned char day,month,year;
void lcd_putnum(unsigned char x)
{
unsigned tram,chuc,donvi;
tram=x/100;
chuc=(x-tram*100)/10;
donvi=(x-tram*100-chuc*10);
lcd_putchar(tram+48);
lcd_putchar(chuc+48);
lcd_putchar(donvi+48);

}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// I2C Bus initialization
i2c_init();

// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: On
// Square wave frequency: 1Hz
rtc_init(0,1,0);

// LCD module initialization
lcd_init(16);
rtc_set_time(10,10,10);
rtc_set_date(15,8,2010);

while (1)
{
// Place your code here
rtc_get_time(&h,&m,&s);
rtc_get_time(&day,&month,&year);
//hien thi lcd
lcd_clear();
delay_ms(10);
lcd_gotoxy(0,0);
lcd_putsf("TIME:");
lcd_putnum(h);
lcd_putsf("-");
lcd_putnum(m);
lcd_putsf("-");
lcd_putnum(s);
lcd_gotoxy(0,1);
lcd_putsf("DATE:");
lcd_putnum(day);
lcd_putsf("-");
lcd_putnum(month);
lcd_putsf("-");
lcd_putnum(year);
delay_ms(500);
};
}

[You must be registered and logged in to see this image.]
Về Đầu Trang Go down
Sponsored content





GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty
Bài gửiTiêu đề: Re: GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051   GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051 Empty

Về Đầu Trang Go down
 
GIAO TIẾP TRUYỀN NHẬN SONG SONG 8 BIT VỚI 8051
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» HỌ VI ĐIỀU KHIỂN 8051
» Lập trình C cho vi điều khiển cho 8051
» mạch nap vdk 8051
» kết nối 8051 với phím đơn
» kết nối 8051 với ma trận phím 8x8

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ ,TRUYỀN THÔNG :: VI XỬ LÝ- VI ĐIỀU KHIỂN :: Phần mềm và trao đổi kiến thức môn-
Chuyển đến