Tải bản đầy đủ (.docx) (10 trang)

BÀI TIỂU LUẬN- MÔN- THỰC HÀNH VI XỬ LÝ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (160.12 KB, 10 trang )

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.

×