BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP HUẾ KHOA: ĐIỂN TỦ VIỄN THÔNG BÀI TIỂU LUẬN MÔN : THỰC HÀNH VI XỬ LÝ Giáo viên hướng dẫn: Sinh viên thực hiện: Hoàng Lê Vinh Hưng Lớp 11CDDV02 Huế, ngày 21-10-2013 Bài 1: Vẽ mạch mô phỏng trên Proteus và viết chương trình trên Keil C hiện thị phút giây trên LED 7 đoạn đúng với thời gian thực. Mạch. Mô phỏng vi xử lý hiển thị phút giây trên LED 7 đoạn trong Proteus. D1 D2 D3 D5 D6 D7 B1 B2 B3 B4 B5 B7 A1 A2 A3 A4 A5 A6 A7 C1 C2 C3 C5 C6 C7 B6 A1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 B6 B7 C1 C2 C3 C4C4 C5 C6 C7 D2 D5 D6 D7 D1 D4 D3 D4 C4 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/W R 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C52 R2 220 R3 220 R4 220 R6 220 R7 220 R8 220 R10 220 R11 220 R12 220 R14 220 R15 220 R16 220 R18 220 R19 220 R20 220 R21 220 R22 220 R23 220 R24 220 R26 220 R27 220 R28 220 R29 220 R30 220 R31 220 R32 220 R1 220 R5 220 Chương trình:Hiển thị phút giây trên LED 7 đoạn đúng với thời gian thực trên Keil C. #include <REGX51.H> #include<stdio.h> unsigned char mang[10]={64,121,36,48,25,18,2,120,0,16}; void delay(int t) { unsigned long int i; for(i=0;i<t;i++); } void main() { char dem,SauGiay,TruocGiay,SauPhut,TruocPhut, dem1; dem1=0; dem=0; while(1) { TruocPhut=dem1/10; SauPhut=dem1%10; TruocGiay=dem/10; SauGiay=dem%10; P0=mang[TruocPhut]; P1=mang[SauPhut]; P2=mang[TruocGiay]; P3=mang[SauGiay]; if(++dem==60) { dem=0; if(++dem1==60) dem1=0; if(dem >= 59) SauPhut++; } if(SauPhut==9) { TruocPhut++; SauPhut=0; } delay(8000); } } Bài 2 : Thiết kế mạch mô phỏng trên Proteus và viết chương trình cho LCD hiển thị giờ phút giây đúng với thời gian thực trên Keil C . Mạch: Vi xử lý nối với LCD hiển thị giờ phút giây trên Proteus. XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD1 LM032L R1 220 1 220 2 220 3 220 4 220 5 220 6 220 7 220 Chương trình: Hiển thị giờ phút giây trên LCD đúng với thời gian thực trên Keil C. #include <REGX52.H> #include <stdio.H> #include <string.H> #define dulieu P3 sbit RS=P2^0; sbit RW=P2^1; sbit EN=P2^2; unsigned char maled[]={'0','1','2','3','4','5','6','7','8','9'}; unsigned char a[10]; int i=0; int dem=0,dem1=0,giay=0,giay1=0,phut=0,phut1=0; void delay(int t) { unsigned long int i; for(i=0;i<t;i++); } void ghilenh(unsigned char c) { RS=0; RW=0; dulieu=c; EN=0;delay(10); EN=1;delay(10); EN=0;delay(10); } void ghidulieu(unsigned char c) { RS=1; RW=0; dulieu=c; EN=0;delay(10); EN=1;delay(10); EN=0;delay(10); } void chuoi(unsigned char *s) { while(*s ) { ghidulieu(*s++); } } void khoidonglcd() { ghilenh(0x38); ghilenh(0x0c); ghilenh(0x01); } void hienthi() { while(1) { if(++dem==60) { dem=0; if(++dem1==60) { dem1=0; if(++giay==60) { giay=0; } } } delay(15000); ghilenh(0xc0); chuoi("Bay Gio La:"); a[0]=maled[giay/10]; a[1]=maled[giay%10]; a[2]=maled[dem1/10]; a[3]=maled[dem1%10]; a[4]=maled[dem/10]; a[5]=maled[dem%10]; chuoi(a); } } void main() { khoidonglcd(); ghilenh(0x80); chuoi("ThucHanh ViDieuKhien"); hienthi(); } Câu 3: Thiết kế mạch mô phỏng trên Proteus và viết chương trình trên Keil C làm máy tính bỏ túi hiển thị trên LCD. Mạch: Mô phỏng mạch máy tính bỏ túi trên Proteus. . TỦ VI N THÔNG BÀI TIỂU LUẬN MÔN : THỰC HÀNH VI XỬ LÝ Giáo vi n hướng dẫn: Sinh vi n thực hiện: Hoàng Lê Vinh Hưng Lớp 11CDDV02 Huế, ngày 21-10-2013 Bài 1: Vẽ mạch mô phỏng trên Proteus và vi t. SauPhut=0; } delay(8000); } } Bài 2 : Thiết kế mạch mô phỏng trên Proteus và vi t chương trình cho LCD hiển thị giờ phút giây đúng với thời gian thực trên Keil C . Mạch: Vi xử lý nối với LCD hiển thị. vi t chương trình trên Keil C hiện thị phút giây trên LED 7 đoạn đúng với thời gian thực. Mạch. Mô phỏng vi xử lý hiển thị phút giây trên LED 7 đoạn trong Proteus. D1 D2 D3 D5 D6 D7 B1 B2 B3 B4 B5 B7 A1 A2 A3 A4 A5 A6 A7 C1 C2 C3 C5 C6 C7 B6 A1 A2 A3 A4 A5 A6 A7 B1 B2 B3 B4 B5 B6 B7 C1 C2 C3 C4C4 C5 C6 C7 D2 D5 D6 D7 D1 D4 D3 D4 C4 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/W