
B CÔNG TH NGỘ ƯƠ C NG HÒA XÃ H I CH NGHĨA VI TỘ Ộ Ủ Ệ
NAM
TR NG CĐKT CAO TH NGƯỜ Ắ Đ c l p - T do - H nh phúcộ ậ ự ạ
---- ----
Đ THI LÝ THUY TỀ Ế
B C ĐÀO T O: CĐẬ Ạ
H C KỲ: ỌIII NĂM H C: Ọ2013- 2014
MÔN H C: ỌVI X LÝỬ
L p: CĐ ĐTTT 12 A,B ớNgày thi: 26 / 12 / 2013
Th i gian thi: 100 phút ờ
(Sinh viên đ c tham kh o tài li u, không đ c trao đ i tài li uượ ả ệ ượ ổ ệ )
I. LÝ THUY T (6 đi m):Ế ể L p trình v i ASMậ ớ
Câu 1: (4.0 đi m)ể
a. Vi t ch ng trình t o xung vuông, tu n hoàn có t n s f=20Hz t i chân RA0, t o tr dùngế ươ ạ ầ ầ ố ạ ạ ễ
Timer0
b. Vi t ch ng trình (dùng PWM) xu t đ ng th i 2 xung nh sau:ế ươ ấ ồ ờ ư
- T i RC2: TH = 3500µS, TL = 500 µS . ạ
- T i RC1: TH = 1500µS, TL = 2500 µS .ạ
Câu 2: (2.0 đi m)ể
Vi t ch ng trình ki m tra đi n áp t i RE0, n u đi n áp t i RE0 ≥3.5V thì xu t tín hi u m cế ươ ể ệ ạ ế ệ ạ ấ ệ ứ
cao t i chân RB0, ng c l i RB0 m c th p. ạ ượ ạ ứ ấ
II. BÀI T P (4 đi m):Ậ ể Sinh viên t ch n ngôn ng đ l p trình (ASM ho c CCS)ự ọ ữ ể ậ ặ
Câu 3: (2.0 đi m)ể
Vi t ch ng trình hi n th s "1452" lên 4 led 7 đo n lo i K chung. Dùng ph ng pháp quét, t nế ươ ể ị ố ạ ạ ươ ầ
s quét led f = 50Hz.ố
Câu 4: (2.0 đi m)ể
Dùng VXL thi t k m ch sau: Ban đ u đ ng c đ ng yên.ế ế ạ ầ ộ ơ ứ
- Nh n nút N1: Cho phép đ ng c ch y thu n (cùng chi u kim đ ng h ). ấ ộ ơ ạ ậ ề ồ ồ
- Nh n nút N2: Cho phép đ ng c ch y nghichấ ộ ơ ạ
- Nh n nút N3: Đ ng c ng ng ho t đ ngấ ộ ơ ừ ạ ộ
Chú thích:
Câu 3 và câu 4 sinh viên t thi t k , v hình, ghi rõ s đ chân k t n i.ự ế ế ẽ ơ ồ ế ố
Tp.H Chí Minh, ngày tháng năm 2013ồ
KHOA ĐTTH
GV ra đề
Nguy n Tr ng Khanhễ ọ

Đáp án
Caâu 1: (4.0 ñieåm)
a. f=20Hz
T=1/f =50ms
Td = T/2 =25ms
C u trúc ch ng trình:ấ ươ
MAIN
BSF PORTA,0
CALL DELAY
BCF PORTA,0
CALL DELAY
GOTO MAIN
DELAY
.
.(T o tr 25ms)ạ ễ
.
RETURN
b.
T=T H + TL = 4000 µS => Đ t cho ặ PR2=250
TH1 = 3500 => a1= 11011010112 => Đ t cho CCP1CON= 11011010ặ2 .
TH2 = 1500 => a2= 01011101112 => Đ t cho CCP1CON= ặ 010111012 .
Chia t n 1:16 cho Timer2 và cho phép Timer2 ho t đông.ầ ạ
Cho phép PWM ho t đôngạ
Caâu 2: (2.5 ñieåm)
Ch ng trình chính ki m tra tín hi u Analog đ c v t RE0ươ ể ệ ọ ề ừ
MAIN
CALL ANALOG
MOVLW D’178 ‘
SUBWF ADRESH,0
BTFSS STATUS,0
GOTO OFF
BSF PORTB,0
GOTO MAIN
OFF
BCF PORTB,0
GOTO MAIN
Ch ng trình con đ c Analogươ ọ
Ch n s ngõ vào: Tác đ ng lên các bit <3>, <2>,<1>, <0> :ADCON1=1001ọ ố ộ
Ch n ngõ vào: Tác đ ng lên các bit <5>, <4>,<3>,:ADCON0=101ọ ộ
Ch n n i l u k t qu : Tác đ ng lên bit <7>:ADCON1=0ọ ơ ư ế ả ộ
Cho phép b chuy n đ i ADC ho t đ ng: Tác đ ng lên các bit <2>, <0> :ADCON0=11ộ ể ổ ạ ộ ộ
Chuy n đ i xong ch a? Ki m tra <2>:ADCCON0=0?ể ổ ư ể

Caâu 3: (2.0 ñieåm)
Bus d li u n i v i portb (Led a,b,...h n i t ng ng RB0,RB1...RB7)ữ ệ ố ớ ố ươ ứ
porta đi u khi n ch n led (RA0,..RA3 n i t ng ng đ n vi,..ngàn), tích c c m c caoề ể ọ ố ươ ứ ơ ự ứ
#include <16f877a.h>
#fuses nowdt,noprotect,nolvp,xt,put
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#byte porta=0x05
#byte portb=0x06
void main( )
{ set_tris_a(0b00000);
set_tris_b(0);
while (1)
{ porta=0b1000;portb=0b0000 0110;delay_ms(3);
porta=0b0100;portb=0b0110 0110;delay_ms(3);
porta=0b0010;portb=0b0110 1101;delay_ms(3);
porta=0b0001;portb=0b0101 1011;delay_ms(3);
}}
Caâu 4: (3.0 ñieåm)
Nút nh n tích c c m c th pấ ự ứ ấ
- N1: Rb0
- N2: Rb1
- N3: Rb2.
Đi u khi n đ ng c qua c u H nh sau:ề ể ộ ơ ầ ư
- RA1 RA0 =00: Ng ngừ
- RA1 RA0 =01: thu nậ
- RA1 RA0 =10: Ngh chị
#include <16F877a.h>
#fuses nowdt,noprotect,nolvp,xt,put
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(a)
#bit RA0=0X05.0
#bit RA1=0X05.1
#bit RB0=0X06.0
#bit RB1=0X06.1
#bit RB2=0X06.2
Void main ()
{ set_tris_a(0b00);
set_tris_b(0b111);

while (1)
{if (rb0==0)
{ra0=ra1=0;
while (rb0==0)
{}}
if (rb1==0)
{ra0=0; ra1=1;
while (rb1==0)
{}}
if (rb2==0)
{ra0=1; ra1=0;
while (rb2==0)
{}}
}}

