You are on page 1of 15

V mch trn proteus

Lp trnh cho vi iu khin trn keil C


Lp trnh trn my tnh dng C#
Thit lp kt ni gia Visual Studio 2008 v proteus bng virtual
COM.
Cc phn mm cn ci t:

1.
2.
3.
4.

Proteus
Keil C
Visual Studio 2008
Virtual COM

B1:Lp trnh iu khin n LED1 v LED2 qua cc nt nhn


trn giao din my tnh:
Phng php:
trn PC: to giao din c 2 nt nhn led1, led2. khi ta nhn nt
led1 th truyn k t A xung vk
Khi nhn nt led2 th truyn kt B.
Trn VK:
khi nhn kt A => k led1 sng.
khi nhn kt B => k led2 sng.
Ngn ng lp trnh:
Trn PC: C#
Trn Vk: keilc hoc assembly.
Cc bc lm:

1. Protues. (Xem V d)
Ch : Ta phi chnh li thng s cho Cng Com o trong
Protues nh sau :

- Double click vo
Ta c hnh sau :
- Chnh thng s Cng Com cho ph hp vi thng s ta chnh
trn phn mm Visual Studio 2008.

2. Trn Visual Studio 2008 (C#)


Bc 1 : M chng trnh Visual Studio :

Bc 2 : To Project mi :

Bc 3 : To File C#
- Chn Windows Forms Application, nhp tn Project nh hnh di.

Bc 4 : Chn Button trong Toolbox nh hnh di : (Nu khng thy


Toolbox nh hnh, th bn vo Tab View ly ra)

Bc 5 : Chn SerialPort giao tip nh hnh.

Bc 6 : i tn button :
- Click 1 ci ln button cn i tn.
- Chn tab Properties nh hnh di.
- Nhp tn mong mun vo dng Text .
- Enter.

Bc 7 : Cu hnh cho SerialPort :


- Click 1 ci vo biu tng serialPort pha di nh hnh sau.
- M tab Properties
- Chnh cc thng s nh hnh.

Bc 8 : Vit code cho Form, ta lm nh hnh sau :

1
Click vo biu
tng nh hnh
Click vo vng
ca Form

3
Nhp tn ty
v Enter

Bc 9 : Copy on code sau vo c nh sau :


private void Form1_Load(object sender, EventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
serialPort1.Open();
}

Bc 10 : Chn nh hnh sau:


Chn giao
din Form

Click vo biu
tng nh hnh

1
2

Click vo vng
ca Form

Nhp tn ty
v Enter

Bc 11 : Copy on code sau vo c nh sau :


private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (serialPort1.IsOpen) serialPort1.Close();
}

Bc 12 : Lp trnh cho Button LED1


- Tr li giao din Form nh bc 10.
- Double Click vo Button LED1.
- Copy code vo c nh sau :
private void button1_Click(object sender, EventArgs e)
{
serialPort1.Write("A");
}

Bc 13 : Lm nh bc 12 cho Button LED2.

Cui cng ta c on code y nh hnh sau :

3. Trn Keil-C
Khi ng keilc :=> vo project/new

Chn vk

Vit file led.c


Click on file/ new

G lnh hoc 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; }
}
}
Lu li:

Thm file dkleddon.c vo project

Thit lp thng s cho vk:

chn thch anh 12 Mhz


chn tab output; chn ty chn to file hex

Click build to file hex:

Kt thc keil c
THIT LP KT NI PC<-> PROTEUS DNG COM O:

LU : CHN CNG COM X KHNG C TN SAU Y(TY


THUC VO MI MY):

Gi s chn cng COM1 (nu chn cng COM khc th phi vo


Visual Studio chnh li tn cng Com trong hm Setting())
Chn COM1 kt ni COM2
Click vo to
Cp Com o

=>

Chy PROTEUS:
V mch
NP chng trnh cho vk:

Chn file hex dch trn keilc

Chy PROTEUS V CT TRN VISUAL STUDIO


THNG THC

You might also like