Giao tiếp máy tính với vi xử lý 8085 - pdf 18

Download miễn phí Luận văn Giao tiếp máy tính với vi xử lý 8085



Sau khi cắt file, một file mới đã được tạo ra. Chương trình truyền file đến bước xuất file. Dĩ nhiên trước khi xuất file cũng cần có những thủ tục mở file, đặt các mức logic cần thiết để khởi động cổng: mở file hợp lệ, cho bit AF=0, strobe=0.
Giải thích lưu đồ chương trình xuất file:
- Trước tiên, máy tính xuất strobe=0, AF=0 bằng chách xuất ra port 37Ahex số 03hex (xem lại thanh ghi điều khiển ở mục IV chương IV);
- Chương trình xuất bắt đầu tại begin.
- Đọc Busy\ cho tới khi bằng [1]: đợi kit phát ra Busy=[0] báo hiệu đã sẳn sàng nhận dữ liệu.
- Nếu nhận được Busy\=[1] thì bước xuất dữ liệu được thực hiện, tức là lúc đó máy tính đọc 2 ký tự đầu tiên của file .tmp và xuất ra port 378 của máy tính.
- Strobe=[1]: để báo cho kit biết dữ liệu đã được gửi ra port để kit biết mà đọc dữ liệu vào.
- ACK=[1] và Error=[0]: khi nhậndl xong kit sẽ báo ACK=[1], Error=0 để báo cho máy tính biết Kit sẽ gửi dữ liệu để kiểm tra đúng hay sai.
- AF=[1]: báo cho Kit biết máy tính sẳn sàng nhận dữ liệu.
- Máy tính đọc bit Error cho tới khi Error = [0] để biết Kit đã gửi về dữ liệu để kiểm tra.
- Thu Nible cao: Nhận dữ liệu để kiểm tra.
- Cho AF=[0]: đã nhận xong dữ liệu.
- Đọc Error cho tới khi Error=[1] để biết đã có dữ liệu mới.
- Thu nible thấp.
- Kiểm tra dữ liệu: máy tính sẽ phải ghép nối nible cao với nible thấp lại rồi so sánh với dữ liệu vừa xuất ra, nếu 2 dữ liệu giống nhau thì kết quả xuất dữ liệu sẽ là đúng. Máy tính sẽ xuất ra số FFhex ở thanh ghi data để báo đúng, và xuất AF=0 & strobe=0 để báo xuất xong 1 byte dữ liệu. Ngược lại thì xuất 00hex ra thanh ghi data và xuất AF=0, strobe =0 để báo kết quả sai.
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

