Lưu Đồ Chi Tiết Chương Trình Error


Để có thể hiển thị Thứ – Giờ – Phút - Giây trên led 7 đoạn ở dạng số thập phân, ta cần biến đổi dữ liệu thời gian ở dạng số HEX sang BCD. Mục đích của việc biến đổi này là để chỉ cần thực hiện việc so sánh thời gian thực tạo ra từ 0 đến 9 thay vì phải so sánh từ 0 đến 59.

Dữ liệu thời gian thực nằm trong 4 byte 1004h, 1005h, 1006h,1007h được viết sang vùng đệm gồm 4 byte 1050h, 1051h,1052h,1053h tương ứng trước khi biến đổi từ HEX sang BCD để hiển thị.

Qua khảo sát cụ thể 60 giá trị đầu của số HEX từ 0h đến 3Bh, tương ứng với số BCD có giá trị từ 0 đến 59 người viết thấy có qui luật biến đổi như sau:


HEX

GIA SOÁ

BCD


HEX

GIA SOÁ

BCD

00


00


1E


30

01


01

1F


31

02


02

20


32

03


03

21


33

04


04

22


34

05

+ 00h

05

23

+ 12h

35

06


06

24


36

07


07

25


37

08


08

26


38

09


09

27


39

0A


10


28


40

0B


11

29


41

0C


12

2A


42

0D


13

2B


43

0E


14

2C


44

0F

+ 06h

15

2D

+ 18h

45

10


16

2E


46

11


17

2F


47

12


18

30


48

Có thể bạn quan tâm!

Xem toàn bộ 105 trang tài liệu này.

Ứng dụng CPU Z80 - Thiết kế và thi công hệ thống báo giờ tự động - 9


13


19


31


49

14


20


32


50

15


21

33


51

16


22

34


52

17


23

35


53

18


24

36


54

19

+ 0Ch

25

37

+ 1Eh

55

1A


26

38


56

1B


27

39


57

1C


28

3A


58

1D


29

3B


59


Cách khởi tạo 8279:


LD

HL,2001h


LD

(HL),00000000B

; Hiển thị 8 kí tự lối vào trái

LD

soá 3 cho 5

(HL),00100101B

; Chia tần số xung clock ở ngõ vào chân

Lưu đồ chương trình hiển thị.


Hệ

BẮT ĐẦU


CẤT AF, BC, DE, HL VÀO STACK


ĐỊA CHỈ LED THỨ - 1


INC HL


ĐỊA CHỈ LED GIÂY +1 ?


LD A,(HL)


HỒI PHỤC AF, BC, DE,HL


A < 0Ah ?


KẾT THÚC A < 14h ? A A+06h


A < 1Eh ? A A + 0Ch


A < 28h ? A A + 12h


A < 32h ? A A + 18h


A < 3Ch ? A A + 1Eh



HIỂN THỊ

Hình 33 : LƯU ĐỒ CHƯƠNG TRÌNH DISPLAY


3.3.7- Chương trình con KEYPRO:

Mô tả chương trình :


BẮT ĐẦU

Hệ thống báo giờ tự động


Các chức năng Settime, đặt Hottime/Skiptime cần sử dụng bàn phím để thay đổi giờ, phút đến giá trị mong muốn và quan sát Giờ Phút đang thay đổi trên màn hình. Chương trình con KEYPRO nhằm phục vụ yêu cầu chung đó.

KEYPRO sẽ xử lý các tổ hợp phím “Ins_+”, “Ins_ -“ ,“Del/Date _ +”, “Del/Date _ -“ và các phím “+”, “-“,”OK”. Mỗi phím khi ấn sẽ tạo ra 1 giá trị và thực hiện 1 chức năng cho trong bảng sau:


PHÍM‌

GIÁ TRỊ

CHỨC NĂNG

Date_+

0Edh

Tăng thứ

Date_-

0EBh

Giảm thứ

Ins_+

0FCh

Tăng giờ

Ins_-

0FAh

Giảm giờ

+

0FDh

Tăng phút

_

0FBh

Giảm phút

OK

0F7h

Lưu Giờ Phút và thoát



Bảng 8: CHỨC NĂNG VÀ GIÁ TRỊ CÁC PHÍM

