Bài giảng Vi điều khiển - Giao tiếp led 7 đoạn - Nguyễn Đình Phú
Tóm tắt Bài giảng Vi điều khiển - Giao tiếp led 7 đoạn - Nguyễn Đình Phú: ...CD CHUÏC, KEÁT QUAÛ LAØ BCD TRAÊM. LEÄNH CHIA DIV AB LAØ CHIA A(8 BIT – FF=255) CHO B(8 BIT THÖÔØNG LAØ SOÁ 10) SAU KHI CHIA: A LÖU KEÁT QUAÛ, B LÖU SOÁ DÖ. VÍ DUÏ1: CHUYEÅN SOÁ HEX 3FH = 0011 1111B SANG SOÁ BCD: HEX BCD 32+16+8+4+2+1=63 BCD = 0110 0011B 0 0 1 1 1 1 1 1 1010 - 1 0 ...ïi hoïc sö phaïm kyõ thuaät tp HCM khoa ñieän – ñieän töû Nguyeãn Ñình Phuù Boä moân ñieän töû coâng nghieäp baøi giaûng vi ñieàu khieån: giao tieáp led 7 ñoaïn 18 JMP LB DELAYX: CALL DELAY1MS RET $INCLUDE(TV_DELAY.ASM) END CAÙCH VIEÁT TREÂN SÖÛ DUÏNG HEÁT 8LED – TA COÙ CAÙCH THÖÙ 2...eän leänh laø 2 chu kyø maùy Chöùc naêng: Leänh naøy seõ keát thuùc chöông trình con, vi ñieàu khieån seõ trôû laïi chöông trình chính ñeå tieáp tuïc thöïc hieän chöông trình. DELAY 0.1S = 100MS = 100,000 µS = 500µS × 200 DELAY100MS: MOV 71H,#200 ;2T DEL: CALL 500µS ;(2T + 500T)×200 D...
QUẢ LẦN 1 CHIA TIẾP CHO 10 LẦN THỨ 2: SỐ DƯ LẦN HAI LÀ BCD CHỤC, KẾT QUẢ LÀ BCD TRĂM. LỆNH CHIA DIV AB LÀ CHIA A(8 BIT – FF=255) CHO B(8 BIT THƯỜNG LÀ SỐ 10) SAU KHI CHIA: A LƯU KẾT QUẢ, B LƯU SỐ DƯ. VÍ DỤ1: CHUYỂN SỐ HEX 3FH = 0011 1111B SANG SỐ BCD: HEX BCD 32+16+8+4+2+1=63 BCD = 0110 0011B 0 0 1 1 1 1 1 1 1010 - 1 0 1 0 0110=BCD_CHUC 0 1 0 1 1 - 1 0 1 0 0 0 0 1 1 0011=BCD_DVI Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 11 TP KQ ;CHTR DK 2 LED 7 DOAN DEM TU 00 LEN 99 ROI DEM XUONG 00 DEM EQU R2 ORG 0000H MOV DPTR,#MA7DOAN LB: MOV DEM,#00H LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO CALL DELAY100MS INC DEM CJNE DEM,#100,LB1 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX LB2: DEC DEM CALL HEXTOBCD_GIAIMA ;MOI THEM VAO CALL DELAY100MS CJNE DEM,#-1,LB2 JMP LB1 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HEXTOBCD_GIAIMA: MOV A,DEM MOV B,#10 DIV AB ;(A) = BCD CHUC, (B)=BCD DONVI MOVC A,@A+DPTR ;LAY MA CHUC MOV P2,A ;HIEN THI HANG CHUC MOV A,B ;BCD DONVI => A MOVC A,@A+DPTR ;LAY MA DONVI MOV P0,A ;HIEN THI HANG DON VI RET MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H $INCLUDE(TV_DELAY.ASM) END Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 12 BÀI SỐ 2-6: CTDK LED 7 ĐOẠN ĐẾM THỜI GIAN TỪ 000 ĐẾN 250 – DÙNG P0 – LED ĐƠN VỊ, P1 – LED CHỤC VÀ P2 – LED TRĂM. LƯU ĐỒ ĐIỀU KHIỂN BEGIN DELAY DEM:=DEM+1 END DEM=251 Đ S LƯU 10 MÃ VÀO BN DEM:=0000 0000B HEX(DEM) => BCD BCD => MA7DOAN => LED ;CHTR DK 2 LED 7 DOAN DEM TU 000 LEN 250 DEM EQU R2 ORG 0H MOV DPTR,#MA7DOAN LB: MOV DEM,#00H LB1: CALL HEXTOBCD_GIAIMA ;MOI THEM VAO CALL DELAY100MS INC DEM CJNE DEM,#251,LB1 JMP LB HEXTOBCD_GIAIMA: MOV A,DEM MOV B,#10 DIV AB ;(A) = KQ1, (B)=BCD_DONVI MOV 20H,B ;LUU BCD_DVI VAO ON CO ĐC 20H MOV B,#10 DIV AB ; (A) = BCD_TRAM, (B)=BCD_CHUC Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 13 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MOVC A,@A+DPTR ;LAY MA TRAM MOV P2,A ;HIEN THI HANG TRAM MOV A,B ;BCD_CHUC => A MOVC A,@A+DPTR ;LAY MA CHUC MOV P1,A ;HIEN THI HANG CHUC MOV A,20H ;BCD_DVI => A MOVC A,@A+DPTR ;LAY MA DVI MOV P0,A ;HIEN THI HANG DVI RET MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H $INCLUDE(TV_DELAY.ASM) END CÁC CHƯƠNG TRÌNH CON TỔNG QUÁT CHUYỂN SỐ HEX 8 BIT SANG 3 SỐ BCD LƯU VÀO 3 ON 20H, 21H, 22H: HEXTOBCD: MOV A,HEX8BIT MOV B,#10 DIV AB MOV 20H,B ;LUU BCD_DVI MOV B, #10 DIV AB MOV 21H,B ;LUU BCD_CHUC MOV 22H,A ;LUU BCD_TRAM RET GIAIMA: MOV DPTR,#MA7DOAN MOV A,20H MOVC A,@A+DPTR MOV 30H,A ;LUU MA_DVI MOV A,21H MOVC A,@A+DPTR Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 14 MOV 31H,A ;LUU MA_CHUC MOV A,22H MOVC A,@A+DPTR MOV 32H,A ; LUU MA_TRAM RET HIENTHI_TT: MOV P0,30H MOV P1,31H MOV P2,32H RET Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 15 ĐIỀU KHIỂN LED 7 ĐOẠN DÙNG VDK CÁCH 2: DÙNG PHƯƠNG PHÁP QUÉT Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 16 CÁC ĐOẠN: A, B, C, D, E, F, G, DP NỐI SONG - SONG, QUA ĐIỆN TRỞ HẠN DÒNG NỐI VỚI PORT0. CÁC CHÂN ANODE CHUNG THÌ ĐIỀU KHIỂN BẰNG TRANSISTOR PNP, 8 LED NÊN DÙNG 8 TRANSISTOR. DÙNG PORT2 ĐIỀU KHIỂN 8 TRANS. CỰC B BẰNG 0 THÌ TRANS DẪN – CỰC B BẰNG 1 THÌ TRANS TẮT MỖI 1 THỜI ĐIỂM CHỈ CHO 1 TRANS DẪN. DÙNG 2 PORT 0 VÀ 2 ĐIỀU KHIỂN ĐƯỢC 8 LED 7 ĐOẠN ƯU ĐIỂM: TIẾT KIỆM TÍN HIỆU ĐIỀU KHIỂN KHUYẾT ĐIỂM: TỐN TRANSISTOR, CHƯƠNG TRÌNH ĐIỀU KHIỂN PHỨC TẠP – CHƯƠNG TRÌNH QUÉT 8 LED PHẢI THỰC HIỆN LIÊN TỤC THÌ LED MỚI SÁNG. BÀI SỐ 3-1: CTDK 1 LED 7 ĐOẠN SÁNG SỐ 0 – DÙNG P0, P2 VIẾT CHƯƠNG TRÌNH ;CHTR DK 1 LED 7 DOAN (L7D0) SANG SO 0 ORG 0H MOV P0,#0C0H ;GOI MA SO 0 MOV P2,#11111110B ;CHO 1 TRANSISTOR DAN JMP $ END THỬ ;CHTR DK 1 LED 7 DOAN (L7D1) SANG SO 0 ORG 0H MOV P0,#0C0H ;GOI MA SO 0 MOV P2,#11111101B ;CHO 1 TRANSISTOR DAN JMP $ END THỬ ;CHTR DK 1 LED 7 DOAN (L7D1) SANG SO 1 ORG 0H MOV P0,#0F9H ;GOI MA SO 1 MOV P2,#11111101B ;CHO 1 TRANSISTOR DAN JMP $ END Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 17 BÀI SỐ 3-2: CTDK 8 LED 7 ĐOẠN QUÉT SÁNG SỐ 0 ĐẾN SỐ 7 DÙNG P0, P2 VIẾT CHƯƠNG TRÌNH ;CHTR DK 8 LED 7 DOAN QUET SANG SO 0 DEN SO 7 ORG 0H LB: MOV P0,#0C0H ;0 MOV P2,#11111110B CALL DELAYX MOV P0,#0F9H ;1 MOV P2,#11111101B CALL DELAYX MOV P0,#0A4H ;2 MOV P2,#11111011B CALL DELAYX MOV P0,#0B0H ;3 MOV P2,#11110111B CALL DELAYX MOV P0,#099H ;4 MOV P2,#11101111B CALL DELAYX MOV P0,#092H ;5 MOV P2,#11011111B CALL DELAYX MOV P0,#082H ;6 MOV P2,#10111111B CALL DELAYX MOV P0,#0F8H ;7 MOV P2,#01111111B CALL DELAYX Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 18 JMP LB DELAYX: CALL DELAY1MS RET $INCLUDE(TV_DELAY.ASM) END CÁCH VIẾT TRÊN SỬ DỤNG HẾT 8LED – TA CÓ CÁCH THỨ 2 ;CHTR DK 8 LED 7 DOAN QUET SANG SO 0 DEN SO 7 ORG 0H LB: MOV P0,#0C0H ;0 CLR P2.0 ;TRANSISTOR T0 DAN CALL DELAYX SETB P2.0 ;TRANSISTOR T0 TAT MOV P0,#0F9H ;1 CLR P2.1 ;TRANSISTOR T1 DAN CALL DELAYX SETB P2.1 ;TRANSISTOR T1 TAT JMP LB DELAYX: CALL DELAY1MS RET $INCLUDE(TV_DELAY.ASM) END BÀI SỐ 3-3: CT ĐẾM GIÂY TỪ 00 ĐẾN 59 – HIỂN THỊ TRÊN 2 LED 7 ĐOẠN QUÉT LƯU ĐỒ ĐIỀU KHIỂN Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 19 BEGIN HEX(GIÂY) => BCD GIẢI MÃ 7 ĐOẠN DELAY – HIỂN THỊ GIÂY:= GIÂY +1 END GIAY=60 Đ S LƯU 10 MÃ VÀO BN GIÂY:=00 (HEX) VIẾT CHƯƠNG TRÌNH ;CHTR DK DEM GIAY GIAY EQU R1 ORG 0H MOV DPTR,#MA7DOAN LB: MOV GIAY,#00 LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD CALL GIAIMA ;CHUYEN SO BCD SANG MA 7 DOAN CALL DELAY_HTHI ;VUA DELAY VA VUA HIEN THI INC GIAY ;01H,02 CJNE GIAY,#60,LB1 JMP LB ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HEXTOBCD: MOV A,GIAY MOV B,#10 ;KHI BIEN DICH THANH 0000 1010B DIV AB ;(A)=BCD CHUC, (B)=BCD DONVI RET ;TRO LAI CH TR CHINH ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX GIAIMA: MOVC A,@A+DPTR ;GIAI MA HANG CHUC MOV 30H,A ;CAT TAM MA 7 DOAN CUA CHUC VAO 30H MOV A,B ;CHUYEN BCD DONVI SANG A MOVC A,@A+DPTR ;GIAI MA HANG DON VI MOV 31H,A RET Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 20 ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX DELAY_HTHI: MOV 78H,#200 DELHT: CALL HIENTHI DJNZ 78H,DELHT RET HIENTHI: MOV P0,30H CLR P2.0 CALL DELAY1MS SETB P2.0 MOV P0,31H CLR P2.1 CALL DELAY1MS SETB P2.1 RET $INCLUDE(TV_DELAY.ASM) MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END BÀI SỐ 3-3: CT ĐẾM TỪ 00 ĐẾN 99 – HIỂN THỊ TRÊN 2 LED 7 ĐOẠN QUÉT LƯU ĐỒ ĐIỀU KHIỂN BEGIN HEX(DEM) => BCD GIẢI MÃ 7 ĐOẠN DELAY – HIỂN THỊ DEM:= DEM +1 END DEM=100 Đ S LƯU 10 MÃ VÀO BN DEM:=00 (HEX) BEGIN DELAY DEM:=DEM+1 END DEM=100 Đ S LƯU 10 MÃ VÀO BN DEM:=0000 0000B HEX(DEM) => BCD BCD => MA7DOAN => LED VIẾT CHƯƠNG TRÌNH Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 21 ;CHTR DK DEM GIAY DEM EQU R1 ORG 0H MOV DPTR,#MA7DOAN LB: MOV DEM,#00 LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD CALL GIAIMA ;CHUYEN SO BCD SANG MA 7 DOAN CALL DELAY_HTHI ;VUA DELAY VA VUA HIEN THI INC DEM ;01H,02 CJNE DEM,#100,LB1 JMP LB ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX HEXTOBCD: MOV A,DEM MOV B,#10 ;KHI BIEN DICH THANH 0000 1010B DIV AB ;(A)=BCD CHUC, (B)=BCD DONVI RET ;TRO LAI CH TR CHINH GIAIMA: MOVC A,@A+DPTR ;GIAI MA HANG CHUC MOV 31H,A ;CAT TAM MA 7 DOAN CUA CHUC VAO 36H MOV A,B ;CHUYEN BCD DONVI SANG A MOVC A,@A+DPTR ;GIAI MA HANG DON VI MOV 30H,A RET DELAY_HTHI: MOV 78H,#200 DELHT: CALL HIENTHI DJNZ 78H,DELHT RET HIENTHI: MOV P0,30H CLR P2.0 CALL DELAY1MS SETB P2.0 MOV P0,31H CLR P2.1 CALL DELAY1MS SETB P2.1 RET $INCLUDE(TV_DELAY.ASM) Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 22 MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END GIẢI THÍCH CHƯƠNG TRÌNH CON DELAY: - MỖI LỆNH CẦN 1 HOẶC 2 CHU KỲ MÁY ĐỂ THỰC HIỆN – CHO 1 CHU KỲ MÁY LÀ 1µS NẾU SỬ DỤNG THẠCH ANH 12MHZ. - MUỐN DELAY 1MS = 1000µS – CHO VI ĐIỀU KHIỂN THỰC HIỆN 1000 LỆNH NÀO ĐÓ – MỖI LỆNH 1 CHU KỲ. - VÍ DỤ LỆNH NOP NOP ;THỨ 1 NOP ;THỨ 2 NOP ;THỨ 1000 CÁCH VIẾT DÙNG VÒNG LẶP: DELAY204µS: MOV 70H,#100 ;2T DJNZ 70H,$ ;2T × 100 RET ;2T DELAY500µS: MOV 70H,#248 ;2T DJNZ 70H,$ ;2T × 248 RET ;2T DELAY1000µS: MOV 70H,#249 ;2T XX: NOP ;1T NOP ;1T DJNZ 70H,XX ;(1T + 1T + 2T) × 249 RET ;2T 1. Lệnh chuyển dữ liệu vào ô nhớ trực tiếp : Cú pháp : MOV direct, #data Mã lệnh : 0 1 1 1 0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 d7 d6 d5 d4 d3 d2 d1 d0 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 23 Chức năng: Nạp dữ liệu data 8 bit (d0 đến d7) vào ô nhớ có địa chỉ direct. 2. Lệnh giảm ô nhớ trực tiếp và nhảy : Cú pháp : DJNZ direct, rel Mã lệnh : 1 1 0 1 0 1 0 1 a7 a6 a5 a4 a3 a2 a1 a0 r7 r6 r5 r4 r3 r2 r1 r0 Lệnh này chiếm 3 byte và thời gian thực hiện lệnh là 2 chu kỳ máy Chức năng: Nếu nội dung của ô nhớ có địa chỉ direct giảm đi 1 và nếu kết quả sau khi giảm khác 0 thì vi điều khiển sẽ thực hiện chương trình tại địa chỉ rel, ngược lại nếu kết quả bằng 0 thì vi điều khiển sẽ tiếp tục thực hiện lệnh kế. 3. Lệnh trở về từ chương trình con : Cú pháp : RET Mã lệnh : 0 0 1 0 0 0 1 0 Lệnh này chiếm 1 byte và thời gian thực hiện lệnh là 2 chu kỳ máy Chức năng: Lệnh này sẽ kết thúc chương trình con, vi điều khiển sẽ trở lại chương trình chính để tiếp tục thực hiện chương trình. DELAY 0.1S = 100MS = 100,000 µS = 500µS × 200 DELAY100MS: MOV 71H,#200 ;2T DEL: CALL 500µS ;(2T + 500T)×200 DJNZ 71H,DEL ;2T×200 RET ;2T TTG = (2T+2T) + (2T+500T)×200 + 2T×200 = 100,804 µS - SAI SỐ 804 µS ĐIỀU CHỈNH: DELAY100MS: MOV 71H,#198 ;2T DEL: CALL 500 µS ;(2T + 500T)×198 DJNZ 71H,DEL ;2T×198 RET ;2T TTG = (2T+2T) + (2T+500T)×198 + 2T×198 = 99,796 µS - SAI SỐ THIẾU 204µS THIẾU THÌ THÊM DELAY100MS: MOV 71H,#198 ;2T DEL: CALL 500 µS ;(2T + 500T)×198 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 24 DJNZ 71H,DEL ;2T×198 MOV 72H,#101 ;2T DJNZ 72H,$ ;2T×101= 202T RET ;2T VIẾT LẠI CHƯƠNG TRÌNH ĐỂ DỄ ĐIỀU CHỈNH: DELAY100MS: MOV 71H,#X ;2T DEL: MOV 70H,#Y ;2T × X DJNZ 70H,$ ;2T×Y × X DJNZ 71H,DEL ;2T × X RET ;2T TTG = (2T+2T) + (2T+2T + 2T×Y) ×X = 100,000 µS - SAI SỐ CHỌN X=250 THÌ (2T+2T + 2T×Y)= (100,000 – 4)/250 = 399,98 CHỌN KẾT QUẢ LÀ 399 THÌ (2T+2T + 2T×Y)= 399 THIẾU (99996-99750) THIẾU 246 TÍNH Y: Y= (399 – 4)/2 = 197,5 CHỌN 197 THIẾU THÊM 1T TỔNG THỜI GIAN THIẾU LÀ 247 µS DELAY100MS: MOV 71H,#250 ;2T DEL: MOV 70H,#197 ;2T × X DJNZ 70H,$ ;2T×Y × X DJNZ 71H,DEL ;2T × X MOV 72H,#122 ;2T DJNZ 72H,$ ;2T×122= 244T NOP ;1T RET ;2T DELAY500µS: MOV 70H,#245 ;2T DJNZ 70H,$ ;2T × 248 RET ;2T Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 25 TẠI SAO CHƯƠNG TRÌNH CON HIENTHI LẠI CHÈN TRONG CHƯƠNG TRÌNH DELAY? DO CHƯƠNG TRÌNH HIỂN THỊ DÙNG PHƯƠNG PHÁP QUÉT, NÊN PHẢI QUÉT LED LIÊN TỤC, NẾU NGỪNG QUÉT THÌ LED SẼ TẮT, HOẶC NẾU 1 CHƯƠNG TRÌNH NÀO ĐÓ THỰC HIỆN CHIẾM NHIỀU THỜI GIAN THÌ CŨNG LÀM LED TẮT. TRONG CHƯƠNG TRÌNH TRÊN THÌ CHƯƠNG TRÌNH CON DELAY SẼ CHIẾM NHIỀU THỜI GIAN THỰC HIỆN, NÊN PHẢI CHÈN HIỂN THỊ VÀO CHƯƠNG TRÌNH CON DELAY. BÀI SỐ 3-4: CT ĐẾM TỪ 000 ĐẾN 150 ;CHTR DEM TU 000 DEN 150 GIAY EQU R2 ORG 0H MOV DPTR,#MA7DOAN LB: MOV GIAY,#00H LB1: CALL HEXTOBCD_GIAIMA CALL DELAY_HIENTHI INC GIAY CJNE GIAY,#151,LB1 JMP LB ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HEXTOBCD_GIAIMA: MOV A,GIAY MOV B,#10 DIV AB ; MOV 20H,B ;(27H)=DVI MOV B,#10 DIV AB ;(B)=CHUC, (A)=TRAM MOVC A,@A+DPTR ;LAY TRAM MOV 32H,A ;CAT VAO ON 32H MOV A,B ; MOVC A,@A+DPTR ;LAY CHUC MOV 31H,A ;CAT VAO ON 31H Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 26 MOV A,20H ; MOVC A,@A+DPTR ;LAY DVI MOV 30H,A ;CAT VAO ON 30H RET ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DELAY_HIENTHI: MOV 7AH,#0100 DEL_HT: CALL HIENTHI DJNZ 7AH,DEL_HT RET ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx HIENTHI: MOV P0,30H ;MA DVI GIAY CLR P2.0 CALL DELAY1MS SETB P2.0 MOV P0,31H ;MA CHUC GIAY CLR P2.1 CALL DELAY1MS SETB P2.1 MOV P0,32H ;MA CHUC GIAY CLR P2.2 CALL DELAY1MS SETB P2.2 RET MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H $INCLUDE(TV_DELAY.ASM) END BÀI SỐ 3-4: CT ĐẾM PHÚT GIÂY – DÙNG PORT 0, 1 LƯU ĐỒ ĐIỀU KHIỂN Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 27 BEGIN HEX(PHÚT GIÂY) => BCD GIẢI MÃ 7 ĐOẠN DELAY – HIỂN THỊ GIÂY:= GIÂY +1 GIAY=60 Đ S LƯU 10 MÃ VÀO BN GIÂY:=00 (HEX) PHÚT := 00 (HEX) END PHÚT :=PHÚT +1 PHÚT=60 Đ S VIẾT CHƯƠNG TRÌNH ;CHTR DK DEM PHUT GIAY PHUT EQU R2 GIAY EQU R1 ORG 0H MOV DPTR,#MA7DOAN LB: MOV PHUT,#00 LB2: MOV GIAY,#00 LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD CALL GIAIMA CALL DELAY_HTHI INC GIAY CJNE GIAY,#60,LB1 INC PHUT CJNE PHUT,#60,LB2 JMP LB Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 28 HEXTOBCD: MOV A,GIAY MOV B,#10 DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY MOV 20H,B MOV 21H,A MOV A,PHUT MOV B,#10 DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT MOV 23H,B MOV 24H,A RET GIAIMA: MOV A,20H MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY MOV 30H,A ;(37H) LUU MA7DOAN DVI GIAY MOV A,21H MOVC A,@A+DPTR ;CHUC GIAY MOV 31H,A ;(36H) LUU MA7DOAN CHUC GIAY MOV A,23H MOVC A,@A+DPTR ;DON VI PHUT MOV 33H,A ;(35H) LUU MA7DOAN DVI PHUT MOV A,24H MOVC A,@A+DPTR ;CHUC PHUT MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT RET DELAY_HTHI: MOV 78H,#100 DELHT: CALL HIENTHI DJNZ 78H,DELHT RET HIENTHI: MOV P0,30H ;HTHI DV GIAY CLR P2.0 CALL DELAY1MS Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 29 SETB P2.0 MOV P0,31H ;HTHI CHUC GIAY CLR P2.1 CALL DELAY1MS SETB P2.1 MOV P0,33H ;HTHI DV PHUT CLR P2.3 CALL DELAY1MS SETB P2.3 MOV P0,34H ;HTHI CHUC PHUT CLR P2.4 CALL DELAY1MS SETB P2.4 RET $INCLUDE(TV_DELAY.ASM) MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END BÀI SỐ 3-5: CT ĐẾM GIỜ PHÚT GIÂY – DÙNG PORT 0, 1 LƯU ĐỒ ĐIỀU KHIỂN Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 30 BEGIN HEX(PHÚT GIÂY) => BCD GIẢI MÃ 7 ĐOẠN DELAY – HIỂN THỊ GIÂY:= GIÂY +1 GIAY=60 Đ S LƯU 10 MÃ VÀO BN GIÂY:=00 (HEX) PHÚT := 00 (HEX) END PHÚT :=PHÚT +1 PHÚT=60 Đ S VIẾT CHƯƠNG TRÌNH ;CHTR DK DEM PHUT GIAY GIO EQU R3 PHUT EQU R2 GIAY EQU R1 ORG 0H MOV DPTR,#MA7DOAN LB: MOV GIO,#10 LB3: MOV PHUT,#01 LB2: MOV GIAY,#00 LB1: CALL HEXTOBCD ;CHUYEN HEX SANG SO BCD CALL GIAIMA CALL DELAY_HTHI INC GIAY CJNE GIAY,#60,LB1 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 31 INC PHUT CJNE PHUT,#60,LB2 INC GIO CJNE GIO,#24,LB3 JMP LB HEXTOBCD: MOV A,GIAY MOV B,#10 DIV AB ;(A)=CHUC GIAY, (B)=DONVI GIAY MOV 20H,B MOV 21H,A MOV A,PHUT MOV B,#10 DIV AB ;(A)=CHUC PHUT, (B)=DONVI PHUT MOV 23H,B MOV 24H,A MOV A,GIO MOV B,#10 DIV AB ;(A)=CHUC GIO, (B)=DONVI GIO MOV 26H,B MOV 27H,A RET GIAIMA: MOV A,20H MOVC A,@A+DPTR ;GIAI MA HANG DON VI GIAY MOV 30H,A ;(37H) LUU MA7DOAN DVI GIAY MOV A,21H MOVC A,@A+DPTR ;CHUC GIAY MOV 31H,A ;(36H) LUU MA7DOAN CHUC GIAY MOV A,23H MOVC A,@A+DPTR ;DON VI PHUT MOV 33H,A ;(35H) LUU MA7DOAN DVI PHUT MOV A,24H MOVC A,@A+DPTR ;CHUC PHUT Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 32 MOV 34H,A ;(34H) LUU MA7DOAN CHUC PHUT MOV A,26H MOVC A,@A+DPTR ;DON VI PHUT MOV 36H,A ;(35H) LUU MA7DOAN DVI PHUT MOV A,27H MOVC A,@A+DPTR ;CHUC PHUT MOV 37H,A ;(34H) LUU MA7DOAN CHUC PHUT RET DELAY_HTHI: MOV 78H,#100 DELHT: CALL HIENTHI DJNZ 78H,DELHT RET HIENTHI: MOV P0,30H ;HTHI DV GIAY CLR P2.0 CALL DELAY1MS SETB P2.0 MOV P0,31H ;HTHI CHUC GIAY CLR P2.1 CALL DELAY1MS SETB P2.1 MOV P0,33H ;HTHI DV PHUT CLR P2.3 CALL DELAY1MS SETB P2.3 MOV P0,34H ;HTHI CHUC PHUT CLR P2.4 CALL DELAY1MS SETB P2.4 MOV P0,36H ;HTHI CHUC PHUT CLR P2.6 Đại học sư phạm kỹ thuật tp HCM khoa điện – điện tử Nguyễn Đình Phú Bộ môn điện tử công nghiệp bài giảng vi điều khiển: giao tiếp led 7 đoạn 33 CALL DELAY1MS SETB P2.6 MOV P0,37H ;HTHI CHUC PHUT CLR P2.7 CALL DELAY1MS SETB P2.7 RET $INCLUDE(TV_DELAY.ASM) MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H END CÁCH 1: GIAO TIẾP DÙNG THANH GHI DỊCH MỖI IC THANH GHI DỊCH ĐIỀU KHIỂN 1 LED 7 ĐOẠN
File đính kèm:
- bai_giang_vi_dieu_khien_giao_tiep_led_7_doan_nguyen_dinh_phu.pdf