t file
Thành công
Thông báo hoàn
tất công việc
Return.
Thông báo lỗi công việc
Sai
Hình 15: Lưu đồ chương trình con có nhiệm vụ truyền file.
Trong phần này, ta quay lại công việc cắt file đã giới thiệu ở mục III của chương V.
Chương trình con cắt file là để tạo ra một file tạm thời có phần mở rộng .tmp. file này sẽ là một file có cấu trúc đơn giản hơn file .prn rất nhiều nhằm để giúp cho việc truyền file thêm đơn giản.
Trước hết hãy khảo sát một file *.prn, file này được dịch ra bởi 1 chương trình dịch Assembler.
Trong chương trình, byte lệnh đều tiên bắt đầu ở địa chỉ 0000hex. Nhận xét rằng mỗi dòng lệnh bắt đầu bở một địa chỉ bộ nhớ, và liền sau địa chỉ này là một dấu nháy đơn, mà dấu nháy đơn đầu tiên chỉ xuất hiện tại địa chỉ của dòng lệnh đầu tiên.
Þ để tìm địa chỉ đầu tiên thì có thể tìm dấu nháy đơn đầu tiên.
Còn địa chỉ cuối cùng là địa chỉ của byte cuối cùng của dòng lệnh cuối cùng. Dòng lệnh cuối cùng là dòng lệnh nằm gần từ “Macros” nhất. Từ macros này cũng là từ macros duy nhất.
Þ cách tìm địa chỉ cuối cùng như sau:
Tìm từ Macros
Dò ngược trở về phíc trên cho đến khi gặp dấu nháy đơn đầu tiên
Tiếp tục dò ngược về trước, nếu trong vòng 10 ký tự mà gặp môt ký tự xuống dòng thì thì dấu nháy đơn vừa rồi nằm ngay sau dòng lệnh cuối cùng.
Trong dòng lệnh cuối cùng, tìm byte cuối cùng sẽ tính được địa chỉ cuối cùng.
Cách tìm một dòng lệnh:
Khi gặp một dấu nháy đơn, thì tìm một ký tự khác dấu nháy đơn hay khoảng trắng.
Khi gặp ký tự đầu tiên, đó chính là ký tự đầu tiên của byte lệnh.
Nếu sau 2 ký tự của lệnh là một khoảng trắng thì 2 ký tự vừa rồi chính là một mã lệnh.
Nếu sau 2 lý tự của môt byte lệnh không có khoảng trắng nào, thì 2 ký tự vừa rồi chính là 2 của 4 ký tự báo một địa chỉ.
Nếu sau 2 ký tự tính từ lúc bắt đầu một lệnh là 2 khoảng trắng trở lên thì 2 byte vừa rồi là 2 byte cuối cùng của một dòng lệnh.
Bắt đầu một chu kỳ mới tìm dòng mã lệnh.
Lưu mã lệnh vào file *.tmp:
Đầu tiền lưu địa chỉ đầu, địa chỉ cuối vào file.
Nếu gặp mã lệnh (2 ký tự) thì ghi tiếp vào file.
Nếu gặp mã địa chỉ thì đổi chổ 2 ký tự sau với 2 ký tự trước của địa chỉ.
Đến khi gặp địa chỉ cuối cùng thì ghi vào 2 ký tự cuối cùng và đóng file.
MACRO-80 3.4 01-Dec-80 PAGE 1
Org 0000h
0000' 3E 00 MVI A,00h
0002' 32 A001 STA 0A001h
0005' 3E 80 MVI A,80h
0007' 32 A001 STA 0A001h
000A' 3E 06 MVI A,06h
000C' 32 A000 STA 0A000h
000F' 76 HLT
MACRO-80 3.4 01-Dec-80 PAGE S
Macros:
Symbols:
No Fatal error(s)
Công việc trên được mô tả bằng lưu đồ sau:
Đ
S
S
S
Nhận địa chỉ đầu
Begin
Nhận địa chỉ cuối
Mở file nguồn
Mở file đích
Tìm dấu “ ‘”
Đọc 2 ký tự lệnh
Xét ký tự tiếp theo
Không là
khoảng trắng
Là một
khoảng trắng
³ 2
khoảng trắng
Lưu 2 ký tự
Lưu 2 ký tự sau
Đọc 2 ký tự tiếp theo
> địa chỉ cuối
Đ
S
End
Đ
Đ
Hình 16: Lưu đồ chương trình con Cắt file
Busy=1
Xuất dliệu ra bus
Strobe=1
ACK=1 & Error=0
AF=1
Đọc Error=0
sai
Thu nible cao
AF=0
Error=1
sai
Thu nible thấp
Ktra dữ liệu
sai
Đúng
Xuất FF ra data bus
AF=0 Strobe=0
Hết dữ liệu
Chuẩn bị dữ liệu kế tiếp
sai
Sai
Return
Đúng
Đúng
Sai
Đúng
Đúng
Begin
Xuất 00 ra data bus
AF=0 Strobe=0
Hình 17: Lưu đồ chương trình con xuất dữ liệu.
Sau khi cắt file, một file mới đã được tạo ra. Chương trình truyền file đến bước xuất file. Dĩ nhiên trước khi xuất file cũng cần có những thủ tục mở file, đặt các mức logic cần thiết để khởi động cổng: mở file hợp lệ, cho bit AF=0, strobe=0.
Giải thích lưu đồ chương trình xuất file:
Trước tiên, máy tính xuất strobe=0, AF=0 bằng chách xuất ra port 37Ahex số 03hex (xem lại thanh ghi điều khiển ở mục IV chương IV);
Chương trình xuất bắt đầu tại begin.
Đọc Busy\ cho tới khi bằng [1]: đợi kit phát ra Busy=[0] báo hiệu đã sẳn sàng nhận dữ liệu.
Nếu nhận được Busy\=[1] thì bước xuất dữ liệu được thực hiện, tức là lúc đó máy tính đọc 2 ký tự đầu tiên của file .tmp và xuất ra port 378 của máy tính.
Strobe=[1]: để báo cho kit biết dữ liệu đã được gửi ra port để kit biết mà đọc dữ liệu vào.
ACK=[1] và Error=[0]: khi nhậndl xong kit sẽ báo ACK=[1], Error=0 để báo cho máy tính biết Kit sẽ gửi dữ liệu để kiểm tra đúng hay sai.
AF=[1]: báo cho Kit biết máy tính sẳn sàng nhận dữ liệu.
Máy tính đọc bit Error cho tới khi Error = [0] để biết Kit đã gửi về dữ liệu để kiểm tra.
Thu Nible cao: Nhận dữ liệu để kiểm tra.
Cho AF=[0]: đã nhận xong dữ liệu.
Đọc Error cho tới khi Error=[1] để biết đã có dữ liệu mới.
Thu nible thấp.
Kiểm tra dữ liệu: máy tính sẽ phải ghép nối nible cao với nible thấp lại rồi so sánh với dữ liệu vừa xuất ra, nếu 2 dữ liệu giống nhau thì kết quả xuất dữ liệu sẽ là đúng. Máy tính sẽ xuất ra số FFhex ở thanh ghi data để báo đúng, và xuất AF=0 & strobe=0 để báo xuất xong 1 byte dữ liệu. Ngược lại thì xuất 00hex ra thanh ghi data và xuất AF=0, strobe =0 để báo kết quả sai.
Nếu kết quả sai thì quay lại xuất lạ byte vừa rồi đã xuất.
Quay lại từ đầu chương trình xuất dữ liệu cho đến khi hết dữ liệu.
Chương trình nhận dữ liệu ở Kit:
Giải thích lưu đồ chương trình nhận dữ liệu:
Chương trình bắt đầu tại begin.
Trước tiên phải khởi tạo 8255 với các chế độ qui định như sau:
Port A: nhận dữ liệu từ thanh ghi data theo ket nối phần cứng.
Port B: xuất trạng thái Kít trả về máy tính.
Port C: nhận tín hiệu điều khiển từ thanh ghi điều khiển của máy tính.
Sau đó báo cho máy tính biết trạng thái bận. Mục đích của công việc này là để đồng bộ thời điểm bắt đầu chương trình nhận dữ liệu với chương trình xuất dữ liệu từ máy tính.
Reset biến đếm địa chỉ đầu và cuối, nơi đặt vùng dữ liệu nhận được từ máy tính.
Xuất chử Ready báo cho người sử dụng biết trạng thái sẳn sàng nhận dữ liệu của kit. Chờ người sử dụng gõ phím Go.
Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 1):
Begin
Khởi tạo ngoại vi 8255:
Port A: nhận dữ liệu.
Port B: Xuất trạng thái
Port C: nhận tín hiệu điều khiển.
Báo thiết bị bận
Reset biến đếm địa chỉ đầu và cuối, nơi đặt vùng dữ liệu nhận được từ máy tính gởi xuống
“READY”
Chờ gõ phím “Go”
Gõ phím “Go”
“SENDING”
Busy=0
Sẳn sàng nhận dữ liệu.
1
Strobe=1
Busy=1, ACK=0
Đọc dữ liệu, ACK=1
AF=1
Xuất Nible cao +Error=0
AF=0
Xuất Nible thấp +Error=1
Strobe=0
Đọc dữ liệu port A
(A)=FF
Xử lý dữ liệu
Busy=0
1
Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
Hình 18: Lưu đồ chương trình nhận dữ liệu từ máy tính gởi xuống thiết bị thực tập vi xử lý 8085 (trang 2).
Khi phím Go được gõ thì quá trình nhận dữ liệu của kit thực sự bắt đầu.
Kit báo sẳn sàng chờ máy tính gửi dữ liệu xuống.
Đọc strobe cho tới khi bằng 1, để biết dữ liệu đã được gởi ra bus dữ liệu.
Xuất Busy=1, ACK=0.
Đọc dữ liệu và cho ACK=1. Lúc này kit đã nhận được dữ liệu nhưng chưa biết dữ liệu có chắc chắn đúng không. Sau đó bắt đầu kiểm tra.
Đọc AF cho tới khi bằng 1, biết máy tính sẳn sàng nhận dữ liệu kiểm tra.
Xuất nible cao của dữ liệu kiểm ...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status