You are on page 1of 6

l

D~I HQC BAcH KHOA TP. HCM BM CO DI~N nJ - KHOA CO KHi

DETHIGIUAKY THaI GIAN: 60 PHUT MON: '\Ji X\J'l--{

(sinh vien ilU'{lctham khiio tui lifU) Cho sa db mach (trang sau), sinh vien thirc hien cac yeu cftu sau: 1. Cho bi~t nQi dung th\fc hifn cua do~n chmrng trinh sau: #inc1ude<regSl.h> data unsigned char CODE[10] = {OxcO,Oxf9 ,Oxa4,OXBO,OX99,OX92,OX82,OXF8,OX80,OX90}; data unsigned char LEDl, LED2, LED3, LED4, Time; at Oxb2 sbit Ql;IIP3.2 at Oxb3 sbit Q2;IIP3.3 at Oxb4 sbit Q3;IIP3.4 at OxbS sbit Q4;//P3.S void delayt) { unsigned char i; for (i = 0; i < SO; i++) _nop_O; } void Ngat(void) interrupt 1 using 1 { THO = -1000»8; TLO = -1000; P2 = CODE[LEDl]; Ql = 1; delayt); Ql =0; P2 = CODE[LED2]; Q2= 1;

delayt);
Q2=0; P2 = CODE[LED3]; Q3 = 1; delayt); Q3 =0; P2 = CODE[LED4]; Q4 = 1; delayt); Q4=0; if (Time> 0) Time--; } ~============================================================= void maim) { data unsigned char up, down; TMOD=OXll;

11-----------------------

THO = -1000»8; TLO = -1000; TRO =1; EA= 1; ETO = 1; LED1 = 1; LED2=2; LED3 = 3; LED4 = 4; up=O; down = 50; for ( ; ; ) { LED1 = up/1 0; LED2 = up % 10; LED3 = down/l 0; LED4 = down % 10; Time = 250; while(Time > 0); up++; up =up % 58; if (down > 0) down--; else down = 50; } }

2. Vi~t chuong trinh th1}'chi~n:


Nhc1nSW1: led sang dAn tu D1 d~n D8 30 lfrn d6ng thoi hi~n thi s6 IAntang dfrn tren led 3 vilA

Nhan SW2: led t~t dfrn tu D1 d~n D8 100 lfrn d6ng thai hien thi s6 IAngiam dfrn tren led 2,3,4 - Nhc1nSW3: dung qua trinh dang thuc hien d6ng thai hien thi chit "STOP" tren 4 led (thai gian delay khi dich led don la 741ms, dung timer 0, mode 1; dung ngat timer 1 d~ quet led)

