You are on page 1of 13

BO CO BI TP LN MN KIN TRC MY TNH

TI: THIT K MCH V VIT CHNG TRNH IU KHIN HIN TH MT DNG CH BT K CHY TRN LCD

GV: TNG VN LUYN

SVTH: NGUYN TR TRNG NGUYN VIT VNG

I / TNG QUAN V LCD V CCH GIAO TIP CA LCD VI 89S52

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:

2 / CCH GIAO TIP CA LCD VI 89S52

Giao tip ca LCD vi 89S52 trong mch c kt ni vi nhau thng qua Port P1 < P1.0 P1.7 >

3 / Gii thiu v 89S52 S chn ca 89S52

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

For intX = 0 To 360 Step 6 If intX Mod 30 = 0 Then Me.DrawWidth = 6

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, "&nbsp") - 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

You might also like