Tải bản đầy đủ (.pdf) (8 trang)

Quá trình hình thành tư liệu hướng dẫn cách chấm mạch eprom trong KIT vi xử lý p9 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (159.54 KB, 8 trang )

LUAÂÄN VAÊN TOÁT NGHIEÄP

89

t1=t;
}
if(DemSpace==1)
{
t3=t;
fread(&t4,1,1,f);
Value1++;
fwrite(&t3,1,1,f1);
fwrite(&t4,1,1,f1);
fwrite(&t1,1,1,f1);
fwrite(&t2,1,1,f1);
DemSpace=0;
do
{
fread(&t,1,1,f);
if(t==' ')
DemSpace++;
}while((t=='\''||t==' ')&&DemSpace<3);//con la lenh hoac dia
chi hay da cham dut mot lenh
if(DemSpace==2)
t1=t;
}
if(DemSpace>2)
{
end_line=1;
}
}while(end_line==0);


}while(Value1<=Value2);
fcloseall();
return OutFile;
}
//
int SEND::Out()
{
int result,Temp;
FILE *f;
char value;
int n,dem=0;
int Stop=0;

char
KyTu_Hex[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E
','F','a','b','c','d','e','f'};
int
Gtri_Dec[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,10,11,12,13,14,15};

if ( (f = fopen(OutFile,"rt")) == NULL)
{
OutError("Cannot open input file.");
return dem;
}

while(!feof(f))
{
do
{
result=inportb(sta);

result=result & 0x80;
Stop=Esc();
}while(result !=0x80&&Stop!=1);//doc busy cho toi khi !busy = 1
if(Stop==1)
return -1;
n=fread(&value,1,1,f);
LUAÂÄN VAÊN TOÁT NGHIEÄP

90

if(n==0)
return dem;
for(int z=0;z<22;z++)//doi ky tu ra gia tri Dec de goi di
if(value==KyTu_Hex[z])//nible cao
{
Temp=Gtri_Dec[z]*16;
z=22;
}
fread(&value,1,1,f);
for(z=0;z<22;z++)//nible thap
if(value==KyTu_Hex[z])
{
Temp=Gtri_Dec[z]+Temp;
z=22;
}
outportb(data,Temp);//pow(2,i));//xuat du lieu ra thanh ghi du
lieu
outportb(ctr,0x00);// cho strobe = 1 de bao cho phan thu biet da
goi du lieu ra thanh ghi du lieu
dem++;


do
{
result=inportb(sta);
result=result & 0xC0;
Stop=Esc();
}while(result!=0x40&&Stop!=1);//doc ack cho den khi ack = 1
if(Stop==1)
return -1;
outportb(ctr,0x01);// cho strobe = 0 de bao cho phan thu biet da
goi xong mot byte du lieu ra thanh ghi du lieu
}
return 0;
}
//
int SEND::DeleteFile()
{
return remove(OutFile);
}
//
int Esc()
{
if(kbhit())//nhan Esc de thoat
{
if(getch()==27)
{
OutError("Task is not complete !!!");
}
else
flushall();

return 1;
}
return 0;
}

XIV.CLASS TEXTBOX.HPP
#include <string.h>
#if !defined __TEXTBOX__
#define __TEXTBOX__
class TEXTBOX
{
private:
int l,t,r,b;
LUAÂÄN VAÊN TOÁT NGHIEÄP

91

int Color,Color1;
char S[100],S1[100];
char Dri[100],Path_var[100],Name[100],TenFile[100],SubFile[100];
int chiso;
public:
TEXTBOX() {S[0]='\0';}//S1="Duong dan";}
void InitTextBox(int x1,int y1,int x2,int y2,int color,int
color1,char s[]);
void Path();
void PressTextBox();
void OutTextBox();
int Left(){return l;}
int Top(){return t;}

int Right(){return r;}
int Bottom(){return b;}
void DelChar(int length);//,int xoa);//de xoa ky tu khi gap phim
del tai texbox
void InsertChar(char c);
void GetS(char s[]){strcpy(s,S);};
void GetS_in(char s[]){strcpy(S,s);}
int DuongDan(char s[]);
void Get_path(char s[]){strcpy(s,Path_var);};
void Get_name();
};
#endif

XV.MODULE TEXTBOX.CPP
#include <dir.h>
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <string.h>
#include <dos.h>
#include <ctype.h>
#include "textbox.hpp"
#include "mouse.h"
//
void TEXTBOX::InitTextBox(int x1,int y1,int x2,int y2,int color,int
color1,char s[])
{
char buffer[MAXPATH];
l=x1;t=y1;r=x2;b=y2;
Color=color;

Color1=color1;
strcpy(S1,s);
getcwd(buffer, MAXPATH);
strcpy(S,buffer);
strcat(S,"\\");
}
//
void TEXTBOX::OutTextBox()
{
setfillstyle(SOLID_FILL,Color);
bar(l,t,r,b);

setcolor(WHITE);
line(l,b,r,b);
line(r,t,r,b);

setcolor(BLACK);
line(l,t,r,t);
line(l,t,l,b);

LUAÂÄN VAÊN TOÁT NGHIEÄP

92

setcolor(WHITE);
if(Color==WHITE)
setcolor(BLACK);
outtextxy(l,t+(b-t-textheight(S))/2-b+t-3,S1);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
}

//
/*
void TEXTBOX::PressTextBox()
{
setcolor(BLACK);
line(l,t,r,t);
line(l,t,l,b);
setcolor(WHITE);
line(l,b,r,b);
line(r,t,r,b);
}
*/
//
void TEXTBOX::Path()//lay duong dan nhap vao vao bien S cua TEXTBOX
{
char a;
int C1=Color1;//C1 la mau cua text trong textbox o che do nhap ten
file
setcolor(C1);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
chiso=0;
MouseText(l+textwidth(S)+4,t+(b-
t+textheight(S))/2,Color,C1);//,S);//gia dau nhac chuot
char stemp[128];
strcpy(stemp,S);
while((a=getch())!=13)//&&a!=27)//kiem tra phim Enter
{
switch(a)//kiem tra ky tu nhap vao
{
case 0:switch(a=getch())

{
case 71://home
MouseText(l+6,t+(b-t+textheight(S))/2,Color,C1);//,S);
chiso=-strlen(S);
break;
case 72:break;
case 73:break;
case 75://left arrow
int f=textwidth(S);
int xt=l+6+f+( chiso)*8;
int yt=t+(b-t+textheight(S))/2;
if(xt<l+6)
xt=l+6+f+((++chiso))*8;
MouseText(xt,yt,Color,C1);//,S);//so 8 la be ngang 1 ky
tu
break;
case 77://right arrow
if(chiso==0)break;
f=textwidth(S);
MouseText(l+f+6+((++chiso))*8,t+(b-
t+textheight(S))/2,Color,C1);//,S);//so 8 la be ngang 1 ky tu
break;
case 79://end
f=textwidth(S);
MouseText(l+f+6,t+(b-t+textheight(S))/2,Color,C1);//,S);
chiso=0;
break;
LUAÂÄN VAÊN TOÁT NGHIEÄP

93


case 80:
case 81:
case 82:break;
case 83://del
setcolor(GREEN);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
DelChar(strlen(S));//,chiso);
f=textwidth(S);
setcolor(YELLOW);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
MouseText(l+f+6+chiso*8,t+(b-
t+textheight(S))/2,Color,C1);//,S);//so 8 la be ngang 1 ky tu
break;
}break;
case 8://backspace
setcolor(Color);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
chiso ;
DelChar(strlen(S));
setcolor(C1);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
MouseText(l+textwidth(S)+6+chiso*8,t+(b-
t+textheight(S))/2,Color,C1);//,S);
break;
case 27://Esc
strcpy(S,stemp);return;
default:
if(a>=32&&a<=126)
{

if((strlen(S)+2)*8>(r-l))break;
setcolor(GREEN);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
InsertChar(a);
setcolor(C1);
outtextxy(l+5,t+(b-t-textheight(S))/2,S);
MouseText(l+textwidth(S)+6+chiso*8,t+(b-
t+textheight(S))/2,Color,C1);//,S);//so 8 la be ngang 1 ky tu
}
}
MouseText(l+textwidth(S)+6,t+(b-
t+textheight(S))/2,Color,C1);//,S);//truong hop phim khong co nhiem vu
nao dac biet
};
if (S[0]=='\0')
strcpy(S,stemp);
}
//
void TEXTBOX::DelChar(int length)//xoa ky tu tai vi tri con tro
{
int vitri=length+chiso;
for(int i=vitri;i<length-1;i++)
S[i]=S[i+1];
if(chiso<0)
{
S[length-1]='\0';
chiso++;
}
}
//

void TEXTBOX::InsertChar(char c)
{
int length=strlen(S);
for(int i=length;i>length+chiso;i )
LUAÂÄN VAÊN TOÁT NGHIEÄP

94

S[i]=S[i-1];
S[length+1]='\0';
S[i]=c;
}
//
int TEXTBOX::DuongDan(char s[])
{
int l=strlen(s),dem,dr;
char s1[200]="",s2[200]="";
dem=l-1;
if(s[1]==':')
switch(toupper(s[0]))
{
case 'A':dr=1;break;
case 'B':dr=2;break;
case 'C':dr=3;break;
case 'D':dr=4;break;
case 'E':dr=5;break;
}
else dr=_getdrive();
for(int i=l-1;i>0;i )
{

if(s[i]=='\\')
{
dem=i+1;
i=0;
}
else
dem=0;
}
strcat(s2,&s[dem]);
if(dem!=0) dem-=1;
strncpy(s1,s,dem);
strcpy(Path_var,s1);
strcpy(Name,s2);
return dr;
}
//
void TEXTBOX::Get_name()
{
int n=strlen(Name);
int phan_ten=1;
for(int i=0;i<=n&&phan_ten;i++)
{
if(Name[i]=='.'&&i<n)
{
for(int j=n;j>i;j )
Name[j]=Name[j-1];
Name[j]='1';
Name[n+1]='\0';
phan_ten=0;
}

if(i==n)
{
Name[i]='1';
Name[i+1]='\0';
}
}
S[0]='\0';
strcat(S,Path_var);
strcat(S,"\\");
strcat(S,Name);
}
LUÂÄN VĂN TỐT NGHIỆP

95

C. SỬ DỤNG CHƯƠNG TRÌNH DOWNLOAD.
Để sử dụng chương trình DowLoad, trước tiên phải về màn hình Dos (vì
chương trình được viết trong môi trương Dos, không quản lý được các chương trình
điều khiển thiết bò sẳn có trong máy, thoát về Dos để tránh những xung đột chương
trình).
Gọi tên Demo.exe, lúc đó màn hình sẽ hiện lên như sau:

Để chọn file bằng cách gõ phím, click chuột vào ô Open File.




Nếu nhắp nút pulldown thì sẽ chọn file theo kiểu click chuột. (hình sau). Chọn ổ đóa,
chọn loại file, chọn tên file và click OK để chọn file.


Nút pulldown

Ô nhập text

LUÂÄN VĂN TỐT NGHIỆP

96


Sau khi chọn xong file thì trong bảng “Free memory request” xuất hiện các đòa chỉ
đầu cuối, và dung lượng bộ nhớ sẽ sử dụng.
Sau đó click Send để gởi dữ liệu đi.
Khi quá trình truyền file kết thúc thì xuất hiện thông báo “Task is complete.”

×