VCC
(

Dl D2 D3
.... 1// 111"'"1 1IIoJ// "-1 "'1// 111"'"1

Rl ../'v R2 R3
vv

D4
.... 1// ,...1

R4 ./V'J R5 R6

D5
"'1// ,...1

D6
"'1// 111"'"1

~
R7 R8 ../"v

D7
"'1// 111"'"1

D8
"'1// 111"'"1

~r;;(J/ADO37 PO.lIAD1 36 PO.2IAD2 35 PO.3IAD3 34 PO.4IAD4 33 PO.5IADS 32 PO.GIAD6 PO.7IAD7 SWl 1 ,,'vv2 2 Pl.0 '§'!i3 3 Pl.1 Pl.:!. Pl.3 Pl.4 ~ Pl.!; Pl.G n---L Pl.-r

Ul

"T89C51 P2.01A8 P2.11A9 P2.2IA10 P2.31All P2.41A12 P2.51A13 P2.61A14 P2.71A15 21 22 23 24 25 26 27 28

R14 R15

. 51
;3

LEDl 7 6 4 2 1 9 10 5

r-,

LED2 51 S2 S4 S5 S7 S8
~3

LED3 51 1'\ ..~2 ~4 _§5 "- ~6 r-, ~r


~3

4 _::S I" !Y'


;0
v

R../'v R R LEDl LI::L 2 LE[ 3 LE[ 4 LEDl

!~ ;0
9~ Pu

r-,
1'\

11'\-

"- ss

o
CD

7 6 4 2 1 9 10 5

LED4 51 S2 53 S4 S5 56 S7 S8 7 6 4 2 1 9 10 5

:~ ;0
9~
p

uo
CD

" -"tl

7 6 4 2 1 9 10 5

!~ ~n
-

1'\ 1'\
" r-, '"

9~

!~ ;0
p

o
CD

9~

g:t
19 18 31 9 R13

P3.0IRXD ~ P3.1LJ:m. ~ 12 P3.2Illi.IO. 13 P3.3I1NTl 14 P3.4ITO 15 P3.5lI1 P3.61'lllB. ~ P3.7IRD

uo
CD

'"
R9
vA-

'"
Rl0 ./V'

'"
Rll

'"
R12

f-1l-.o

1-- 01

LED2

02

LED3

./V'

24MHZ

I'::!:_I
L

Yl VCC Cl

vcc~(
5Wl

I
5Wl 5W2

EAJIIPP
R5l

XTALl XTAL2

ALEIffi..QG ~ P5EN ~ V~C

1-- 03

LED4

A../'v

04

vAy

III'

D9 Jl SW3 CON2 >=lA

VCC

'"

I" "","F/251'
-

C4

nAp ANnE

THIGIUAKY

1. Chuong trinh thirc hien hi~n thi cac s6 tang d<1ntir 00 d~n 57 tren 2 led 7 doan 1 va 2 d<)ng thoi hi~n thj giam d<1ntir 50 d~n 00 tren 2 led 7 doan 3 va 4; thai gian delay khi tang/ giam 1 dun vi la 250ms; dung ng~t timer 0 d~ quet led; chu ki quet la 1ms 2. Chuong trinh tham khao: #include<reg51.h> data unsigned char CODE[14] = {OxcO,Oxf9,Oxa4,OXBO,OX99, OX92, OX82, OXF8,OX80, OX90, Oxff,Ox87, Oxa3,Ox8c}; data unsigned char a[9] = {Oxff,Oxfe,Oxfc,Oxf8,Oxft),OxeO,OxcO,Ox80,OxOO}; data unsigned char b[9] = {OxOO,Ox01,Ox03,Ox07,OxOf,Oxlf,Ox3f,Ox7f,Oxff}; data unsigned char LED1, LED2, LED3, LED4; data unsigned char Mode, Cnt, Tmp,m; at Oxb2 sbit Ql;//P3.2 at Oxb3 sbit Q2;//P3.3 at Oxb4 sbit Q3;//P3.4 at Oxb5 sbit Q4;//P3.5 at Ox90 sbit SW1; at Ox91 sbit SW2; at Ox92 sbit SW3; void DelayO
{

data unsigned char k; for (k = 0; k< 100; k++)


{

THO = - 7410»8; TLO = -7410; TRO = 1;// mo xung clock TFO = 0; while(!TFO);
} }

void dlt)
{

data unsigned char i; for (i = 0; i < 50; i++) _nop_O;


}

void QL(void) interrupt 3 using 0


{

-1000»8; -1000; P2 = CODE[LED1]; QI = 1;


=

THI

TLI

dlt);

Ql = 0; P2 = CODE[LED2]; Q2 = 1; dIO;

Q2=0;
I

pi = CODE[LED3]; Q3 = I;
dlt); Q3 =0; P2 = CODE[LED4]; Q4= 1;

dlt);
Q4=0; } ~============================================================ void rnaint)
{

.,

TMOD = OX II ;11 timer I, mode 1, timer 0 mode 1 THI = -1000»8; TLl = -1000; Illms EA = 1;11 co su dung ngat ETI = 1;. TRI = 1; Cnt = 0; LEDI = 10; LED2 = 10; LED3 = 10; LED4 = 10; while(l) { if(!SWl) {m=O; Mode = I;Cnt=O;} if(!SW2) {m = 0; Mode = 2; Cnt = 100;} if(!SW3) Mode = 3; switch(Mode) { case I: { m++; if (m==9) { m=O; Cnt++; if (Cnt == 30) Mode = 0; } LEDI = 10; LED2 = 10; LED3 = Cnt/l 0; LED4 = Cnt % 10; Tmp = arm]; break;
}

case 2:{ m++; if (m==9) {

LEDI LED2 LED3 LED4

m=O; Cnt--; if (Cnt == 0) Mode = 0; } = 10; = CntIlOO; = (Cntll0)%10; = Cnt % 10;

Tmp
} case 3:{

b[m];

break;

LEDI LED2 LED3 LED4 break; }

= =

= =

5; 11; 12; 13;

PO = Tmp;
DeIayO; }

.,

You might also like