LẬP TRÌNH HỆ THỐNG

Một phần của tài liệu Thiết kế và thi công mô hình thang máy (Trang 65)

4.4.1 Lưu đồ giải thuật

Lưu đồ giải thuật của điều khiển mô hình thang máy chia thành 2 phần chính bao gồm: ngắt – nhận tín hiệu gọi tầng, điều khiển hoạt động của mô hình thang máy.

4.4.1.1. Ngắt – nhận tín hiệu gọi tầng.

Khi có bất kì phím được nhấn, điện áp tại cột có phím được nhấn xuống mức thấp. Tín hiệu điện áp này đưa tới ngõ vào logic AND và thu được tín hiệu điện áp mức thấp tại ngõ ra. Tín hiệu điện áp mức thấp này kích bắt đầu ngắt ngoài. Ngược lại, khi không có phím nào được nhấn, ngõ vào logic AND ở mức cao, ta thu được tín hiệu ngõ ra mức cao, không kích ngắt ngoài. Ngắt ngoài được khai báo với trạng thái từ mức điện áp cao xuống mức điện áp thấp tại chân RB0

Khi có ngắt ngoài xảy ra, chương trình đưa vào phần ngắt ngoài và tắt chức năng ngắt ngoài. Các hàng của khối phím ma trận được thay đổi giá trị điện áp (011,101,110 – tương ứng với các hàng và lần lượt). Xen kẽ quá trình thay đổi điện áp là quá trình dò giá trị điện áp từng cột. Cột có giá trị điện áp mức thấp là cột có nút được nhấn. Kết hợp với quá trình thay đổi điện áp của hàng mà ta kết luận được vị trí nút được nhấn.

Mỗi phím có một công dụng khác nhau. Hàng 1 là 4 nút chọn vị trí dừng buồng thang tượng trưng cho 4 nút chọn vị trí dừng buồng thang lắp bên trong buồng thang. Hàng 2 bao gồm 3 nút gọi buồng thang đi lên tượng trưng cho 3 nút gọi lên lắp bên ngoài cabin và 1 nút mở cửa cabin. Hàng 3 bao gồm 3 nút gọi buồng thang đi xuống tượng trưng cho 3 nút gọi xuống lắp bên ngoài cabin và 1 nút đóng cửa cabin

Khi phím chọn vị trí dừng buồng thang hay phím gọi buồng thang đi lên hoặc gọi buồng thang đi xuống được nhấn, ta xét theo trạng thái của thang. Sau đó, ta xét đến giá trị tầng gọi. Giá trị tầng gọi đem so sánh với vị trí buồng thang để đưa vào thanh ghi “dungtang” hoặc “nholen” hoặc “nhoxuong”.

Khi phím mở cửa cabin hoặc đóng cửa cabin được nhấn, ở trạng thái “chophep = 1”, thì lệnh đóng cửa hoặc mở cửa mới có tác dụng. Trạng thái “chophep” quy định lệnh đóng hoặc mở cửa được thực thi. Với mục đích tránh tình trạng mở cửa khi thang chưa dừng, hoặc tự ý mở cửa tại tầng không có lệnh dừng.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 Trước khi kết thúc chương trình ngắt ngoài, ta đặt cho các hàng có mức điện áp thấp. Với trạng thái này, sau khi mở lại chức năng ngắt ngoài, nút nhấn sẽ luôn ở trạng thái chờ phím bất kì được nhấn. Như thế, ngắt ngoài sẽ luôn luôn chờ tín hiệu ngắt. Tắt chức năng nhận ngắt ngoài. hàng 1 = 0, hàng 2 = hàng 3 = 1 Phát hiện cột có tín hiệu điện áp = 0? So sánh vị trí tầng. Lưu lại giá trị

hàng 2 = 0, hàng 1 = hàng 3 = 1 Phát hiện cột có tín hiệu điện áp = 0? hàng 3 = 0, hàng 1 = hàng 2 = 1 Phát hiện cột có tín hiệu điện áp = 0? hàng 1 = hàng 2 = hàng 3 = 0. Mở chức năng nhận ngắt ngoài So sánh vị trí tầng. Lưu lại giá trị So sánh vị trí tầng.

Lưu lại giá trị

Y N Y N Y N Bắt đầu Kết thúc

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61

Trạng thái chờ ?

Trạng thái lên ?

Lệnh trong cabin ?

= vị trí ? Mở cửa Cabin

Lưu vào thanh ghi dungtang. Cabin đi lên

