58
Bmôn Hthng nhúng Khoa CNTT – ĐHBK Đ àNng

Bai Giang Do an VDK _ V2

Embed Size (px)

Citation preview

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 1/58

Bộmôn Hệ thống nhúngKhoa CNTT – ĐHBK Đà Nẵng

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 2/58

Nội dungGiới thiệu đề tàiTính năng họVĐK 89C51Giới thiệu mạch nháy đèn Led đơn giản

Các lệnh thông dụng của họVĐK 8051 bằng ngôn ngữ Asembly Bài tập hiển thị Led 7 đoạn

Bài tập Viết chương trình đồng hồ

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 3/58

Đề tài Đồ án VXLHãy viết chương trình để thực hiện đồng hồ số với các yêu cầu:

Hiển thị giờ, phút, giây (6 led 7 thanh)

3 n u c n c ọn, ng, g m ng uchỉnh thời gian và ngày tháng.Nếu bấm chọn thì sẻ nhấp nháy thông số cần điều chỉnhPhím tăng, giảm để điều chỉnh số đang nhấp nháy

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 4/58

Sơ đồ chân 89C51PX.Y : chân Y của Port X !PSEN : Chân cho phép bộnhớ chương trình

Khi chương trình trong

ROM nội thì !PSEN =1 ALE : Chân chốt địa chỉ đểgiã đa hợp!EA :

1 : Chạy chương trìnhtrong ROM nội0 :Chạy chương trìnhtrong ROM ngoài

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 5/58

Sơ đồ chân 89C51RST: Chân reset. VĐK sẻkhởi động lại nếu chânnày = 1(5V) trong tối

XTAL1,2 : cấp dao độngcho VĐK Vcc: nối đến nguồn 5V GND: Nối về đất

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 6/58

Cấu trúc chung của VĐK

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 7/58

Cấu trúc RAMGồm Vùng Ram đa mục đích 80Bytes Vùng Ram định địa chỉ BitCác dãy thanh ghi

R0 ~ R7Thanh ghi chức năng đặc biệt: A,B, DPTR. TMOD,TCON, Thanh ghi ngắt ….

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 8/58

Lập trình hợp ngữThanh ghi (register)Hầu hết là thanh ghi 8 bit : A,B,RO~R7, TCON …

Thanh ghi 16 bit là: DPTR, PC(program counter)

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 9/58

Lập trình hợp ngữCác loại lệnhNhóm lệnh số học: cộng trừ, nhân chia, dịch …

Nhóm lệnh logic: AND, OR, XOR, NOT …

m n c c uy n u: , , …Nhóm lệnh xử lý bit: SETB, CLR, MOV …Nhóm lệnh rẻ nhánh:

SJMP, LJMP, AJMP, JMP …CALL, ACALL, LCALL …RET, RETIDJNZ (vòng FOR), CJNE

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 10/58

Lập trình hợp ngữChỉ thị tiền xử lý:ORG : Định địa chỉ bắt đầu ghi chương trình theo sau

chỉ thị này _

EQU : Định nghĩa hằng sốCú pháp: Tên_hằng EQU Biểu_thức

BIT : Định nghĩa một BITCú pháp: Tham_số BIT Bit_cần_tham_chiếu

END : Kết thúc chương trình hợp ngữCú pháp: END

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 11/58

Lập trình hợp ngữCấu trúc một câu lệnh trong hợ p ngữ:

[nhãn:] [từ_gợi_nhớ] [toán_hạng] [;chú_gi ải]

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 12/58

Lập trình hợp ngữLệnh MOV (1-2 chu k ỳ máy)Cấu trúc: MOV Đích,Nguồn

Công dụng: sao chép toán h ạng nguồn sang toán h ạng đích

MOV A,#23H ; N ạp giá tr ị 23H vào thanh ghi AMOV R5,#0F9H ; N ạp giá tr ị F9H vào thanh ghi R5MOV R0,#10001000B ; N ạp giá tr ị 88H vào thanh ghi R0

MOV B,#15 ; N ạp giá tr ị 15 vào thanh ghi BMOV R5,25H ;N ạp giá tr ị thanh ghi t ại địa chỉ 25H vào R5MOV A,@R1 ; N ạp nội dung tại địa chỉ trỏbởi R1

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 13/58

Lập trình hợp ngữLệnh INC

Cú pháp: INC ByteCông dụng: Tăng Byte lên 1 đơn vị

L nh ACALLCú pháp: ACALL Ch ương_trình_conCông dụng: Gọi chương trình con

Lệnh NOPCú pháp: NOPCông dụng: không làm gì m ột chu k ỳ máy

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 14/58

Lập trình hợp ngữLệnh CJNE : So sánh và nh ảy nếu không bằng

Cú pháp: CJNE < Đích>,<Ngu ồn>,Địa_ch ỉMô tảchức năng:

