Vẽ mạch trên proteus
Lập trình cho vi điều khiển trên keil C
Lập trình trên máy tính dùng C#
Thiết lập kết nối giữa Visual Studio 2008 và proteus bằng virtual
COM.
Các phần mềm cần cài đặt:
1. Proteus
2. Keil C
3. Visual Studio 2008
4. Virtual COM
B1:Lập trình điều khiển đèn LED1 và LED2 qua các nút nhấn
trên giao diện máy tính:
Phương pháp:
trên PC: tạo giao diện có 2 nút nhấn led1, led2. khi ta nhấn nút
led1 thì truyền ký tự ‘A’ xuống vđk
Khi nhấn nút led2 thì truyền kt ‘B’.
Trên VĐK:
khi nhận kt ‘A’ => đk led1 sáng.
khi nhận kt ‘B’ => đk led2 sáng.
Ngôn ngữ lập trình:
Trên PC: C#
Trên Vđk: keilc hoặc assembly.
Các bước làm:
1. Protues. (Xem Ví dụ)
Chú ý : Ta phải chỉnh lại thông số cho Cổng Com ảo trong
Protues như sau :
- Double click vào Ta được hình sau :
- Chỉnh thông số Cổng Com cho phù hợp với thông số ta chỉnh
trên phần mềm Visual Studio 2008.
2. Trên Visual Studio 2008 (C#)
Bước 1 : Mở chương trình Visual Studio :
Bước 2 : Tạo Project mới :
Bước 3 : Tạo File C#
- Chọn Windows Forms Application, nhập tên Project như hình dưới.
Bước 4 : Chọn Button trong Toolbox như hình dưới : (Nếu không thấy
Toolbox như hình, thì bạn vào Tab View lấy ra)
Bước 5 : Chọn SerialPort để giao tiếp như hình.
Bước 6 : Đổi tên button :
- Click 1 cái lên button cần đổi tên.
- Chọn tab Properties như hình dưới.
- Nhập tên mong muốn vào dòng Text .
- Enter.
Bước 7 : Cấu hình cho SerialPort :
- Click 1 cái vào biểu tượng serialPort ở phía dưới như hình sau.
- Mở tab Properties
- Chỉnh các thông số như hình.
Bước 8 : Viết code cho Form, ta làm như hình sau :
Click vào vùng
của Form
1
2
Click vào biểu
tượng như hình
3
Nhập tên tùy ý
và Enter
Bước 9 : Copy đoạn code sau vào để được như sau :
private void Form1_Load(object sender, EventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
serialPort1.Open();
}
Bước 10 : Chọn như hình sau:
Click vào vùng
của Form
2
3
Click vào biểu
tượng như hình
4
Nhập tên tùy ý
và Enter
Chọn giao
diện Form
1
Bước 11 : Copy đoạn code sau vào để được như sau :
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
}
Bước 12 : Lập trình cho Button LED1
- Trở lại giao diện Form như bước 10.
- Double Click vào Button LED1.
- Copy code vào để được như sau :
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Write("A");
}
Bước 13 : Làm như bước 12 cho Button LED2.
Cuối cùng ta được đoạn code đầy đủ như hình sau :
3. Trên Keil-C
Khởi động keilc :=> vào project/new
Chọn vđk
Viết file led.c
Click on file/ new
Gõ lệnh hoặc copy:
#include <REGX51.H>
#include <stdio.h>
//=========================
#define led1 P0_0
#define led2 P0_1
//=========================
unsigned char ch;
//==========================
void SetupSerial()
{
SCON = 0x52; /* Che do 1: 8-bit UART, cho phep truyen */
TMOD = 0x20; /* timer 1 che do 2: 8-Bit tu dong nap lai. */
TH1 = 0xfd ; /* toc do 9600 baud */
TL1 = 0xfd ;
TI = 0; /* co ngat nha^n.=0*/
RI=0; /* co ngat' truye^n =0*/
TR1 = 1; /* timer 1 run */
ES =1; /* cho phep ngat noi tiep */
}
//===========================
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
if(RI)
{RI=0;
ch=SBUF;
}}
//===========================
void delay(long time)
{ long n;
for(n=0;n<time;n++){;}
}
void main()
{
SetupSerial(); //Khoi tao cac thong so cho truyen thong noi tiep
EA = 1; //Cho phep ngat nhung chi có ngat noi tiep duoc dung
// VIET CT:
while(1)
{
if (ch==65){ //65 la ma DEC cua chu A
led1=0;
led2=1;
}
if (ch==66){ //66 la ma DEC cua chu B
led1=1;
led2=0; }
}
}
Lưu lại:
Thêm file dkleddon.c vào project
Thiết lập thông số cho vđk:
chọn thạch anh 12 Mhz
chọn tab output; chọn tùy chọn tạo file hex
Click build để tạo file hex:
Kết thúc keil c
THIẾT LẬP KẾT NỐI PC<-> PROTEUS DÙNG COM ẢO:
LƯU Ý: CHỌN CỔNG COM X KHÔNG CÓ TÊN SAU ĐÂY(TÙY
THUỘC VÀO MỖI MÁY):
Giả sử chọn cổng COM1 (nếu chọn cổng COM khác thì phải vào
Visual Studio chỉnh lại tên cổng Com trong hàm Setting())
Chọn COM1 kết nối COM2
=>
Chạy PROTEUS:
Vẽ mạch
NẠP chương trình cho vđk:
Click vào để tạo
Cặp Com ảo
Chọn file hex đã dịch trên keilc
Chạy PROTEUS VÀ CT TRÊN VISUAL STUDIO
THƯỞNG THỨC