Lưu vào thanh ghi dungtang > vị trí ?

>= vị trí ?

Lưu vào thanh ghi dungtang. Cabin đi xuống

Lưu vào thanh ghi nhoxuong

Lưu vào thanh ghi nholen

Lưu vào thanh ghi dungtang

Lưu vào thanh ghi nholen

Lưu vào thanh ghi nhoxuong <= vị trí ? Lệnh trong cabin ? Y Y Y Y Y Y Y N N N N N N N N Y Kết thúc Bắt đầu

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62

Nút đóng cửa được nhấn ? chophep = 1

Lenhdongcua = 0 Lenhdongcua = 1 Lenhmocua = 0 Y Y N N Kết thúc Bắt đầu

Hình 4. 17 – Lưu đồ giải thuật nút đóng cửa buồng thang

Nút mở cửa được nhấn ? Chophep = 1

Lenhmocua = 0 Lenhmocua = 1 Lenhdongcua = 0 Y Y N N Kết thúc Bắt đầu

Hình 4. 18 – Lưu đồ giải thuật nút mở cửa buồng thang 4.4.1.2. Hoạt động của mô hình thang máy

Khi thang máy ở chế độ chờ tín hiệu, buồng thang dừng di chuyển, chờ tín hiệu đưa vào để tiếp tục hoạt động. Khi ở chế độ đi lên, thang máy sẽ ưu tiên dừng khi có lệnh dừng ở các tầng có cùng hoặc vị trí cao hơn vị trí buồng thang. Các lệnh gọi có vị trí thấp hơn vị trí buồng thang sẽ đưa lệnh vào thanh ghi nhớ tùy theo gọi lên hoặc gọi xuống. Khi ở chế độ đi xuống, thang máy sẽ ưu tiên dừng khi có lệnh dừng ở các tầng có cùng hoặc vị trí thấp hơn vị trí buồng thang. Các lệnh gọi có vị trí cao hơn vị trí buồng thang sẽ đưa lệnh vào thanh ghi nhớ tùy theo gọi lên hoặc gọi xuống.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 a. Quá trình mở và đóng cửa của buồng thang

Cho phép mở cửa

Có lệnh đóng cửa ?

Cửa mở hết ? Có lệnh đóng cửa ?

Cho phép đóng cửa

Có lệnh mở cửa ?

Có người tại cửa ?

Cửa đóng hết ? N Y Y Y Y Y N N

Khởi tạo biến

Thực hiện vòng Lặp 100 lần ?

Delay_ms(30)

Có lệnh đóng cửa ?

Tăng giá trị biến lên 1 đơn vị Y Y N N N N Y N Bắt đầu Kết thúc khoathang = 0 ? Y N

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 Khi có lệnh dừng tại tầng, động cơ truyền động ngừng hoạt động. Buồng thang bắt đầu mở cửa. Nếu có lệnh đóng cửa thì buồng thang sẽ dừng mở cửa và bắt đầu đóng cửa.

Nếu không có lệnh đóng cửa thì cửa sẽ tiếp tục mở và chỉ dừng mở cửa khi cửa đã mở hết. Lúc này, điện áp thu về từ khối cảm biến ứng với vị trí cảm biến cửa mở hết sẽ là mức thấp. Tiếp tục kiểm tra xem có lệnh khóa thang hay không, nếu có sẽ thực hiện vòng lặp và chờ cho khi nào điều kiện sai sẽ thoát vòng lặp. Nếu có lệnh đóng cửa cửa buồng thang sẽ đóng lại. Nếu không có lệnh thì sau 3 giây là thời gian đã cài đặt trước, cửa sẽ tự đóng lại. Trong quá trình đóng, nếu có nguời vào buồng thang hoặc có lệnh mở cửa thì cửa sẽ mở ra hết và làm lại quá trình đóng cửa. Sau khi cửa đóng hết, điện áp thu được từ khối cảm biến ứng với cảm biến vị trí cửa đóng hết là mức thấp, động cơ điều khiển cửa sẽ dừng hoạt động và kết thúc quá trình mở – đóng cửa của buồng thang.

b. Quá trình đi lên và đi xuống của buồng thang

trangthai = 1, Cho phép đi lên

Đến các vị trí tầng ? Xuất ra led 7 đoạn

vị trí tầng. Có lệnh dừng tầng ? Dừng động cơ kéo cabin. Mở - đóng cửa buồng thang Thanh ghi dừng tầng =0 ? Thanh ghi dừng tầng =0 ? Y Y N Y Y N N N Dừng động cơ kéo Cabin Kết thúc Bắt đầu

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65

