05/08/24 Giáo Viên: Đặng Văn Hiếu 12//Hàm chính bắt buộc chương trình nào cũng phải có void mainvoid { …//Các câu lệnh } Các câu lệnh trong hàm chính có thể có lời gọi các hàm đã khai bá
Trang 1CHƯƠNG II
TRƯỜNG ĐẠI HỌC THÀNH ĐÔ
KHOA ĐIỆN – ĐIỆN TỬ
Giáo viên : ĐẶNG VĂN HIẾU
Trang 205/08/24 Giáo Viên: Đặng Văn Hiếu 2
Trang 3Định nghĩa: Biến là tên đặt cho vị trí bộ nhớ máy tính, có thể
dùng để lưu trữ các giá trị khác nhau tại những thời điểm khác
nhau
Tên biến: Tên biến hợp lệ là một chuỗi ký tự liên tục gồm: Ký tự
chữ, số và dấu gạch dưới Ký tự đầu của tên phải là chữ hoặc dấu
gạch dưới Khi đặt tên không được đặt trùng với các từ khóa
Cấu trúc: {Kiểu dữ liệu} {Tên biến};
BIẾN (VARIABLES)
Trang 405/08/24 Giáo Viên: Đặng Văn Hiếu 4
Khai báo biến
VD: unsigned char x;Khi khai báo biến có thể gán luôn cho biến giá trị ban đầu VD :Thay vì: unsigned char x;
x=0;
Ta chỉ cần : unsigned char x=0;
Có thể khai báo nhiều biến cùng một kiểu một l úc
VD: unsigned int x,y,z;
BIẾN (VARIABLES)
Trang 5Ngoài ra để dùng cho vi điều khiển trình dịch chuyên dụng còn hỗ trợ các
loại biến sau:
Ngoài ra, chúng ta có thể định nghĩa biến kiểu bít hay kiểu SFR (specia l funct ion register)
Trang 605/08/24 Giáo Viên: Đặng Văn Hiếu 6
Các kiểu dữ liệu
BIẾN (VARIABLES)
Trang 7Định nghĩa: Hằng là một giá trị không bao giờ bị thay đổi
Cấu trúc: Có hai cách định nghĩa hằng
Cách 1: Dùng chỉ thị biên dịch (hay còn gọi là macro)
const kiểu_dữ_liệu tên_hằng = giá_trị_hằng;
Ví dụ1: flash float PI = 3.1415926
Cách 2: Chứa trong bộ nhớ chương trình (flash)
#define tên_hằng giá_trị
Ví dụ2: #define PWM1 P^5
HẰNG (CONSTANT)
Trang 805/08/24 Giáo Viên: Đặng Văn Hiếu 8
Định nghĩa: Mảng một chiều có thể được sử dụng để lưu trữ một tập các giá trị có cùng kiểu dữ liệu.
Cấu trúc: Kiểu_dữ_liệu tên_mảng [ số_phần_tử_trong_mảng ];
Ví dụ: int myarray [ 5 ];
int myarray []={ 0, 1, 2, 3, 4 };
MẢNG (ARRAY)
Trang 9Các toán tử cơ bản:
- Phép gán: =VD: x=y;
// x phải là biến y có thể là biến hoặc giá trị nhưng phải phù hợp kiểu
Trang 1005/08/24 Giáo Viên: Đặng Văn Hiếu 10
Trang 11Cấu trúc của một chương trình:
//Đính kèm các file
#include <file.h>
#include <file.c>
//Khai báo biến toàn cục
unsigned char x,y;
Trang 1205/08/24 Giáo Viên: Đặng Văn Hiếu 12
//Hàm chính bắt buộc chương trình nào cũng phải có
void main(void)
{
…//Các câu lệnh
}
Các câu lệnh trong hàm chính có thể có lời gọi các hàm đã khai báo ở
trên hoặc không
Khi có lời gọi hàm nào thì chương trình nhảy đến hàm đó thực hiện hàm
đó xong con trỏ lại quay về chương trình chính (hàm main) thực hiện tiếp các hàm hoặc câu lệnh
Các câu lệnh trong C kết thúc bằng dấu “;”
Các lời giải thích được đặt trong dấu: Mở đầu bằng “/*” kết thúc bằng “*/”Nếu lời giải thích trên 1 dòng thì có thể dùng dấu: “//”
Khi lập trình nên giải thí ch các câu lệnh khối lệnh làm gì để về sau khi chương trình lớn dễ sửa lỗi
CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH
Trang 13Hàm trong C có cấu trúc như sau (có 2 loại hàm)
Hàm trả lại giá trị:
Cấu trúc: Kiểu giá trị hàm trả lại:
Tên hàm (Biến truyền vào hàm)
{// Các lệnh xử lý ở đây
}
VD :
unsigned char Cong (unsigned char x, unsigned char y)
{// Các lệnh xử lý ở đây
}
HÀM TRONG C
Trang 1405/08/24 Giáo Viên: Đặng Văn Hiếu 14
Hàm không trả lại giá trị:
Cấu trúc: void Tên hàm (Biến truyền vào hàm)
{// Các câu lệnh xử l ý ở đây
}VD:
void Cong (unsigned char x, unsigned char y)
{// Các câu lệnh xử l ý ở đây
}
HÀM TRONG C
Trang 15Hàm có thể truyền vào biến hoặc không
Hàm không có biến truyền vào:
unsigned char Tênhàm( void )
{// Các câu lệnh xử lí ở đây
}
Hàm có biến truyền vào:
void Tênhàm( unsigned char x)
{
// Các câu lệnh xử l í ở đây
}
Số biến truyền vào tùy ý (miễn đủ bộ nhớ ), ngăn cách bởi dấu “,”
Ví dụ: Void TênHàm( unsigned char x, unsigned char y, unsigned char z) {
// Các câu lệnh xử lí ở đây
}
HÀM TRONG C
Trang 1605/08/24 Giáo Viên: Đặng Văn Hiếu 16
Ngoài ra riêng cho vi điều khiển phần mềm Keil C còn có một loại hàm đó là hàm ngắt:
Cấu trúc: Void Tênhàm ( void ) interrupt nguồn ngắt sử dụng bằng thanh ghi {
}
Hàm ngắt không được phép trả lại giá trị hay truyền tham biến vào hàm.
Tên hàm bất kì Interrupt là từ khóa chỉ hàm ngắt
Nguồn ngắt từ 0 tới 5 theo bảng vector ngắt
Không tính ngắt reset hệ thống bắt đầu đếm từ ngắt ngoài 0
Băng thanh ghi trên RAM chọn từ 0 đến 3
HÀM TRONG C
Trang 17CÂU LỆNH IF
Trang 1805/08/24 Giáo Viên: Đặng Văn Hiếu 18
Ý nghĩa: Tùy theo Ðiều kiện là đúng hay sai mà quyết định
có làm Lệnh a hay không Nếu Ðiều kiện là đúng thì làm Lệnh a
rồi chuyển sang lệnh kế tiếp ở phía dưới Nếu Ðiều kiện là sai
thì không làm Lệnh a mà chuyển ngay sang lệnh kế tiếp
Lưu đồ:
CÂU LỆNH IF
Trang 19Ví dụ: Viết đoạn chương trình cho MOTOR quay theo chiều kim đồng hồ (P1^0=1; P1^1=0) khi nhấn nút nhấn nối
với P0^0 (P0^0=0)
if (P0^0==0){
P1^0=1;
P1^1=0;
}
CÂU LỆNH IF
Trang 2005/08/24 Giáo Viên: Đặng Văn Hiếu 20
Cú pháp:
IF(Ðiều kiện){
Lệnh a
}ELSE
{ Lệnh b
Trang 21Ý nghĩa: Tùy theo Ðiều kiện là đúng hay sai mà quyết định làm
một trong hai lệnh: Lệnh a hoặc Lệnh b
Nếu Ðiều kiện là đúng thì làm Lệnh a, không làm Lệnh b, mà
chuyển ngay sang thực hiện lệnh kế tiếp ở sau Lệnh b
Ngược lại, nếu Ðiều kiện là sai thì không làm Lệnh a mà làm
Lệnh b rồi chuyển sang lệnh kế tiếp ở sau Lệnh b
Lưu đồ:
CÂU LỆNH IF…ELSE
Trang 2205/08/24 Giáo Viên: Đặng Văn Hiếu 22
Ví dụ: Viết một đoạn chương trình điều khiển hai đèn LED được nối vào hai chân P1^0 và P1^1 Khi nhấn nút
nhấn trên chân P0^0 thì LED 1 sáng, LED 2 tắt
(P1^0=1, P1^1=0), không nhấn thì LED 1 tắt, LED 2
Sáng (P1^0=0, P1^1=1)
if (P0^0==0) { P1^0=1;
P1^1=0;
} else { P1^0=0;
P1^1=1;
};
CÂU LỆNH IF…ELSE
Trang 23Cú pháp:
switch (Biểu thức) { case giá trị 1:
Trang 2405/08/24 Giáo Viên: Đặng Văn Hiếu 24
Ý nghĩa: switch tính biểu thức và kiểm tra xem nó có bằng
Giá tri 1 hay không, nếu đúng thì nó thực hiện lệnh 1
cho đến khi tìm thấy từ khoá break, sau đó nhảy đến phần cuối
của cấu trúc lựa chọn switch Còn nếu không, switch sẽ kiểm tra
xem biểu thức có bằng giá trị 2 hay không Nếu đúng nó sẽ
thực hiện lệnh 2 cho đến khi tìm thấy từ khoá break Cuối
cùng, nếu giá trị biểu thức không bằng bất kỳ hằng nào được chỉ
định ở trên (bạn có thể chỉ định bao nhiêu câu lệnh case tuỳ thích), chương trình sẽ thực hiện các lệnh trong phần default Nếu nó tồn
tại vì phần này không bắt buộc phải có
CÂU LỆNH WITCH…CASE…DEFAULT
Trang 25Chú ý: Biểu thức phải là có kết quả là giá trị nguyên (char, int,
long,…) Lênh 1, 2…n có thể gồm nhiều lệnh, nhưng không cần đặt
trong cặp dấu { }
Lưu đồ:
CÂU LỆNH WITCH…CASE…DEFAULT
Trang 2605/08/24 Giáo Viên: Đặng Văn Hiếu 26
Ví dụ: Viết đoạn chương trình kiểm tra điều kiện trên P1 để điều khiển hoạt động trên P0
switch (P1) { case 0x18:
Break; }
CÂU LỆNH WITCH…CASE…DEFAULT
Trang 27Kiểm tra điều kiện nếu đúng đúng thì thực hiện khối lệnh;
lặp lại kiểm tra điều kiện nếu sai thoát khỏi vòng lặp
- Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển
- Biểu thức 2: là quan hệ logic thể hiện điều kiện tiếp tục vòng
lặp
- Biểu thức 3: phép gán dùng thay đổi giá trị biến điều khiển
- Khối lệnh có thể gồm nhiêu câu lệnh phải đặt vào ngoặc {};
CÂU LÊNH FOR
Trang 2805/08/24 Giáo Viên: Đặng Văn Hiếu 28
Trang 29Ví dụ: Viết một đoạn chương trình điều khiển P0 sáng, tắt
Trang 3005/08/24 Giáo Viên: Đặng Văn Hiếu 30
Cú pháp:
while (biểu thức)
{khối lệnh};
Ý nghĩa:
Trước tiên biểu thức được kiểm tra nếu sai thì kết thúc vòng
lặp while (khối lệnh không được thi hành 1 lần nào) nếu đúng
thực hiện khối lệnh; lặp lại kiểm tra biểu thức Vòng lặp thực
hiện lặp lại trong khi biểu thức còn đúng
CÂU LỆNH WHILE
Trang 31Chú ý:
Trong thân while (khối lệnh) có thể chứa một hoặc nhiều cấu
trúc điều khiển khác
CÂU LỆNH WHILE
Trang 3205/08/24 Giáo Viên: Đặng Văn Hiếu 32
Ví dụ: Viết đoạn chương trình sử dụng vòng lặp While điều
khiển P0 khi kiểm tra chân P1.0=0 thì P0 ở mức 1
While (P1^0==0) {
P0=0xff;
}
CÂU LỆNH WHILE
Trang 33Cú pháp:
do {khối lệnh};
while (biểu thức);
Ý nghĩa:
Trước tiên thực hiện khối lệnh, sau đó kiểm tra biểu thức
- Nếu đúng thì lặp lại thực hiện khối lệnh
- Nếu sai thì kết thúc vòng lặp
Vòng lặp được thực hiện lặp lại cho đến khi biểu thức sai
CÂU LỆNH DO…WHILE
Trang 3405/08/24 Giáo Viên: Đặng Văn Hiếu 34
Chú ý:
Trong thân do…while (khối lệnh) có thể chứa một hoặc nhiều cấu trúc điều khiển khác
CÂU LỆNH DO…WHILE
Trang 35Ví dụ: Viết một đoạn chương trình sử dụng vòng lặp
do…while điều khiển hai chân P0^0, P0^1 khi kiểm
tra điều kiên vào P1
do{ P0^0=1;
P0^1=0;
} while (P1!= 0x81);
CÂU LỆNH DO…WHILE
Trang 3605/08/24 Giáo Viên: Đặng Văn Hiếu 36
6 Dịch code sang File.hex
7 Lựa chọn thông số và chạy mô phỏng
HƯỚNG DẪN SỬ DỤNG KEIL C
Trang 37- Mở file phần mềm Keil C.
- Click vào file c51v802a.exe
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 3805/08/24 Giáo Viên: Đặng Văn Hiếu 38
- Click vào Next
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 39- Tích vào ô trống rồi click Next
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 4005/08/24 Giáo Viên: Đặng Văn Hiếu 40
- Bấm Browse để chọn đường dẫn
- Bấm Next để tiếp tục
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 41- Điền đầy đủ thông tin vào các ô trống.
- Bấm Next để tiếp tục
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 4205/08/24 Giáo Viên: Đặng Văn Hiếu 42
- Bắt đầu cài đặt
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 43- Bấn finish để kết thúc quá trình cài đặt.
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 4405/08/24 Giáo Viên: Đặng Văn Hiếu 44
- Trên desktop xuất hiện folder Keil uvision3
CÀI ĐẶT PHẦN MỀM KEIL C
Trang 45- Click vào Folder Keil uvision3 trên desktop.
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 4605/08/24 Giáo Viên: Đặng Văn Hiếu 46
- Vào Project chọn -> New Project
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 471 Chọn đường dẫn để lưu file (nên tạo mỗi một thư mục cho 1 project)
2 Nhập tên cần lưu vào ô File name
3 Nhấn Save để lưu
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 4805/08/24 Giáo Viên: Đặng Văn Hiếu 48
- Ta được hình sau:
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 49- Bấm vào dấu + ở đầu chữ Atmel để mở rộng IC của hãng -> chọn AT89C51.
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 5005/08/24 Giáo Viên: Đặng Văn Hiếu 50
- Chọn No, tạo xong Project mới
- Nếu chọn Yes, làm file lập trình bị nặng
HƯỚNG DẪN TẠO MỘT PROJECT MỚI
Trang 51- Để tạo một file C mới ta vào File chọn New hoặc bấm Ctrl+N
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 5205/08/24 Giáo Viên: Đặng Văn Hiếu 52
- Mở to text1
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 53- Vào File chọn Save As hoặc bấm Ctrl + S để lưu.
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 5405/08/24 Giáo Viên: Đặng Văn Hiếu 54
1 Nhập tên cần lưu (lưu ý phải có đuôi C)
2 Click Save để lưu
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 551 Mở rộng target 1.
2 Nhấp phải chuột vào Source Group 1
3 Bâm vào Add File to Group
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 5605/08/24 Giáo Viên: Đặng Văn Hiếu 56
- Chọn File C cần Add sau đó bấm Add -> Bấm Close
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 57- Viết code vào phần khoanh đỏ.
HƯỚNG DẪN TẠO MỘT FILE C MỚI
Trang 5805/08/24 Giáo Viên: Đặng Văn Hiếu 58
- Chèn các thư viện
HƯỚNG DẪN KHỞI TẠO CHƯƠNG TRÌNH
Trang 59- Phần cuối cùng của công việc khởi tạo là các bạn viết lời giải thích cho
dự
án của mình Phần này rất cần thiết vì nó để người khác hiểu mình làm gì tron project này và khi mình cần sử dụng lại code đọc lại mình còn biết nó là cái gì
- Các bạn tạo lời giải thí ch theo mẫu sau:
HƯỚNG DẪN KHỞI TẠO CHƯƠNG TRÌNH
Trang 6005/08/24 Giáo Viên: Đặng Văn Hiếu 60
- Khi viết xong 1 dòng lệnh nên giải thích dòng lệnh đó làm gì
HƯỚNG DẪN VIẾT CODE
Trang 61- Nên chia chương trình thành các phần nhỏ Với 1 file nhỏ thì nó hơi
rườm
rà Nhưng với 1 file lớn khoảng 1000 dòng code thì nó lại rất sáng sủa Ta tạo
1 file mẫu rồi nhớ vào 1 file text để ở đâu đó mỗi lần dùng chỉ việc copy rồi paste vào chứ không nên mỗi lần tạo một cái như vậy lại phản tác dụng Phía trên là phần bộ tiền xử lí và khai báo biến Tiếp theo là viết hàm trễ
HƯỚNG DẪN VIẾT CODE
Trang 6205/08/24 Giáo Viên: Đặng Văn Hiếu 62
HƯỚNG DẪN VIẾT CODE
Trang 63HƯỚNG DẪN VIẾT CODE
Trang 6405/08/24 Giáo Viên: Đặng Văn Hiếu 64
- Tiếp theo là viết hàm main Như sau:
- Rồi nhấn Ctrl+S Hoặc chọn File à Save để nhớ file vừa soạn thảo
HƯỚNG DẪN VIẾT CODE
Trang 65- Save xong -> biên dịch chương trình bằng cách ấn phím F7 hoặc
chọn Build target là biểu tượng ngay trên cửa sổ workspace như trên hình:
HƯỚNG DẪN DỊCH CHƯƠNG TRÌNH
Trang 6605/08/24 Giáo Viên: Đặng Văn Hiếu 66
- Ta sẽ thấy như sau :
HƯỚNG DẪN DỊCH CHƯƠNG TRÌNH
Trang 67- Trong cửa sổ Output Window ngay phía trên dòng chữ này có các dòng chữ Compiling … Linking…
Program Size: data =17.0 code =96
Trang 6805/08/24 Giáo Viên: Đặng Văn Hiếu 68
HƯỚNG DẪN DỊCH CHƯƠNG TRÌNH
Trang 69Syntax error near tre Sai cú pháp gần trễ Nhấp đúp trái chuột vào
dòng thông báo này con trỏ sẽ ở ngay dòng dưới dòng có lỗi thêm dấu nhìn dấu mũi tên màu xanh ở hình dưới đây, gõ vào dấu “;” và dịch lại là OK.” Trong chương trì nh lớn đôi khi con trỏ chỉ đến gần chỗ có lỗi thôi và bạn phải tự tìm ra lỗi ”
HƯỚNG DẪN DỊCH CHƯƠNG TRÌNH
Trang 7005/08/24 Giáo Viên: Đặng Văn Hiếu 70
Sau khi dịch lại được hình sau:
HƯỚNG DẪN DỊCH CHƯƠNG TRÌNH
Trang 71Trước khi debug (gỡ lỗi) chúng ta khởi tạo như sau Các ban vào Option fortarget 1.
LỰA CHỌN THÔNG SỐ VÀ CHẠY MÔ PHỎNG
Trang 7205/08/24 Giáo Viên: Đặng Văn Hiếu 72
Được bảng sau Nhập tần số thạch anh là 12 Mhz đúng với tần số thạch anh rồi chọn OK
LỰA CHỌN THÔNG SỐ VÀ CHẠY MÔ PHỎNG
Trang 73Để debug các bạn nhấn tổ hợp phím Ctrl + F5 Hoặc nhấn vào icon có chữ D mầu đỏ trong cái kính lúp trên thanh công cụ Được cửa sổ sau:
LỰA CHỌN THÔNG SỐ VÀ CHẠY MÔ PHỎNG
Trang 7405/08/24 Giáo Viên: Đặng Văn Hiếu 74
Trong menu Periphera ls(c ác thiết bị ngoại vi) chọn I/O port , Port 1 Được
như sau:
LỰA CHỌN THÔNG SỐ VÀ CHẠY MÔ PHỎNG
Trang 75Dấu tích tương đương chân ở mức cao(5V) , không tích chân ở mức thấp (0V) Trong menu periphera ls còn các ngoại vi khác như timer , interrupt,
serial Các bài sau dùng đến các bạn nhớ lấy trong này
Để chạy chương trình ta nhấp chuột phải vào màn hình soạn thảo Rồi ấn F11 Mỗi lần ấn sẽ chạy 1 lệnh Khi debug nếu chờ hàm delay lâu quá 1000 lần lặp thì nhấn Ctrl + F11 để bỏ qua hàm Hoặc ấn F10 để chạy từng dòng lệnh Các bạn sẽ thấy chân P1^0 thay đổi giá trị
Bảng bên trái , ô Project workspace bây giờ có các thanh ghi Các bạn có thể thấy chúng thay đổi Nhưng các bạn không cần quan tâm đến các thanh ghi này Vì ta sử dụng ngôn ngữ C Nếu học asembly thì mới phải sử dụng chúng Cái chúng ta quan tâm nhất là cái sec Nó cũng thay đổi Vì thạch anh là
12Mhz, nên mỗi chu kì máy là 10^-6 giây Các bạn căn cứ vào đấy để biết lệnh nào mất bao nhiêu chu kì máy, khi làm việc với thời gian thực thì cần
quan tâm Thoát khỏi debug lại ấn Ctrl+F5 hoặc ấn vào icon debug
LỰA CHỌN THÔNG SỐ VÀ CHẠY MÔ PHỎNG
Trang 7605/08/24 Giáo Viên: Đặng Văn Hiếu 76
Trang 77- Vào đường dẫn tới file cài của phần mềm proteus 7.1
1 Click đúp vào file.exe ta được hình sau
2 chọn next để tiếp tục
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 7805/08/24 Giáo Viên: Đặng Văn Hiếu 78
- Chọn Yes để tiếp tục
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 79HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 8005/08/24 Giáo Viên: Đặng Văn Hiếu 80
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 811 Click vào Browse để lựa chọn đường dẫn lưu file cài
2 Chọn next để tiếp tục
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 8205/08/24 Giáo Viên: Đặng Văn Hiếu 82
1 Chọn các chức năng của phần mềm
2 Chọn next để tiếp tục
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 83HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 8405/08/24 Giáo Viên: Đặng Văn Hiếu 84
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 85- Máy tự động cài
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 8605/08/24 Giáo Viên: Đặng Văn Hiếu 86
- Nhấn Finish để kết thúc việc cài đặt
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 87- Crack phần mềm
- Click vào file crack trong file phần mềm ta được hình sau
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1
Trang 8805/08/24 Giáo Viên: Đặng Văn Hiếu 88
- Để tự động tìm kiếm
HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM PROTEUS 7.1