Professional Documents
Culture Documents
TI: THIT K MCH V VIT CHNG TRNH IU KHIN HIN TH MT DNG CH BT K CHY TRN LCD
1 . Tng quan LCD Ngy nay LCD vi nhng tnh nng ni tri ca n c s dng rt nhiu trong vi iu khin. Kh nng hin th ca LCD l rt a dng, trc quan (ch, s v nhiu loi k t ha khc ), d dng a vo mch ng dng chng hn nh : in thoi di ng, my game v cc lnh vc khc m gi thnh r LCD s dng trong mc l LCD : LM016L LCD LM016L l loi mn hnh hin th c 16 k t 2 dng, bao gm tt c cc k t chun ngoi ra cn c mt s k t c bit nhng khng c k t du ting Vit. Hnh dng v s chn ca LCD:
Giao tip ca LCD vi 89S52 trong mch c kt ni vi nhau thng qua Port P1 < P1.0 P1.7 >
4. Gii thiu v MAX232 Vi mch MAX 232 ca hng MAXIM l 1 vi mch chuyn dng trong giao din ni tip vi my tnh. Chng c nhim v chuyn i mc TTL li vo thnh mc +10V hoc 10V pha truyn v cc mc +3+15V hoc -3-15V thnh mc TTL pha nhn. Vi mch MAX 232 c hai b m v hai b nhn. ng dn iu khin li vo CTS,iu khin vic xut ra d liu cng ni tip khi cn thit, c ni vi chn 9 ca vimch MAX 232. Cn chn RST (chn 10 ca vi mch MAX ) ni vi ng dn bt tay iu khin qu trnh nhn.
5 / Phn chng trnh Chng trnh cho VDK: #include <REGX52.H> #include <stdio.h> #include<serial.h> #include<lcd.h> int timer=0; char datax[10]; int dem=0,k=0; void delay(timer) { int ix,jx;
for(ix=0;ix<timer;ix++) for(jx=0;jx<=150;jx++); } void receive_data() interrupt 4 { if(RI==1) { RI=0; if (SBUF=='@') dem=0 ; datax[dem]=SBUF ; dem++; } } void main(void) { uart_init() setting(); home(); command(LCD_DISPLAY_ON ); get_x_y(1,16); print_str("SINH VIEN THUC HIEN"); ;
for(k=0;k<=17;k++) { move_display(1,1); delay(150); } clear(); delay(100); get_x_y(1,16); print_str("NGUYEN TRI TRUONG"); for(k=0;k<=15;k++) { move_display(1,1); delay(100); } for(k=0;k<=4;k++) { command(LCD_CURSOR_ON); delay(100); command(LCD_DISPLAY_ON); delay(150); } clear();
get_x_y(1,7); print_str("*Vs*"); delay(100); for(k=0;k<=4;k++) { command(LCD_CURSOR_ON); delay(100); command(LCD_DISPLAY_ON); delay(100); } clear(); get_x_y(1,16); print_str("NGUYEN VIET VUNG"); for(k=0;k<=14;k++) { move_display(1,1); delay(100); } for(k=0;k<=4;k++) { command(LCD_CURSOR_ON); delay(100);
command(LCD_DISPLAY_ON); delay(150); } clear(); command(LCD_DISPLAY_ON ); while(1) { home(); if (datax[6]=='^' ) print_str("HN "); else print_str("HCM"); get_x_y(1,6); print_char(datax[1]/10+0x30); print_char(datax[1]%10+0x30); print_char('/'); print_char(datax[2]/10+0x30); print_char(datax[2]%10+0x30); print_str("/200"); print_char(datax[3]/10+0x30); print_char(datax[3]%10+0x30); get_x_y(2,1);
print_char(datax[4]/10+0x30); print_char(datax[4]%10+0x30); print_char(':'); print_char(datax[5]/10+0x30); print_char(datax[5]%10+0x30); get_x_y(2,9); print_char(datax[7]/10+0x30); print_char(datax[7]%10+0x30); print_char(0xdf); print_char('C'); } } Chng trnh cho cng ni tip:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, _ ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long Private Declare Function InternetGetConnectedStateEx Lib "Wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long Dim Ret As Long
Dim sConnType As String * 255 Dim SearchString, SearchChar, MyPos Dim ak As Long Private Const pi As Double = 3.14159265358979
Private Sub MakeRoundObject(objObject As Object, Value As Long) Static lngHeight, lngLong, lngReturn, lngWidth As Long lngWidth = objObject.Width / Screen.TwipsPerPixelX lngHeight = objObject.Height / Screen.TwipsPerPixelY SetWindowRgn objObject.hWnd, CreateRoundRectRgn(0, 0, lngWidth, lngHeight, Value, Value), True End Sub Private Sub Command1_Click() Unload Me End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then App.TaskVisible = False Unload Me End End If End Sub Private Sub Form_Load() Dim intX As Integer Call MakeRoundObject(frmMain, 20) Call tmrClock_Timer Dim Ret As Long Ret = InternetGetConnectedStateEx(Ret, sConnType, 254, 0) Combo1.AddItem "HA NOI", 0 Combo1.AddItem "HO CHI MINH", 1
Me.PSet (1100 * Cos(intX * pi / 180) + lineSecond.X1, 1100 * Sin(intX * pi / 180) + lineSecond.Y1) Else Me.DrawWidth = 3 Me.PSet (1100 * Cos(intX * pi / 180) + lineSecond.X1, 1100 * Sin(intX * pi / 180) + lineSecond.Y1) End If Next intX MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) ReleaseCapture SendMessage Me.hWnd, &HA1, 2, 0& End Sub Private Sub lblTime_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Call Form_MouseDown(Button, Shift, X, Y) End Sub Private Sub Timer1_Timer() MSComm1.Output = "@" MSComm1.Output = Chr(Day(Now)) MSComm1.Output = Chr(Month(Now)) MSComm1.Output = Chr(Year(Now) - 2000) MSComm1.Output = Chr(Hour(Now)) MSComm1.Output = Chr(Minute(Now)) If Combo1 = "HO CHI MINH" Then MSComm1.Output = "*" Else MSComm1.Output = "^" End If ak = lable4 MSComm1.Output = Chr(Abs(ak)) End Sub Private Sub tmrClock_Timer() Dim dblSecond As Double, dblMinute As Double, dblHour As Double dblSecond = Second(Now) * 6 - 90
dblMinute = (Minute(Now) + Second(Now) / 60) * 6 - 90 dblHour = (Hour(Now) + Minute(Now) / 60) * 30 - 90 lineSecond.X2 = 1000 * Cos(dblSecond * pi / 180) + lineSecond.X1 lineSecond.Y2 = 1000 * Sin(dblSecond * pi / 180) + lineSecond.Y1 lineMinute.X2 = 900 * Cos(dblMinute * pi / 180) + lineMinute.X1 lineMinute.Y2 = 900 * Sin(dblMinute * pi / 180) + lineMinute.Y1 lineHour.X2 = 700 * Cos(dblHour * pi / 180) + lineHour.X1 lineHour.Y2 = 700 * Sin(dblHour * pi / 180) + lineHour.Y1 lblTime.Caption = Format(Now, "hh:mm:ss") Label1.Caption = Format(Now, "dd/mm/yyyy") End Sub
Private Sub Combo1_Click() If Ret = 0 Then If Combo1 = "HA NOI" Then Call DownloadFile1 lable4 = "38" Picture1.Picture = LoadPicture(App.Path & "\1.gif") Else Call DownloadFile2 lable4 = "40" Picture1.Picture = LoadPicture(App.Path & "\2.gif") End If ' Set fso = CreateObject("Scripting.FileSystemObject").OpenTextFile("D:\Date.sys", 1) 'S = fso.ReadAll: S = Right(S, Len(S) - InStrRev(S, " ") - 3) ' S = Left(S, 38): MsgBox Left(S, InStrRev(S, ":") - 1) ' Set fso = Nothing: Kill "D:\Date.sys" Else MsgBox "KHONG THE KET NOI VAO MANG" End If
End Sub
5 / Mch m phng