trangthai = 0, Cho phép đi xuống

Đến các vị trí tầng ?

Dừng động cơ kéo Cabin

Xuất ra led 7 đoạn vị trí tầng. Có lệnh dừng tầng ? Dừng động cơ kéo Cabin Mở - đóng cửa buồng thang Thanh ghi dừng tầng =0 ? Thanh ghi dừng tầng =0 ? Y Y Y Y N N N N Bắt đầu Kết thúc

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66 c. Hoạt động chính của mô hình thang máy

Trạng thái chờ Trạng thái chờ RB1=RB2=RB3=0

Mở ngắt ngoài

Trạng thái đi lên

Mở- đóng cửa buồng thang

Qúa trình đi xuống của buồng thang

Trạng thái đi lên dungtang=nholen Trạng thái chờ

nhoxuong = 0 ? Qúa trình đi lên của

buồng thang

nholen = 0 ?

Trạng thái đi xuống dungtang=nhoxuong Y N Y N Y Y N N Bắt đầu

Hình 4. 22 – Lưu đồ giải thuật hoạt động chính của thang máy

Giá trị tại các thanh ghi lệnh dungtang, nholen, nhoxuong và 2 biến lenhdongcua, lenhmocua luôn được cập nhập liên tục trong quá trình thang máy hoạt động. Khi xảy ra ngắt, lệnh gọi từ bên ngoài được so sánh với trạng thái và vị trí của buồng thang. Sau đó, lệnh được ưu tiên sẽ ghi vào thanh ghi dungtang, lệnh không được ưu tiên sẽ được ghi vào thanh ghi nholen hoặc nhớ xuống.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 d. Hoạt động của chuông báo.

Tam = 1, Buzzer = 0 Tam =1 và có lệnh dừng tầng ? Buzzer = 1 Delay_ms(50) Bắt đầu Buzzer = 0 Tam = 0 Kết thúc N Y

Hình 4. 23 – Lưu đồ giải thuật hoạt động của chuông báo

Chuông báo sẽ báo hiệu đã đến tầng mong muốn, đầu tiên ta tắt chuông và gán biến tam = 1, sau đó ta kiểm tra xem có lệnh dừng tầng hay không, nếu có thì chuông báo 50ms rồi set lại biến tam = 0, quá trình lặp lại khi có lệnh dừng tầng tiếp theo.

4.4.2. Phần mềm lập trình cho vi điều khiển

4.4.2.1 Phần mềm Proteus

Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS–51, PIC, AVR, …

Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏng mạch và ARES sử dụng để vẽ mạch in. Proteus là công cụ mô phỏng cho các loại Vi Điều Khiển khá

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 tốt, nó hỗ trợ các dòng VĐK PIC, 8051, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 ... các giao tiếp I2C, SPI, CAN, USB, Ethenet,... ngoài ra còn mô phỏng các mạch số, mạch tương tự một cách hiệu quả. Proteus là bộ công cụ chuyên về mô phỏng mạch điện tử.

Sau đây là giao diện của phần mềm Proteus :

Hình 4. 24 – Giao diện làm việc của ISIS.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69 4.4.2.2. Phần mềm CCS

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip.

Chương trình là sự tích hợp của 3 trình biến dich riêng biệt cho 3 dòng PIC khác nhau đó là:

‐ PCB cho dòng PIC 12‐bit opcodes ‐ PCM cho dòng PIC 14‐bit opcodes ‐ PCH cho dòng PIC 16 và 18‐bit

Giống như nhiều trình biên dịch C khác cho PIC, CCS giúp cho người sử dụng nắm bắt nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án. Các chương trình diều khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn ngữ lập trình cấp cao – Ngôn ngữ C.

Sau đây là các bước thao tác trên phần mềm CCS : - Giao diện sau khi khởi động phần mềm CCS

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 70 - Ta tiến hành các bước tạo file chương trình : chọn File » New » Source File

Hình 4. 27 – Tạo chương trình mới trong CCS. - Sau khi thực hiện xong, ta được giao diện như sau :

Hình 4. 28 – Vùng lập trình code CCS.

- Ta tiến hành lập trình, sau khi lập trình xong, ta tiến hành biên dịch chương trình : nhấn chọn Rebuild để biên dịch chương trình.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 71 4.4.2.3 Phần mềm nạp chương trình The SUN programmer.