Lưu ý: Các tổ hợp phím: ”Date_+” và “Date_-“, “Ins_+” và “Ins_-“ được tạo ra do ấn phím “+” hay ”-“ trong khi ấn và giữ phím “Ins”, “Date”. Vì bàn phím được thiết kế như là vùng nhớ có địa chỉ từ 4000h đến 4FFFh nên khi đọc bàn phím, chương trình con KEYPRO thực hiện lệnh đọc bộ nhớ tại địa chỉ 4000h hay lớn hơn (giới hạn trong vùng nhớ cho phép) với chu kỳ khoảng 175mS. Khoảng thời gian đó là đủ để chống dội cho phím được ấn đồng thời để quan sát được Giờ Phút đang thay đổi liên tục khi người sử dụng ấn và giữ phím “+” hay “-“. Mỗi khi có phím được ấn (ngoại trừ phím” OK”) nghĩa là thứ, giờ, phút đã có sự thay đổi, KEYPRO sẽ nhờ chương trình con DISPLAY hiển thị giờ phút đã thay đổi.

Chương trình triệu gọi KEYPRO phải truyền cho KEYPRO địa chỉ bộ nhớ để ghi giờ phút đã thay đổi, địa chỉ này phải đặt trong thanh ghi HL.

Lưu đồ chi tiết:



CẤT BC VÀO STACK


HIỂN THỊ THỚI GIAN ĐANG THAY ĐỔI


ĐỌC BÀN PHÍM


LẤY BC TỪ STACK


Y Y

TĂNG THỨ ? THỨ + 1 THỨ = 9 ? THỨ = 2 N N

Y Y

GIẢM THỨ ? THỨ – 1 THỨ = 1 ? THỨ = 8 N N

Y Y

TĂNG GIỜ ? GIỜ + 1 GIỜ = 24 ? GIỜ = 0 N N

Y Y

GIẢM GIỜ ? Giờ -1 GIỜ = -1 ? GIỜ = 23 N N

Y Y

TĂNG PHÚT ? PHúTù + 1 PhùúT = 60 ? PhúT = 0 N N

Y Y

GIẢM PHÚT ? PhúT –1 PhúT = -1 ? PhúT = 59 N N

N

PHẢI OK ?


Y


GHI THỜI GIAN THỰC VÀO BỘ NHỚÙ


KẾT THÚC


Hình 34 : LƯU ĐỒ CHI TẾT CHƯƠNG TRÌNH KEYPRO

3.3.8- Chương trình con ERROR.

Mô tả chương trình



Nhằm báo lỗi cho người sử dụng biết những lỗi như: xóa Hottime/Skiptime rỗng, thêm Hottime/Skiptime thứ 11.

Nhấn phím “OK” để bỏ lỗi (thoát khỏi ERROR)

Thông báo lỗi bằng cách chớp tắt chữ ERROR trên đèn hiển thị.

Lưu đồ:

BẮT ĐẦU

Lưu đồ chương trình ERROR như sau:



CẤT AF, BC, DE, HL VÀO STACK


HIỂN THỊ “ERROR”


TRÌ HOÃN


ĐỌC PHÍM


Y

PHẢI OK ?


N TẮT LED


TRÌ HOÃN


PHỤC HỒI AF ,BC, DE, HL TỪ STACK


KẾT THÚC


Hình 35 : LƯU ĐỒ CHI TIẾT CHƯƠNG TRÌNH ERROR


Tóm lại

Toàn bộ phần mềm được thiết kế để đáp ứng cho yêu cầu và mục đích của đề tài. Hệ Thống báo giờ tự động sử dụng các chương trình:


Chương trình MAIN để khởi động hệ thống, so sánh thời gian thực với các Restime, Hotime, Skiptime và thứ trong tuần để ra quyết định báo hiệu và điều khiển báo hiệu.

Chương trình RTP (Real Time Program) để tạo thời gian thực

Chương trình SETTIME phục vụ cho chỉnh sửa thời gian thực.

Chương trình HOTTIME phục vụ cho việc đặt thời điểm báo hiệu đột xuất.

Chương trình SKIPTIME phục vụ cho đặt thời điểm cấm báo hiệu.

Chương trình con KEYPRO xử lí bàn phím để phục vụ cho Settime, Hottime, Skiptime.

Chương trình con DISPLAY phục vụ cho hiển thị thời gian thực.

Chương trình con ERROR để thông báo lỗi cho người sử dụng.


IV- Thi công.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 08/09/2023