c <> gu nTHENNhảy đến Địa_ch ỉ

IF (Đích) < (Ngu ồn) THEN (C) <- 1ELSE (C) <- 0

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 15/58

Lập trình hợp ngữLệnh DJNZ:

Cú pháp: DJNZ <byte>,< địa_ch ỉ>Công dụng: giảm byte 1 đơn vị và nhảy đến địa chỉ nếu byte

.

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 16/58

Lập trình hợp ngữCấu trúc một Chươ ng trình conTên_CTC:

[Lệnh bên trong]

RETCấu trúc một Chươ ng trình con ph ục vụngắt:Tên_CTC_PVN:

[Mã lệnh]RETI

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 17/58

Lập trình hợp ngữCấu trúc một chươ ng trình AsemblyCác phép gán

Các lệnh khởi độngn c n c a c ương tr n

Các chương trình conĐịnh ngh ĩ a hằng dữ liệu (DB và DW)END

VD: CT_MAU.a51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 18/58

Lập trình hợp ngữVòng lặp FORVD: Vòng l ặp for tăng, thựchiện 5 lần

MOV R1,#0BAT_DAU:

;Thân CTCINC R1CJNE R1,#5,BAT_DAU

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 19/58

Lập trình hợp ngữVòng lặp WHILE … DOVD: Nếu A = 0 thì t ăng A lên1; nếu không thì thoát vòng l ặp

BAT_DAU: JNZ EXITINC A

EXIT:

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 20/58

Lập trình hợp ngữVòng lặp REPEAT … UNTILVD: T ăng R7 lên 1; n ếu R7=5thì thoát; n ếu R7=5 thì ti ếp tục

BAT_DAU:INC R7

CJNE R7,#5,BAT_DAULJMP BAT_DAU

EXIT:

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 21/58

Lập trình hợp ngữLựa chọn CASEVD: CASE A OF:

Nếu A = 0 => Làm 1

N u A = 1 => Làm 2Nếu A = 2 => Làm 1Nếu A = n => Làm n

END_CASE

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 22/58

Lập trình hợp ngữLựa chọn CASECJNE A,#0,SKIP1;HANH_DONG_0JMP EXIT

SKIP1:CJNE A,#1,SKIP2;HANH_DONG_1JMP EXIT

SKIP2:CJNE A,#2,SKIPN;HANH_DONG_1JMP EXIT

SKIPN:;HANH_DONG_N

EXIT:

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 23/58

Lập trình hợp ngữBT: Viết chương trình nhấp nháy LED ở Port 1KQ: NHAP_NHAY_LED_P1.a51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 24/58

Lập trình hợp ngữLệnh PUSH:Cú pháp: PUSH địa_ch ỉ

Công dung: c ất nội dung tại địa_ch ỉ vào ng ăn chứa

L nh POP:Cú pháp: POP địa_ch ỉCông dụng: lấy giá tr ị trên cùng c ủa ngăn chứa nạp vàođịa_ch ỉ.

VD: NHAP_NHAY_LED_P1 - PUSH POP.a51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 25/58

Đọc phím nhấnCách đọc phím nối trực tiếp vớ i PORT0Chờbấm nút ởP0.0

JB P0.0,$

Xem xét nút nào được b m trong 4 nút ởP2.4 đ n P2.6.Hiển thị lên đèn tương ứng ởPORT0 là: P0.0, P0.1, P0.6

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 26/58

Đọc phím nhấnMOV P1,#00HLOOP:

JB P2.4,TAT_LED_0CLR P0.0JMP PHIM_1

TAT_LED_0:SETB P0.0

;---------PHIM_1:

JB P2.5,TAT_LED_1CLR P0.1JMP PHIM_2

TAT_LED_1:SETB P0.1

;--------PHIM_2:

JB P2.6,TAT_LED_2CLR P0.6JMP EXIT

TAT_LED_2:SETB P0.6

EXIT:JMP LOOP

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 27/58

Led 7 thanh đếm đến 20Thời gian sáng của mỗi led:1/(50*2)=0.01s = 10ms

CTC HT_DVI:HT_DVI:

,

MOV B,#10DIV ABMOV A,B

ACALL DOI_MA_LEDSETB HANG_CHUCCLR HANG_DVIMOV DATA_LED,A

RET

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 28/58

Led 7 thanh đếm đến 20CTC DOI_MA_LED:DOI_MA_LED:

INC A

MOVC A,@A+PCRETDB 11000000B,01111001B,00100100B,00110000B,

00011001B,00010010B,00000010B,01111000B,00000000BDB 00010000B

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 29/58

Led 7 thanh đếm đến 20CTC DC_R0:DC_R0:

CJNE R0,#20,TANG_R0 MOV R0,#0