The SUN programmer là phần mềm có chức năng tương tự như phần mềm PICkit 2 programmer, cho phép bạn nạp chương trình cho tất cả các dòng PIC được hỗ trợ. Giao diện chương trình nạp như sau :

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 72 Các bước để nạp chương trình như sau :

- Kết nối mạch nạp với máy tính.

- Kiểm tra xem mạch đã kết nối thành công hay chưa bằng cách : Chọn Tools » Check communication.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 73 Hình 4. 32 – Giao diện sau khi kết nối thành công.

- Nạp chương trình vào Vi điều khiển : Chọn File » Import Hex » chọn file Hex cần nạp » chọn open » chọn Write.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 74 Hình 4. 34 – Kết quả sau khi nạp thành công.

4.4.3. Mô phỏng

Để tiến hành mô phỏng, ta sử dụng nút nhấn để thay thế cho cảm biến hồng ngoại, khi nút nhấn được nhấn đồng nghĩa với việc cảm biến được tác động. Nguồn cấp cho các linh kiện thì lấy từ Proteus. Các led 7 đoạn hiển thị số tầng, các led đơn hiển thị trạng thái lên xuống của cabin thì chỉ mô phỏng cho 1 tầng, trong thực tế lắp cho các tầng khác cũng hoạt động tương tự và chính xác. Kết quả mô phỏng cho thấy mạch hoạt động ổn định và chính xác. Việc mô phỏng này giúp kiểm tra hoạt động của mạch trước khi vẽ mạch in, làm mạch thực tế nhằm đảm bảo hiệu quả tránh sai sót, ngoài ra còn giúp ta có cái nhìn tổng quan về đề tài, nhìn thấy được các tín hiệu thay đổi, cách thức hoạt động của mạch.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 75 Hình 4. 35 – Mô phỏng hoạt động của mạch trên phần mềm Proteus

4.5. VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 4.5.1 Viết tài liệu hướng dẫn sử dụng 4.5.1 Viết tài liệu hướng dẫn sử dụng

 Việc điều khiển mô hình thang máy đi lên hoặc đi xuống dựa trên việc kiểm tra giá trị của các thanh ghi đã được định sẵn:

- Thanh ghi dungtang (địa chỉ 0x32). Thanh ghi chứa giá trị tuơng ứng với các lệnh dừng tại tầng có lệnh dừng hoặc lệnh gọi từ bên ngoài. Ví dụ: dungtang0 ứng với bit dungtang.0. Khi bit dungtang.0 có giá trị bằng 1 thì tuơng ứng buồng thang sẽ dừng lại tại vị trí tầng 0. Khi bit dungtang.0 có giá trị bằng 0 thì tương ứng buồng thang sẽ không xuống và dừng lại tại vị trí tầng 0.

- Thanh ghi nholen (địa chỉ 0xA0). Thanh ghi nholen chứa các lệnh gọi đi lên không được ưu tiên thực hiện. Lệnh gọi tầng đưa vào thanh ghi nholen bao gồm các lệnh gọi xảy ra trong các trường hợp sau: gọi tầng đi lên từ bên ngoài khi buồng thang đang đi xuống, gọi tầng từ bên trong buồng thang khi thang đang đi xuống mà vị trí dừng của lệnh gọi cao hơn vị trí hiện tại của buồng thang.

- Thanh ghi nhoxuong (địa chỉ 0x120). Thanh ghi nhoxuong chứa các lệnh gọi đi xuống không được ưu tiên thực hiện. Lệnh gọi tầng đưa vào thanh ghi nhoxuong bao gồm lệnh xảy ra trong các trường hợp sau: gọi tầng đi xuống từ bên ngoài khi buồng thang đang đi lên, gọi tầng từ bên trong buồng thang khi thang di chuyển lên mà vị trí dừng của lệnh gọi thấp hơn vị trí hiện tại của buồng thang.

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 76

 Vị trí của buồng thang được thể hiện trên led 7 đoạn. Giá trị đưa từ portA của vi điều khiển đưa tới ngõ vào của 74LS573, ngõ ra tuơng ứng ngõ vào của 74LS573 nối tiếp với ngõ vào 74LS247. Qua bộ giãi mã BCD, giá trị trên led 7 đoạn ứng với vị trí của buồng thang.

 PortB của vi điều khiển có nhiệm vụ xuất và nhập giá trị điện áp từ khối nút

Một phần của tài liệu Thiết kế và thi công mô hình thang máy (Trang 65)

Tải bản đầy đủ (PDF)

(97 trang)