Uploaded by Truong Van Kha

Dap an De thi mon VXL - HK 1 - 16-17 - ver 2

advertisement
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
-------------------------
ĐÁP ÁN CUỐI KỲ HỌC KỲ 1 - NĂM HỌC 2016-2017
Môn: VI XỬ LÝ
Mã môn học: MICR330363
Đề số/Mã đề: 01
Đề thi có: 02 trang
Thời gian: 90 phút.
Sinh viên chỉ được tham khảo một tờ giấy A4 viết tay
Câu 1: (3 điểm)
//KHAI BAO THU VIEN
#INCLUDE <TV_16F887.C>
//DINH NGHIA - NUT NHAN
#DEFINE PHIM_0 PIN_E0
#DEFINE PHIM_50 PIN_E1
#DEFINE PHIM_100 PIN_E2
//KHAI BAO BIEN
//VIET HAM CON
VOID KT_PHIM_0()
{
IF(INPUT(PHIM_0) == 0)
{
SET_PWM1_DUTY(0);
}
}
VOID KT_PHIM_50()
{
IF(INPUT(PHIM_50) == 0)
{
SET_PWM1_DUTY((INT16)250);
}
}
VOID KT_PHIM_100()
{
IF(INPUT(PHIM_100) == 0)
{
SET_PWM1_DUTY((INT16)500);
}
}
//VIET HAM CHINH
VOID MAIN()
{
//KHOI TAO BAN DAU
SET_TRIS_E(0X07);
//KHOI TAO PWM
SETUP_CCP1(CCP_PWM);
SETUP_TIMER_2(T2_DIV_BY_16,124
,1);
SET_PWM1_DUTY(0);
WHILE(TRUE)
{
KT_PHIM_0();
KT_PHIM_50();
KT_PHIM_100();
}
}
Trang: 1/2
Câu 2: (3.5 điểm)
// KHAI BAO THU VIEN
VOID HT_K4()
#INCLUDE <TV_16F887.C>
{
#INCLUDE <TV_LCD.C>
LCD_COMMAND(0X80);
#DEFINE C_DOI PIN_C0
LCD_DATA("N.Do =");
LCD_COMMAND(0X80+8);
// KHAI BAO BIEN
LCD_DATA(TR_K4);
UNSIGNED INT16
ND_K4,GT_CAI;
LCD_DATA(CH_K4);
UNSIGNED INT8 DV_K4, CH_K4, TR_K4,
DV_GT_CAI, CH_GT_CAI, TR_GT_CAI;
UNSIGNED INT8
LCD_DATA(DV_K4);
IF(TT_CDOI == 0) LCD_DATA(" do C");
I;
ELSE
LCD_DATA(" do K");
INT1 TT_CDOI,TT_NN;
LCD_COMMAND(0XC0);
// VIET HAM CON
LCD_DATA("GT cai =");
VOID KT_CDOI()
LCD_COMMAND(0XC0+8);
{
LCD_DATA(TR_GT_CAI);
IF(INPUT(C_DOI) == 0)
LCD_DATA(CH_GT_CAI);
{
LCD_DATA(DV_GT_CAI);
DELAY_MS(20);
IF(TT_CDOI == 0) LCD_DATA(" do C");
IF(INPUT(C_DOI) == 0)
{
ELSE
LCD_DATA(" do K");
}
TT_CDOI = ~TT_CDOI;
}
WHILE(INPUT(C_DOI) == 0);
VOID DO_K4()
{
}
SET_ADC_CHANNEL(4);
}
DELAY_MS(1);
ND_K4 = 0;
VOID GM_K4()
FOR(I=0; I<100; I++)
{
{
DV_K4 = ND_K4%10 + 0X30;
ND_K4 = ND_K4 + READ_ADC();
CH_K4 = ND_K4/10%10 + 0X30;
DELAY_MS(1);
TR_K4 = ND_K4/100 + 0X30;
}
ND_K4 = ND_K4/100/2.046;
DV_GT_CAI = GT_CAI%10 + 0X30;
}
CH_GT_CAI = GT_CAI/10%10 + 0X30;
TR_GT_CAI = GT_CAI/100 + 0X30;
}
Trang: 2/2
S// VIET HAM CHINH
GT_CAI = 45 + 273;
VOID MAIN()
}
{
ELSE
//KHOI TAO BAN DAU
GT_CAI = 45;
SET_TRIS_D(0X00);
SET_TRIS_E(0X00);
GM_K4();
SET_TRIS_C(0X01);
IF(TT_NN==1)
{
//KHOI TAO LCD
LCD_COMMAND(0X80+8);
LCD_SETUP();
LCD_DATA(" ");
LCD_COMMAND(0XC0+8);
//KHOI TAO ADC
LCD_DATA(" ");
SETUP_ADC(ADC_CLOCK_DIV_32);
DELAY_MS(500);
SETUP_ADC_PORTS(SAN4 | VSS_VDD);
HT_K4();
DELAY_MS(500);
TT_CDOI = 0;
}
// VONG LAP TUAN HOAN
ELSE HT_K4();
WHILE(TRUE)
{
IF(ND_K4 > GT_CAI)
KT_CDOI();
{ TT_NN = 1; OUTPUT_HIGH(PIN_C1); }
//DO NHIET DO - K4
ELSE
DO_K4();
{ TT_NN = 0; OUTPUT_LOW(PIN_C1); }
IF(TT_CDOI == 1)
{
}
}
ND_K4 = ND_K4 + 273;
Trang: 3/2
Câu 3: (3.5 điểm)

VĐK_TTAM:
//KHAI BAO THU VIEN
#INCLUDE <TV_16F887.C>
#DEFINE MODE PIN_E0
//KHAI BAO UART
#USE RS232(BAUD = 4800, XMIT=PIN_C6,
RCV=PIN_C7)
//KHAI BAO BIEN
UNSIGNED INT8 I,J,TT_MODE;
//VIET HAM CON
VOID KT_MODE()
{
IF(INPUT(MODE) == 0)
{
DELAY_MS(20);
IF(INPUT(MODE) == 0)
{
TT_MODE++;
IF(TT_MODE == 4) TT_MODE = 1;
WHILE(INPUT(MODE) == 0);
}
}
}
//VIET HAM CHINH
VOID MAIN()
{
//KHOI TAO BAN DAU
SET_TRIS_E(0XFF);
TT_MODE = 1;
//VONG LAP TUAN HOAN
WHILE(TRUE)
{
KT_MODE();
IF(TT_MODE == 2)
{
FOR(I=0;I<4;I++)
{
PUTC(I);
FOR(J=0; J<20; J++) //DELAY CO KT PHIM
{
KT_MODE();
DELAY_MS(100);
}
}
}
IF(TT_MODE == 3)
{ PUTC('T'); }
}
}
 VĐK_TRAM:
