PC kết nối RS232 với 16F877A, truyền giá trị cho 595 rất mong các bạn thảo luận và gi
- Mình có một bảng điều khiển như sau viết bằng VB.
http://lab3i.com/Qupload/img/lab3i.com-2_1.png Tất cả có 8 con LED 3 màu <=> 24 trạng thái. Ở mỗi vị trí 1 LED có 3 check. Nếu check màu xanh nhấn thì có màu xanh, vàng nhấn có màu vàng, đỏ nhấn thì LED có màu đỏ. Sau khi đã thiết lập xong thì nhấn nút CONECT giá trị cần truyền được lấy từ trạng thái các check được đưa xuống 16F877A. - Sơ đồ mô phỏng được vẽ trên ISIS http://lab3i.com/Qupload/img/lab3i.c...3i.com-1-1.png 24 trạng thái được thể hiện bằng 24 con LED, cứ 3 LED liền nhau thể hiện cho một LED 3 màu. Vì số lượng LED sau này điều khiển có thể lớn hơn nên mình sử dụng 74HC595 để đưa giá trị nhận được từ Rs232 nối tiếp xuất ra các LED. - Đây là lệnh trên VB6 Code:
Private Sub Cmd_CONECT_Click() Code:
#include <16f877a.h> Rất mong các bạn có kinh nghiệm và đã làm nhiều về RS232 cho mình ý kiến về cách tổ chức biến của VB6 và CCS sao cho hợp lý. Xin cảm ơn các bạn. |
MSComm2.Output = Chr(FF)
hexa literal trong VB phải có &H MSComm2.Output = chr(&hFF) |
http://lab3i.com/Qupload/img/lab3i.com-2_2.png
Nếu mình dùng lệnh MSComm2.Output = chr(&hFF) thì chỉ có 4 con LED ở cuối sáng như hình vẽ. a[1], a[2] vẫn hiển thị đúng giá trị. Ngoài ra khi dùng với các giá trị khác không phải &HFF thì kết quả chỉ thu được 2 trường hợp là không LED nào sáng hoặc 4 LED cuối sáng. Bạn nào có thể giúp mình giải thích rõ chỗ này không? |
Múi giờ GMT. Hiện tại là 03:32 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam