BAO CAO THUC HANH GIAO TIEP DIEU KHIEN THIET BI NGOAI VI Giáo viên hướng dẫn : Nguyễn Duy Khanh Tên bài thực hành: Giao tiếp và điều khiến thiết bị ngoại vi thông qua công USB giữa máy
Trang 1BAO CAO THUC HANH
GIAO TIEP DIEU KHIEN THIET BI NGOAI VI
Giáo viên hướng dẫn : Nguyễn Duy Khanh
Tên bài thực hành: Giao tiếp và điều khiến thiết bị ngoại vi thông qua công USB giữa máy
tính và vi điều khiến PIC18F4550
Tên thành viên nhóm:
® NGUYÊN MINH NHỰT - 21026801
® LỮHOÀNG NAM- 21030371
Ngày thực hiện: 26 / 02 / 2024
Trang 2PHAN I: Chuan dau ra mén hoc -1: Trinh bay duge cau tao, nguyén ly hoat déng va biét
sử dụng các thành phần trong hệ thống, thiết bị điện tử
1.1 Mô tả tóm tắt nội dụng bài thực hành
- Mô tả tóm tất nội dung, yêu cầu và mục đích của bài thực hành
Mô phỏng việc sử dụng một máy tính có tích hợp công COM (chuẩn RS232) đề điều khiến thiết
bị ngoại vi (LED và nút nhắn) dùng bộ điều khiển là vi điều khiển PIC 1§F4550 thông qua truyền thông UARTT
+ Xác định, liệt kê các linh kiện, thiết bị cần sử dụng
+ Mô phòng việc sử dụng một máy tính có tích hợp công COM (chuẩn RS232) đề điều khiến thiết bị ngoại vi (LED và nhít nhân) dùng bộ điều khiến là vi điều khiên PIC18F4550 thông qua truyền thông UART
+ Ở mức 1 bao gồm: 1 LED, I SW
+ Ở mức 2 bao gồm: 2 LED, 2 SW
- Xác định, liệt kê các linh kiện, thiết bị cần sử dụng
+ VI xử lý loại PIC1SF4550
+Céng USB
+Sử dụng 3 nut nhân
+ Sử dụng 3 điện trở 330 ohm, 4 điện trở 10k và 4 LED
1.2.Sơ đồ khối của bài thực hành
- — Vẽ sơ đồ khối,
Trang 3
Giải thích các chức năng nhiệm vụ của từng khối:
+ Khối giao tiếp : Dùng để gửi data vào khối vi xt ly PICI8F4550
+ Khối thạch anh: là tần số dao động trong proteus
+ Khối nhập : Dùng đề nhập data vào khối giao tiếp
+ PIC1§F4550:Dùng đề chuyền tín hiệu qua khối xuất
+ Khối xuất: Dùng dé hién thi ra tin hiệu để nhìn thay
Trang 42.1 Khả năng sử dụng phần mềm mô phỏng, vẽ mạch - Profeus
Vẽ sơ đồ nguyên ly của mach trong Proteus
D0SBHÐ-At@«qRc520 2lfil+ + 4 ®&/3.2œ|xE Z4¿BN.3::5 2 JSia
2
s
A
a
°
a
@
A
a
+
e
5
-
‡
PP Tú Assze oemre coos 17550010 CPU ous 15% aii 5
BE Ð trpct earch H @ ớó © $ € (ạ [] s ã w @ 2c cong A Gm AY OS DO, mR @
2.2 Khả năng sử dụng phần mềm lập trình Arduino
Một hình ảnh chụp màn hình Full — có eode trong phan mém Arduino
2.3 Khả năng sử dụng phần mềm lập trình cho PIC - MilroC
Một hình ảnh chụp màn hình Full — có eode trong phần mềm MikroC
#define led_on 1
#define led_off 0
#define in_size 64
Trang 5#define out_size 64
char count = 0;
bit oldstate;
unsigned char readbuff[in_size] absolute 0x500; unsigned char writebufflout_size] absolute 0x540; void interrupt()
t
if (PIR2.USBIF == 1)
t
PIR2.USBIF = 0;
USB_Interrupt_Proc();
}
if INTCON.INTOIF = 1)
t
INTCON.INTOIF = 0;
countt+;
wrItebuff[0] = count;
oldstate = 1;
}
}
void main()
{
Trang 6ADCONI =0x0F; => tất cà các chân analog thành chân digital CMCON = 0x07;
PORTB = 0x00;
LATB = 0x00;
TRISB.TRISBO = 1;
INTCON2.RBPU = 0;
PORTE = 0x00;
LATE = 0x00;
TRISE.TRISEI1 = 0;
HID_Enable(&readbuff,&writebuff); => cho phép USD 6 ché độ HDI
INTCON.INTOIF = 0;
INTCON.INTOIE = 1;
INTCON2 INTEDGO = 1;
PIR2.USBIF = 0;
PIE2.USBIE = 1;
INTCON.GIE = 1;
INTCON.PEIE = 1;
while(1)
{
Trang 7if (HID_ReadQ) !=0) => doc đữ liệu từ host thông qua USB
t
if (readbuff[0] == 1)
t
REI_bit= led_on; => điều khiển đèn sáng
writebuff[§] ='O'; => gửi lại phản hồi
}
else if (readbuff[0] == 0)
t
RE1 bit =led_off, => diéu khién đèn sang
writebuff[8] ='F'; => gtr lai phan hồi
}
HID Write(&writebuff,out_size); => gửi dữ liệu đến host thông qua USB
2.4 Khả năng sử dụng phần mềm viết giao diện Visual Studio CH
Hai hình ảnh chụp màn hình Full — code và giao diện VS Cứ
( Không sử dụng )
Trang 8PHAN III, Chuẩn đầu ra môn học 3: Có khả năng phân tích, thiết kế giải thuật và lập trình ứng dụng
3.1 Lưu đồ giải thuật cho Arduino hodc PIC
Vẽ lưu đỗ giải thuật cho Arduino hoặc PIC
t
3.2 Lập trình code cho Arduino hodc PIC
Code day du, có giải thích từng câu lệnh của code
char TransmitData, RecetveData; //khai bao 2 bien chua đu lieu gui di va nhan ve
void main() {
//cau hinh thong so phan cung
ADCON1 = OXOF;
CMCON = 7;
// chuyen doi cac chan tong tu thanh chan so
Trang 9PORTB=0x00; LATB = 0x00;
TRISBO_bit = 1;
TRISBL_bit= 1;
TRISE2_bit = 1;
//khai bao ngo vao BO va B1
PORTE= 0X00; LATE = 0x00;
TRISE1_bit = 0;
TRISEO_bit = 0;
TRISE2_bit = 0;
//khai bao ngo ra EO va El
LATE1_bit=0;
LATEO_bit=0;
LATE2_bit=0;
/Ned 1 va led 0 tat
UARTI1_Init (9600); //shoi dong module UART (toc do) delay_ms (100);
while (1)
t
if (Button (&PORTB, 0, 10, 0)) //BO
t
while(Button(&PORTB,0,10,0)); //wait
Trang 10UART1_Write(TransmitData),
}
iÑButton (&PORTB, 1, 10,0) //B1
t
while (Button (&PORTB, 1, 10,0)); //wait
TransmitData = 'X';
UART1_ Write (TransmitData);
}
if (UART1_Data_Ready 0= 1) //module cua con pic da nhan 1 du lieu
t
ReceiveData=UART1_ReadQ);
if (ReceiveData == '@')
t
LATEL bit=1;
TransmitData = 'F’;
UARTI1_Write (TransmitData);
}
else if (ReceiveData == '#')
{
LATE1 bit=0;
TransmitData = 'P’;
UARTL_Write(TransmitData);
Trang 11}
else if (RecetveData =="!')
t
LATEO_bit=1,;
TransmitData = 'E';
UARTI1_Write (TransmitData);
}
else if (RecetveData == '%')
t
LATEO_bit=0;
TransmitData = 'T";
UARTI1_Write (TransmitData);
}
else if (RecetveData = '&')
t
LATE2_bit=1,;
TransmitData = 'B':
UARTI1_Write (TransmitData);
}
else if (ReceitveData == '*')
{
LATE2_bit=0;
Trang 12UARTI1_Write (TransmitData);
3.3 Lập trỡnh giao diộn VS C#
3.4 Biờn dịch code và sửa lỗi
- Hai hỡnh ảnh chụp màn hỡnh khi biờn địch code thành cụng cho Arduino (hoặc PIC) va VS C#
EtrccC pho tr Pc v7 6001New tidesnw2mcnpk ao x Bie 88 View Project Bald Bun Tooh Hếp a mó
SAWS Be OG SOAS 9D3/9) BLAST MB, 0422 Bid 218 258 2%
“Ts Cote Explorer BE) baz ERC) stat Page EF) () useteee (EF 1 Deve folder 2 mene gsrg
ra 3 -|'àaseộœg 5e so
Function ~ `) bai mcppt
Goce
Teal
Top a
rape Seton si
xe
@moos uxeyMexe ễtueibelre Ube Manage Freqsncy: [2.000000] bts 49!?11I8:
mM 5 > mMirofÊ Lwrarles ˆ
Sl Type ỡ ‘System Libranes
â Feene toằea ft T8
đ Softmwre wbreXD om cm set
FE Messages GB Quick Converter
ở max ý Wemp Hints
° lờ sed RO yờn): 350 (12%) heefuAM Đam E1 Sees
0 ‘ jd ROM foe: 6005 (18%) Pree ROM byes): 26 `
& lới Insert
$8 â Typenere to search H €@ @G â ds € (ạ [] s w 2 8 đửiớợc Ab ma eo co, ND
Trang 134
Af (readbutt(o) em 1)
t REL_pit © led_ony writebuff[6] = 0's , lee if (readbsff[(2] “= 9)
REL_pit = ied oft?
"HH
› EID Wrice(6wzitebo#f,out_ size); —øe®
Message Text om
i fies Conpied 6205
‘Used RAM (bytes): 263 (23%) Free RAM (bytes): 1764 (57%) Weed RAM (bytes): 263 (129%) Free RAM (bytes) 1764
Used ROM bytes): 6004 (38%) Free ROM @oytes): 39764 (1295) Vand ROM Poy): 6005 (18%) Free ROM (bytes): 267
Project inte bazncp
nba 9 32 me
Project bam’ comcleted: 130 me
Friched successhity: 26 Feb 2024, 14:24:07
P Type here to search
- Một vài hình ánh bị lỗi (nêu có) và trình bày cách khắc phục lỗi đó.
Trang 14PHAN IV: Chuẩn đầu ra môn học 4: Có khả năng lắp ráp, cân chỉnh các board mạch điện
tử theo qui trình
4.1 Quy trình Lắp ráp và Test thực nghiệm
Viết quy trình Test theo từng bước: bước 1, bước 2, bước 3
4.2 Lắp rúp mạch thực tẾ
Một hình ánh chụp bo mạch sau khi đã lắp ráp xong hoàn thiện
Một hoặc hai hình ảnh có các thành viên dang thao tác trên Testboard
Một hình ảnh chụp kết quả khi bo giao tiếp được với VS Cứ
4.3 Kha nang cân chỉnh bo mạch
Trình bày + hình ánh lỗi khi thao tác lắp ráp và Test
Trình bày cách khắc phục, xử lý lỗi đó.
Trang 15PHẢN V: Kết luận bài thực hành Trình bày kết quả của bài thực hành mà nhóm đã thực hiện;
WZ biz - Proteus 8 Professional - Schemanc Capeure a
file fon View Too! Design Graph Debug Library Template System Help
BB trieoElektroniia USB (HID) Terminal
‘Terminal 1
x
ce UID=
C£ UIB-WA5E P1D=9988
BE pn - Proteus 8 Professional ~ Schematic Capture = f x
Treseariney_weittemmcemca tiene inae - 6Ñ A43@44q4R$ 2© BII+i+ 4® 2œđ xàÐ Z4¿NNM 3::⁄22 Sinz|›<:: 5
& senemave Copare X
„ B0, D06, 0U, l0, ®‹98, 0x09, 0x00, v
ay P Typehereto seach mm @ G © ® @(@[x 0 mg Owe ~ 9m 06 Kem, MO
Trang 16
Bài tập mô phỏng USB giữa Proteus & Visual Cứ,
Hình ánh kết quá bài làm
Trang 17USB (HID) Communication LAB
evice Information
witch Status LED Control
ounter SW mom 4 OI
OF
Trang 18
USB (HID) Communication LAB
Device Information
Counter SW ao ⁄ ON
Trang 19USB (HID) Communication LAB
Device Information
Trang 20a! TestUSB _ oO x
USB (HID) Communication LAB
Device Information
Video chỉ tiết bài làm : https://youtube.com/shorts/6IsFOW4CIvU?si=v LJKpapBMD 1 MarH9