LJMP EXIT_DC_R0TANG_R0:

INC R0EXIT_DC_R0:RET

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 30/58

Led 7 thanh đếm đến 20CTC DELAY_10MS:DELAY_10MS:

MOV R6,#10

LOOP_10MS: ACALL DELAY_MSDJNZ R6,LOOP_10MS

RETKết quả: DEM_DEN_20_DELAY.a51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 31/58

BT mô phỏngBài tập: Tính tổng một chuổi sốcóchiều dài chứa trong thanh ghi R7,địa chỉ bắt đầu của chuỗi trong R0.

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 32/58

BT mô phỏng

TONG:CLR A

LOOP:

Kết quả: TINH_TONG_CHUOI.a51

, , _

LJMP EXITCONG_LAI:

ADD A,@R0INC R0DEC R7

LJMP LOOPEXIT:

RET

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 33/58

Bộ định thờiBộ định thờ i Timer 0 (16 bit)

Có Byte cao (TH0) và byte th ấp (TL0)

Bộ định thờ i Timer 1 (16 bit) Có Byte cao (TH1) và byte th p (TL1)

Cả2 đều đượ c điều khiển bở i 1 thanh ghi TMOD

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 34/58

Bộ định thờiBit M0,M1 : ch ế độhoạt động

Bit C/T (counter/Timer) :=1 : đếm sựkiện, dùng xung ngoài đểhoạt động (Chân P3.4,P3.5)

=0 : bộ định thời gian (bộ định thời) dùng clock đểhoat độngVí dụ: TMOD=00010010b => Timer 0 : ch ế độ2

Timer 1 : ch ế độ1

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 35/58

Bộ định thờiKhở i động bộ định thờ i :SETB TR0SETB TR1

Dừng bộ định thờ i :CLR TR0CLR TR1

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 36/58

Bộ định thờiNguyên lý ho ạt động

Sau khi được khởi động, bộ đ ình thời sẻtăng (THx-TLx)mỗi chu ký máy 1 đơn vị.

TFx = 1.Phải dừng bộ định thời lại bằng lệnh CLR TRx

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 37/58

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 38/58

Bộ định thờiCách tính gía tr ị THx và TLx:

Giảsử thạch anh có tần số12MHz=> một chu k ỳ máy = 12MHz/12 = 1MHz= 1us

u n tạo tr c u m y t :Lấy 2^16 – 2000 = 65536 – 2000 = 63536Đổi 63536 sang hex = F830HNạp THx = F8h ; TLx = 30H

Hoặc bật CalculatorNhập -2000 ở dạng decimalChuyển sang dạng hex c ũng cho k ết quảtươ ng tự

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 39/58

Bộ định thờiVí dụ: dùng timer0 đểnhâp nháy đèn led vớ i tần số0. 5Hzbằng cách lặp 200 lần việc Timer0 ch ạy ở tần số100Hz.Ngh ĩ a là đèn sẻsáng 1s, tắt 1s và lặp lại như thế.

=> muốn tạo xung 100Hz thì t = 1/100= 0.01 s=> ton = toff = 0.01/2 = 0.005 s=>sốchu k ỳ máy cần thiết là: 0.005/1uS = 5000 chu k ỳ=> TH0 = ECh ; TL0 = 78h

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 40/58

Bộ định thờiMOV TMOD,#00000001B ; TRONG CTC KHOI TAO

;------------------------------------LOOP_2S:MOV 35H,#200 ;BO DINH THOI 0 CHAY 200 LAN

LOOP_1:MOV TH0,#0ECH ;NAP GIA TRI ECh VAO TH0

MOV TL0,#78H ;NAP GIA TRI 78H VAO TL0

SETB TR0 ;BAT BO DINH THOIJNB TF0,$ ;CHO CO TRANCLR TR0 ;DUNG BO DINH THOICLR TF0 ;XOA CO TRANDJNZ 35H,LOOP_1 ;NAP LAI BO DINH THOICPL P1.0 ;LAM BU BIT P1.0LJMP LOOP_2S

VD: TIMER0_DELAY_2S.A51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 41/58

Bộ định thờiCác bướ c thực hiện đểtimer hoạt động chế độ21. Ghi vào thanh ghi TMOD đểxác định chế độhoạt động2. Nạp THx giá tr ị ban đầu3. ng n t4. Chờ tràn từbộ định thời: JNBTFx,$5. Xóa cờTFx6. Quay lại bước 4 đểchờ lần tràn tiếp theo

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 42/58

NgắtChia làm 2 lo ại:

Ngắt cứng: ngắt sinh ra từphần cứngNgắt mềm: ngắt sinh ra bởi phần mềm (chương trình)

,Thực thi hết lệnh đang thực hiện v à lưu địa chỉ lệnh tiếp theo vàongăn xếpDi chuyển đến vector ng ắt tương ứng và thực hiện nội dung bêntrong (chương trình con ph ục vụngắt),thông thường là lời gọihàm hoặc lệnh nhảy dài. Kết thúc CTC PVN b ởi lệnh RETI.Quay về địa chỉ lệnh cần thực hiện tiếp theo chứa trong ng ăn xếp.

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 43/58

NgắtBảng địa chỉ vector ngắt của 8051

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 44/58

NgắtKhai báo CTC PVN

ORG 03H ;external interrupt 0;LOI GOI CTC PVN NGOAI 0

RETI

ORG 0BH ;timer 0 interrupt;LOI GOI CTC PVN TIMER 0

RETI

ORG 13H ;external interrupt 1

RETI

ORG 1BH ;timer 1 interrupt

RETI

ORG 23H ;serial port interrupt;LOI GOI CTC PVN PORT NOI TIEP

RETI

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 45/58

NgắtCác ngắt được cho phép ho ặc không cho phép b ởi thanh ghi IE(interup enable). Thanh ghi IE cho phép định địa chỉ bit.

EA = 0 : c ấm tất cảcác ngắtEA = 1 : các ng ắt sẻ được phép hoặc không cho phép b ởi cácbit:

EX0(ngắt ngoài 0), EX1(ng ắt ngoài 1)ET0(ngắt timer0), ET1(ng ắt timer1), ET2(ng ắt timer2 của 89c52)ES(ngắt Port nối tiếp)

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 46/58

NgắtVD: vớ i lệnhMOV IE,#10010010b

Sẻ: Cho phép ng ắt port nối tiếp và timer0

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 47/58

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 48/58

Ngắt của bộ định thờiCác bước thực hiện ngắt cho bộ định thời

Chỉ chương trình d ịch ghi vào địa chỉ vector ng ắt timer tương ứngmột lệnh nhảy đến CTC PVNCấu hình thanh ghi cho phép ng ắt

Bật timer hoạt động ( SETB TRx)Tạo CTC PVN:Nhãn củ a CTC PVN:

CLR TRxNạ p lạ i giá tr ị THx và TLxSETB TRxThự c hiện nội dung củ a CTC PVN

RETI

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 49/58

Ngắt của bộ định thờiVD: tạo xung vuông 2Hz trên chân p2.0 dùng ng ắt timer1.Trong khi đó vẫn duy trì công vi ệc xem phím nào trongport 0 đượ c bấm và hiển thị lên P1.

_ _ _ .

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 50/58

Thực hành ngắt TIMER0Viết chươ ng trình hiển thị lên 2 led 7 thanh t ừ1 đến 20 vàquay về1. Mỗi lần delay 1s

Chọn tần sốquét là 30Hz. Nh ưng có 2 led nên t ần sốcủa* *_

=> t= 1/120 = 0.008333s=> sốchu k ỳ máy cần thiết là: (1/120)/1us = 8333 clock =>TH0 = DFh ; TL0 = 73h

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 51/58

Thực hành ngắt TIMER0CTC PVN Timer0:

Thiết lập và cho ch ạy lại timer0 : TH0 = DFh ; TL0 = 73hLàm bù bit 00H

u t= 0 thì hi ển thị sốhàng đơ n vị của R0;=1 thì hiển thị hàng chục của R0

Nếu byte 30h = 20 thì thi ết lập lại =0, điều chỉnh R0

Tăng byte 30hRETI

DEM_DEN__20_LED.a51

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 52/58

TH ngắt TIMER0

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 53/58

TH Viết đồng hồ sốBướ c 1: Viết CT hiển thị Giây và phút

Vì có 4 led nên v ới tần sốquét 25Hz thì ta ph ải quét mỗi led7 thanh một thời gian là:

* *⇒ TH0 = ECh ; TL0 = 78h

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 54/58

TH Viết đồng hồ sốCTC PVN TIMER0

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 55/58

TH đồng hồ sốCTC HT_GPG

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 56/58

TH Viết đồng hồ sốCTC DC_GPG

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 57/58

TH Viết đồng hồ sốKết quả: DONG_HO_LED.a51Bướ c 2: Điều chỉnh sang hiển thị giờ và phút.Bướ c 3: Tạo phím bấm để điều chỉnh giờ và phút.

TANG_GIO EQU P2.4 ;NUT BAM TANG GIOGIAM_GIO EQU P2.5 ;NUT BAM GIAM GIOTANG_PHUT EQU P2.6 ;NUT BAM TANG PHUTGIAM_PHUT EQU P2.7 ;NUT BAM GIAM PHUT

8/7/2019 Bai Giang Do an VDK _ V2

http://slidepdf.com/reader/full/bai-giang-do-an-vdk-v2 58/58

TH đồng hồ

Thuật toán đọc phím