B NG TH NG ƯƠ C NG A 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 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, kng đ c trao đ i tài li uượ ượ )
I. LÝ THUY T (6 đi m): L p trình v i ASM
u 1: (4.0 đi m)
a. Vi t ch ng trình t o xung vuông, tu n hoàn 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 = 150S, TL = 2500 µS .
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.I T P (4 đi m): Sinh viên t ch n ngôn ng đ l p trình (ASM ho c CCS)
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.
u 4: (2.0 đi m)
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:
u 3 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= 110110102 .
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õo: Tác đ ng lênc 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)
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)
{}}
}}