当前位置:首页 > 红外线遥控逻辑分析仪的设计 - 毕业设计论文
南通职业大学电子工程系毕业论文
// SM0=0;//串口中断设置 // SM1=1; // SM2=1; SCON=0x50; TH1=0xff;
TL1=0xff; 22.1184MHZM// TL1=0xff 115200
EA=1; ES=0; EX0=1;
IT0=1;
PCON=0x80; TH0=0x00;
TL0=0x00;
// TR0=1; ET0=1;
}
void delay(void) //误差 -1.041666666667us { unsigned char a,b; for(b=61;b>0;b--) for(a=3;a>0;a--); }
void INT() interrupt 0 { TR0=1;
tmp=0;
// P2+=1; }
9
南通职业大学电子工程系毕业论文
void Time0() interrupt 1 { dat[0]=TH0; dat[1]=TL0; tmp=1; SBUF=dat[0]; delay(); TI=0; SBUF=dat[1]; delay();
TI=0;
TR0=0; // TF0=0; TH0=0;
TL0=0;
// P33=0; }
void Time1() interrupt 3 { RI=0; TI=0;
}
void main() { TimeSet();
while(1)
10
南通职业大学电子工程系毕业论文
{
SBUF=0x0a;
//
// P2+=1; }
4.3 上位机软件设计 4.3.1上位机软件编程思路
利用Visual Basic提供的MSComm控件可以简单便携地通过应用程序实现串行通信,也可以创建功能完备、具有事件驱动功能的高级通信工具。与DOS环境下用汇编或C语言等编制的串行通信程序及Windows环境下用Visual C编制的串行通信程序相比,在使用Visual Basic的MSComm控件实现串行通信时,程序员只需关心MSComm控件对Windows通信驱动程序的API函数的接口即可,换句话说,只需要设置和监视MSComm控件的属性和事件即可。
4.3.2 上位机程序 Modulel (Code)
Public Declare Function SetLayeredWindowAttributes Lib \ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Const WS_EX_LAYERED = &H80000 Public Const GWL_EXSTYLE = (-20) Public Const LWA_ALPHA = &H2 Public Const LWA_COLORKEY = &H1
Public Declare Function GetWindowLong Lib \Alias \(ByVal hwnd As Long, ByVal nIndex As Long) As Long
}
if(tmp==0 && P32==1) {
TF0=1;
// P2+=1; }
11
南通职业大学电子工程系毕业论文
Public Declare Function SetWindowLong Lib \Alias \(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Form1
Dim Buffer1(63488) As Byte Dim Buffer2(63488) As Byte Dim Buffer3(63488) As Byte Dim Data_point As Long Dim Wave_width As Integer Dim Width_per_BIT As Single Dim n As Integer Dim Time As Integer Dim Data_rate As Long Dim temp_long As Long Dim Click_flag As Boolean Dim Old_X, Old_Y As Single Dim Flag_about As Boolean
Function Draw_Square_Wave(ByVal Start As Long, ByVal x, Y, Width_per_20us As Integer, ByVal Channel As Integer)
Dim Time_long As Integer
Dim HEiGHT, LINE_COLOR, START_Y As Integer Dim Temp_buffer, Dp, Dp_old As Integer START_Y = Y HEiGHT = 200
LINE_COLOR = RGB(0, 0, 255)
Picture1.Line (0, START_Y)-(1, START_Y), LINE_COLOR Time_long = Picture1.Width / Width_per_20us For i = 0 To Int(Time_long / 8) Select Case Channel Case 1
Temp_buffer = Buffer1(Start + i) Case 2
Temp_buffer = Buffer2(Start + i) Case 3
12
共分享92篇相关文档