//KHAI BAO THU VIEN
#INCLUDE <TV_16F887.C>
//KHAI BAO UART
#USE RS232(BAUD = 4800, XMIT=PIN_C6,
RCV=PIN_C7)
//KHAI BAO BIEN
UNSIGNED INT8 DL_NHAN, TT_NN;
//VIET HAM NGAT
#INT_RDA
VOID NGAT_UART()
{
DL_NHAN = GETCH();
IF(DL_NHAN == 0) OUTPUT_D(0X00);
IF(DL_NHAN == 1) OUTPUT_D(0X01);
IF(DL_NHAN == 2) OUTPUT_D(0X02);
IF(DL_NHAN == 3) OUTPUT_D(0X04);
IF(DL_NHAN == 'T') TT_NN = 1;
ELSE TT_NN = 0;
}
//VIET HAM CON
//VIET HAM CHINH
VOID MAIN()
{
//KHOI TAO BAN DAU
SET_TRIS_D(0X00);
SET_TRIS_B(0X00);
OUTPUT_D(0X3C);
DELAY_MS(2000);
OUTPUT_D(0X00);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_RDA);
//VONG LAP TUAN HOAN
WHILE(TRUE)
{
IF(TT_NN == 1)
{
OUTPUT_D(0X00);
DELAY_MS(1000);
OUTPUT_D(0XFF);
DELAY_MS(1000);
}
}
}
Trang: 4/2
Download