CHƯƠNG : LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 149 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 150 Nhận tín hiệu đk tốc độ từ máy tính i– Luận văn tốt nghiệp GVHDAbs(Qttrá : Thầy Nguyễ n Qtphải) < 5 N Thiện Thành Y Nhận tín hiệu đkChạ từ ymá y ntính thẳ g Qttrái > Qtphải N Y N Rẽ trái Thoát chế độ tự động Y Rẽ phải Kết thúc 8.2 Chương trình viết assembly cho vi xử lý 89C51 : ;ĐOẠN KHAI BÁO CÁC BIẾN ORG 0000H DECLARE: RRI EQU 20H RLE EQU 21H ;CHỨA GIÁ TRỊ QUANG TRỞ BÊN PHẢI ; CHỨA GIÁ TRỊ QUANG TRỞ BÊN TRÁI TAM EQU 22H ;BIẾN TẠM DÙNG ĐỂ ĐẢO BIT CBKC EQU 23H CÁCH INPUT EQU 24H CONTROL EQU 25H TỰ ĐỘNG VTOC EQU 26H ;CHỨA GIÁ TRỊ CẢM BIẾN KHOẢNG ;GIÁ TRỊ NHẬN VỀ TỪ MÁY TÍNH ;BIẾN XÁC ĐỊNH ĐK BẰNG TAY HAY ;BIẾN DÙNG ĐỂ THAY ĐỔI TỐC ĐỘ MANUAL EQU 27H ;BIẾN DÙNG ĐỂ ĐK BẰNG TAY BIEN_TRUYEN EQU 28H;BIẾN XÁC ĐNH THỨ TỰ TRUYỀN MOV MANUAL,#0 MOV SCON,#01010010B MOV TMOD,#21H SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 151 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành MOV TH1,#-3 SETB TR1 ;PHẦN CHƯƠNG TRÌNH CHÍNH MAIN: MOV P2,#40H MOV P1,#00H JNB RI,$ LCALL INCHAR ;PHẦN CHƯƠNG TRÌNH XÉT CHẾ ĐỘ ĐIỀU KHIỂN XET_AUTO: CJNE A,#6,XET_MANUAL MOV INPUT,#1 MOV BIEN_TRUYEN,#0 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 152 GVHD : Thầy Nguyễn Thiện Thành Luận văn tốt nghiệp SJMP AUTO XET_MANUAL: CJNE A,#7,XET_STOP MOV INPUT,#2 LJMP L_MANUAL XET_STOP: CJNE A,#8,MAIN SJMP MAIN ;ĐOẠN CHƯƠNG TRÌNH ĐIỀU KHIỂN TỰ ĐỘNG AUTO: JNB P3.2,INTERRUPT JNB P3.3,INTERRUPT_LEFT JNB P3.4,INTERRUPT_RIGHT LCALL CB_QUANG LCALL BINARY_BCD OUTPUT: JNB TI,SKIP1 MOV A,BIEN_TRUYEN CJNE A,#0,TRUYEN_QTRO TRUYEN_CBKC: MOV A,CBKC LCALL OUTCHAR INC BIEN_TRUYEN SJMP SKIP1 TRUYEN_QTRO: LCALL QTRO_LEFT JNB TI,$ LCALL LCALL OUTCHAR QTRO_RIGHT SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 153 MOV BIEN_TRUYEN,#0 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành JNB TI,$ LCALL OUTCHAR SKIP1: CLR SUBB C A,#10 JC MAIN1 MAIN1: MOV A,CBKC SUBB A,#128 JC THOÁT MAIN1 MOV ;NẾU KHOẢNG CÁCH >128 THÌ R1,#20 LJMP STOP ;ĐOẠN CHƯƠNG TRÌNH XỬ LÝ VA CHẠM INTERRUPT: MOV R3,#20 LOOP5: LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_NGHICH DJNZ R3,LOOP5 MOV R3,#40 LOOP6: LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_RIGHT DJNZ R3,LOOP6 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 154 MOV LOOP7: R3,#40 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành LCALL CB_QUANG LCALL BINARY_BCD LCALL DJNZ DRIVE_THUA N R3,LOOP7 SJMP AUTO INTERRUPT_LEFT: MOV R3,#20 LOOP8: LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_RIGHT DJNZ R3,LOOP8 MOV R3,#30 LOOP9: LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_THUA DJNZ N R3,LOOP9 LJMP AUTO INTERRUPT_RIGHT: MOV R3,#20 LOOP10: LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_LEFT SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 155 DJNZ R3,LOOP10 MOV LOOP11: R3,#30 Luận văn tốt nghiệp LCALL CB_QUANG LCALL BINARY_BCD LCALL DRIVE_THUAN DJNZ R3,LOOP11 LJMP AUTO GVHD : Thầy Nguyễn Thiện Thành MAIN1: JNB RI,SKIP2 LCALL INCHAR MOV INPUT,A CJNE A,#6,XET7 MOV BIEN_TRUYEN,#0 LJMP AUTO CJNE A,#7,XET8 LJMP L_MANUAL CJNE A,#8,SKIP2 LJMP MAIN XET6: XET7: XET8: SKIP2: CLR C MOV A,RLE SUBB A,RRI JC MAIN2 SUBB A,#5 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 156 JNC LEFT THUAN: LCALL DRIVE_THUAN LJMP AUTO MAIN2: Luận văn tốt nghiệp CLR C MOV A,RRI SUBB A,RLE SUBB A,#5 JC THUAN GVHD : Thầy Nguyễn Thiện Thành RIGHT: LCALL DRIVE_RIGHT LJMP AUTO LCALL DRIVE_LEFT LJMP AUTO LEFT: ;ĐOẠN CHƯƠNG TRÌNH XỬ LÝ DỪNG STOP: DRIVE_THUA N LCALL DJNZ R1,STOP MOV P2,#40H MOV P1,#00H MOV INPUT,#0 MOV A,CBKC JNB TI,$ OUTCHAR LCALL STOP1: VAN_TOC SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 157 LCALL DISPLAY LCALL JNB RI,SKIP3 INCHAR LCALL CJNE A,#8,SKIP3 LJMP MAIN SKIP3: SJMP STOP1 Luận văn tốt nghiệp GVHD : Thầy Nguyễ n Thiện Thành ;ĐOẠN CHƯƠNG TRÌNH ĐIỀU KHIỂN BẰNG NÚT NHẤN L_MANUAL: MOV P2,#40H MOV P1,#00H JNB RI,SKIP4 INCHAR LCALL XET_GIAM: CJNE A,#23,XET_TANG INC INPUT SJMP SKIP4 XET_TANG: CJNE A,#36,CONTINUE DJNZ INPUT,SKIP4 MOV INPUT,#1 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 158 GVHD : Thầy Nguyễn Thiện Thành Luận văn tốt nghiệp End Sub Private Sub Form_Load() yk = yk_1 = uk_1 = ylk = yrk = ulk_1 = urk_1 = dem = colornumber = Timer1.Enabled = True Timer1.Interval = 300 Timer2.Enabled = True Timer2.Interval = 50 End Sub Private Sub MSComm1_OnComm() If (MSComm1.CommEvent = comEvReceive) Then ttu_nhan = ttu_nhan + Select Case ttu_nhan Case Is = txtsensor.Text = Asc(MSComm1.Input) sensor = CInt(txtsensor.Text) If sensor >= 128 Then Timer1.Enabled = False Timer2.Enabled = False txtso.Text = txtvtoc.Text = Else Timer1.Enabled = True Timer2.Enabled = True comp_out SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 199 MSComm1.Output = Chr(Asc(capso)) Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Select Case capso Case Is = Timer2.Interval = 50 txtvtoc.Text = 20 Case Is = Timer2.Interval = 200 txtvtoc.Text = 10 Case Is = Timer2.Interval = 350 txtvtoc.Text = 6.8 Case Is = Timer2.Interval = 500 txtvtoc.Text = Case Is =5 Timer2.Interval = 650 txtvtoc.Text = End Select End If Case Is = txtqtroleft.Text = Asc(MSComm1.Input) CInt(txtqtroleft.Text) qtroleft = Case Is = txtqtroright.Text = Asc(MSComm1.Input) qtroright = CInt(txtqtroright.Text) ttu_nhan = comp_out1 If dkleft = dkright Then MSComm1.Output = "F" End If SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 200 If dkleft > dkright Then Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành MSComm1.Output = "L" End If If dkleft < dkright Then MSComm1.Output = "R" End If End Select End If End Sub Private Sub comp_out() Dim i, j As Integer Dim ea, eb As Single Dim netout, actv1(5) As Single Dim netin0(3), netin1(5), netin2(0) As Single Dim k As Byte trong_so uk = sensor / 500 k=0 Do netin0(0) = yk netin0(1) = yk_1 netin0(2) = uk netin0(3) = uk_1 For j = To netin1(j) = bi1(j) For i = To netin1(j) = netin1(j) + w1(j, i) * netin0(i) Next i ea = Exp(netin1(j)) eb = Exp((-1) * netin1(j)) SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 201 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành actv1(j) = (ea - eb) / (ea + eb) Next j netin2(0) = For i = To netin2(0) = netin2(0) + w2(0, i) * actv1(i) Next i netout = netin2(0) yk1 = netout yk_1 = yk yk = yk1 uk_1 = uk k = k + Loop Until k = 15 capso = CInt(10 * yk1) txtso.Text = capso txtyk1.Text = yk1 txtyk.Text = yk txtyk_1.Text = yk_1 txtuk.Text = uk txtuk_1.Text = uk_1 End Sub Private Sub comp_out1() Dim i, j As Integer Dim ea, eb As Single Dim netout(1), actv1(9) As Single Dim netin0(5), netin1(9), netin2(1) As Single trong_so1 ulk = qtroleft / 250 urk = qtroright / 250 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành netin0(0) = ulk netin0(1) = ulk_1 netin0(2) = urk SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 202 netin0(3) = urk_1 netin0(4) = ylk netin0(5) = urk For j = To netin1(j) = bias1(j) For i = To netin1(j) = netin1(j) + wt1(j, i) * netin0(i) Next i ea = Exp(netin1(j)) eb = Exp((-1) * netin1(j)) actv1(j) = (ea - eb) / (ea + eb) Next j For j = To netin2(j) = For i = To netin2(j) = netin2(0) + wt2(0, i) * actv1(i) Next i Next j If netin2(0) > Then netout(0) = Else netout(0) = End If If netin2(1) > Then netout(1) = Else Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành netout(1) = End If SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 203 ylk1 = netout(0) yrk1 = netout(1) dkleft = CInt(ylk1) dkright = CInt(yrk1) txtylk1.Text = ylk1 txtyrk1.Text = yrk1 txtulk.Text = ulk txturk.Text = urk ylk = ylk1 yrk = yrk1 ulk_1 = ulk urk_1 = urk End Sub Private Sub Timer1_Timer() If dem 2300 Then Image4.Left = 500 End If DrawWidth = colornumber = colornumber + ForeColor = QBColor(colornumber) Line (Image4.Left + Image4.Width, Label6.Top + Label6.Height / 2) (Label6.Left / + (Image4.Left + Image4.Width) / 2, Label6.Top + Label6.Height / 2) Line (Image4.Left + Image4.Width / 2, Image4.Top + Image4.Height) (Image4.Left + Image4.Width / 2, Image1.Top + Image1.Height / 2) ForeColor = QBColor(colornumber + 4) Line (Label6.Left / + (Image4.Left + Image4.Width) / 2, Label6.Top + Label6.Height / 2)-(Label6.Left, Label6.Top + Label6.Height / 2) Line (Image4.Left + Image4.Width / 2, Image1.Top + Image1.Height / 2)(Image1.Left, Image1.Top + Image1.Height / 2) colornumber = colornumber Mod 10 End Sub Private Sub Timer2_Timer() 'O to chuyen dong DrawWidth = ForeColor = QBColor(8) Line (Image3.Left + Image3.Width / 2, Image3.Top + Image3.Height) (Image3.Left + Image3.Width / 2, Image1.Top + Image1.Height / 2) SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 205 Line (Image1.Left + Image1.Width, Image1.Top + Image1.Height / 2) (Image3.Left + Image3.Width / 2, Image1.Top + Image1.Height / 2) Image3.Left = Image3.Left + 50 If Image3.Left > 7800 Then ForeColor = QBColor(8) Line (Label6.Left + Label6.Width, Label6.Top + Label6.Height / 2)(Image3.Left, Label6.Top + Label6.Height / 2) Image3.Left = 5800 Else colornumber = colornumber + ForeColor = QBColor(colornumber) Line (Label6.Left + Label6.Width, Label6.Top + Label6.Height / 2) (Image3.Left / + (Label6.Left + Label6.Width) / 2, Label6.Top + Label6.Height / 2) Line (Image3.Left + Image3.Width / 2, Image3.Top + Image3.Height) (Image3.Left + Image3.Width / 2, Image1.Top + Image1.Height / 2) ForeColor = QBColor(colornumber + 4) Line (Image3.Left / + (Label6.Left + Label6.Width) / 2, Label6.Top + Label6.Height / 2)-(Image3.Left, Label6.Top + Label6.Height / 2) Line (Image1.Left + Image1.Width, Image1.Top + Image1.Height / 2)(Image3.Left + Image3.Width / 2, Image1.Top + Image1.Height / 2) colornumber = colornumber Mod 10 End If End Sub 8.4.7 Module : Trọng số kết nối mạng huấn luyện tốc độ SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 206 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Option Explicit Public bi1(5) As Single Public w1(5, 3), w2(0, 5) As Single Public Sub trong_so() 'giá trò ngưỡng lớp neuron ẩn bi1(0) = -0.838091 bi1(1) = -1.127372 bi1(2) = -0.015699 bi1(3) = -0.02642 bi1(4) = -0.059934 bi1(5) = -0.028852 'trọng số lớp neuron đầu vào lớp neuron ẩn w1(0, 0) = -0.625121 w1(0, 1) = 0.980091 w1(0, 2) = 1.644939 w1(0, 3) = -1.829324 w1(1, 0) = 0.428379 w1(1, 1) = 0.091225 w1(1, 2) = -0.110632 w1(1, 3) = 2.705646 w1(2, 0) = -0.166446 w1(2, 1) = 0.154604 w1(2, 2) = 0.658901 w1(2, 3) = -0.75804 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 207 w1(3, 0) = 0.293515 w1(3, 1) = -0.062424 w1(3, 2) = -0.359857 w1(3, 3) = 0.654028 w1(4, 0) = -0.194339 w1(4, 1) = 0.192991 w1(4, 2) = 0.578051 w1(4, 3) = -0.515564 w1(5, 0) = -0.03317 w1(5, 1) = 0.091663 w1(5, 2) = 0.163897 w1(5, 3) = -0.153773 'trọng số lớp neuro ẩn lớp neuron đầu w2(0, 0) = -0.913941 w2(0, 1) = 0.661004 w2(0, 2) = -0.072451 w2(0, 3) = 0.012378 w2(0, 4) = -0.10643 w2(0, 5) = -0.036297 End Sub 8.4.8 Module : Trọng số kết nối mạng huấn luyện hành vi Robot chạy thẳng , rẽ trái ,rẽ phải SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 208 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Option Explicit Public bias1(9) As Single Public wt1(9, 5), wt2(1, 9) As Single Public Sub trong_so1() 'giá trò ngưỡng lớp neuron ẩn bias1(0) = -0.002176 bias1(1) = 0.011264 bias1(2) = 0.005802 bias1(3) = -0.019647 bias1(4) = -0.007982 bias1(5) = -0.011101 bias1(6) = -0.003865 bias1(7) = -0.028207 bias1(8) = 0.002008 bias1(9) = 0.010928 'trọng số lớp neuron đầu vào lớp neuron ẩn wt1(0, 0) = 0.617251 wt1(0, 1) = 0.006759 wt1(0, 2) = -0.611946 wt1(0, 3) = 0.008967 wt1(0, 4) = -0.00068 wt1(0, 5) = 0.027049 wt1(1, 0) = -0.064578 wt1(1, 1) = -0.001474 wt1(1, 2) = 0.064821 wt1(1, 3) = 0.013051 wt1(1, 4) = -0.00136 wt1(1, 5) = -0.094324 wt1(2, 0) = 0.495083 wt1(2, 1) = 0.003908 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 209 wt1(2, 2) = -0.494361 wt1(2, 3) = 0.00589 wt1(2, 4) = 0.001039 wt1(2, 5) = -0.093274 wt1(3, 0) = 0.057129 wt1(3, 1) = 0.013234 wt1(3, 2) = -0.050589 wt1(3, 3) = -0.002249 wt1(3, 4) = 0.006361 wt1(3, 5) = -0.084088 wt1(4, 0) = -0.090631 wt1(4, 1) = 0.006788 wt1(4, 2) = 0.094757 wt1(4, 3) = -0.000324 wt1(4, 4) = 0.004571 wt1(4, 5) = 0.036058 wt1(5, 0) = -0.033499 wt1(5, 1) = 0.008382 wt1(5, 2) = 0.03776 wt1(5, 3) = -0.00028 wt1(5, 4) = 0.00477 wt1(5, 5) = -0.044621 wt1(6, 0) = -0.504741 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 210 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành wt1(6, 1) = 0.006525 wt1(6, 2) = 0.508393 wt1(6, 3) = 0.00038 wt1(6, 4) = 0.00606 wt1(6, 5) = 0.051006 wt1(7, 0) = -0.256004 wt1(7, 1) = 0.020769 wt1(7, 2) = 0.266814 wt1(7, 3) = 0.003664 wt1(7, 4) = 0.010911 wt1(7, 5) = 0.000644 wt1(8, 0) = 0.220638 wt1(8, 1) = 0.001704 wt1(8, 2) = -0.220922 wt1(8, 3) = 0.008627 wt1(8, 4) = -0.000937 wt1(8, 5) = -0.051317 wt1(9, 0) = -0.788846 wt1(9, 1) = -0.00278 wt1(9, 2) = 0.787527 wt1(9, 3) = 0.007389 wt1(9, 4) = 0.000193 wt1(9, 5) = -0.000662 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 211 'trọng số lớp neuro ẩn lớp neuron đầu wt2(0, 0) = -0.011727 wt2(0, 1) = -0.008157 SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 212 Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành wt2(0, 2) = -0.01205 wt2(0, 3) = 0.003013 wt2(0, 4) = 0.00105 wt2(0, 5) = 0.001348 wt2(0, 6) = 0.003158 wt2(0, 7) = 0.004685 wt2(0, 8) = -0.006371 wt2(0, 9) = 0.002045 wt2(1, 0) = 0.004877 wt2(1, 1) = -0.01076 wt2(1, 2) = 0.001014 wt2(1, 3) = 0.003359 wt2(1, 4) = -0.00166 wt2(1, 5) = -0.000277 wt2(1, 6) = -0.01074 wt2(1, 7) = -0.004335 wt2(1, 8) = -0.000464 wt2(1, 9) = -0.019236 End Sub SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 213 [...]... "2400,N ,8, 1" frmauto1.MSComm1.Settings = "2400,N ,8, 1" frmmanual.MSComm1.Settings = "2400,N ,8, 1" End Sub Private Sub Option8_Click() frmcontrol.txtbaud.Text = " 480 0" frmauto.MSComm1.Settings = " 480 0,N ,8, 1" frmauto1.MSComm1.Settings = " 480 0,N ,8, 1" frmmanual.MSComm1.Settings = " 480 0,N ,8, 1" End Sub Private Sub Option9_Click() frmcontrol.txtbaud.Text = "9600" frmauto.MSComm1.Settings = "9600,N ,8, 1" frmauto1.MSComm1.Settings... ;KẾT THÚC CHƯƠNG TRÌNH CHÍNH ;CHƯƠNG TRÌNH CON ĐIỀU KHIỂN CHẠY TỚI DRIVE_THUAN: MOV R0,#0 LOOP1: MOV A,R0 INC R0 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,#40H MOV P1,A MOV VTOC,INPUT ;ĐOẠN CHƯƠNG TRÌNH THAY ĐỔI TỐC ĐỘ Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành CHANGE1: LCALL DISPLAY LCALL VAN_TOC DJNZ VTOC,CHANGE1 CJNE RET R0, #8, LOOP1 ;CHƯƠNG TRÌNH CON CHẠY LÙI DRIVE_NGHICH: MOV R4, #8 LOOP2: DEC... MOV RET RLE,A ;CHƯƠNG TRÌNH CON ĐỌC CẢM BIẾN KHOẢNG CÁCH CB_QUANG: MOV DPTR,#2000H MOVX @DPTR,A LCALL DELAY120us MOVX A,@DPTR MOV TAM,A LCALL DAO_BIT MOV CBKC,A RET ;CHƯƠNG TRÌNH CON XUẤT 1 BYTE LÊN MÁY TÍNH OUTCHAR: CLR TI MOV SBUF,A Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành RET ;CHƯƠNG TRÌNH CON NHẬN 1 BYTE VỀ TỪ MÁY TÍNH INCHAR: CLR MOV RI A,SBUF CLR C SUBB RET A,# 48 ;CHƯƠNG TRÌNH CON ĐẢO... LCALL DISPLAY LCALL VAN_TOC CJNE RET R4,#0,LOOP2 ;CHƯƠNG TRÌNH CON RẼ PHẢI DRIVE_RIGHT: MOV R0,#0 LOOP3: MOV A,R0 INC R0 MOV DPTR,#RTABLE MOVC A,@A+DPTR MOV P2,#40H MOV P1,A Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành MOV VTOC,INPUT ;ĐOẠN CHƯƠNG TRÌNH THAY ĐỔI TỐC ĐỘ CHANGE2: LCALL LCALL DISPLAY VAN_TOC DJNZ VTOC,CHANGE2 CJNE RET R0, #8, LOOP3 ;CHƯƠNG TRÌNH CON RẼ TRÁI DRIVE_LEFT: SVTH : Hoàng Trung... trang 163 MOV R1, #8 SHIFT: MOV A,TAM RLC A MOV TAM,A MOV A,R2 RRC A MOV R2,A DJNZ RET R1,SHIFT ;CHƯƠNG TRÌNH CON DELAY 120us DELAY120us: MOV 7FH,#60 DJNZ 7FH,$ RET ;CHƯƠNG TRÌNH CON HIỂN THỊ GIÁ TRỊ CẢM BIẾN KHOẢNG CÁCH DISPLAY: PUSH ACC MOV A,R6 ANL A,#0FH Luận văn tốt nghiệp MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV P2,#60H GVHD : Thầy Nguyễn Thiện Thành NOP NOP MOV P2, #80 H MOV P1,#08H LCALL DELAY SVTH... "600,N ,8, 1" frmauto1.MSComm1.Settings = "600,N ,8, 1" frmmanual.MSComm1.Settings = "600,N ,8, 1" End Sub Private Sub Option6_Click() frmcontrol.txtbaud.Text = "1200" frmauto.MSComm1.Settings = "1200,N ,8, 1" frmauto1.MSComm1.Settings = "1200,N ,8, 1" frmmanual.MSComm1.Settings = "1200,N ,8, 1" End Sub Private Sub Option7_Click() frmcontrol.txtbaud.Text = "2400" SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 183 ... A,@A+DPTR MOV P2,#40H MOV P1,A MOV VTOC,INPUT ;ĐOẠN CHƯƠNG TRÌNH THAY ĐỔI TỐC ĐỘ CHANGE3: LCALL DISPLAY LCALL VAN_TOC DJNZ VTOC,CHANGE3 CJNE R0, #8, LOOP4 RET ;CHƯƠNG TRÌNH CON ĐỌC QUANG TRỞ BÊN PHẢI QTRO_RIGHT: MOV DPTR,#2001H MOVX @DPTR,A Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành LCALL DELAY120us MOVX A,@DPTR MOV TAM,A LCALL DAO_BIT MOV RRI,A RET ;CHƯƠNG TRÌNH CON ĐỌC QUANG TRỞ BÊN TRÁI QTRO_LEFT:... frmauto1.MSComm1.Settings = "9600,N ,8, 1" frmmanual.MSComm1.Settings = "9600,N ,8, 1" End Sub Luận văn tốt nghiệp GVHD : Thầy Nguyễn Thiện Thành Private Sub Option10_Click() frmcontrol.txtbaud.Text = "19200" frmauto.MSComm1.Settings = "19200,N ,8, 1" frmauto1.MSComm1.Settings = "19200,N ,8, 1" frmmanual.MSComm1.Settings = "19200,N ,8, 1" End Sub 8. 4.3 Form : Control SVTH : Hoàng Trung Hiếu & Nguyễn Trung Dũng trang 184 ... (i=0;i ... THÚC CHƯƠNG TRÌNH CHÍNH ;CHƯƠNG TRÌNH CON ĐIỀU KHIỂN CHẠY TỚI DRIVE_THUAN: MOV R0,#0 LOOP1: MOV A,R0 INC R0 MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P2,#40H MOV P1,A MOV VTOC,INPUT ;ĐOẠN CHƯƠNG TRÌNH... "2400,N ,8, 1" frmauto1.MSComm1.Settings = "2400,N ,8, 1" frmmanual.MSComm1.Settings = "2400,N ,8, 1" End Sub Private Sub Option8_Click() frmcontrol.txtbaud.Text = " 480 0" frmauto.MSComm1.Settings = " 480 0,N ,8, 1"... MOV P2,#40H MOV P1,A MOV VTOC,INPUT ;ĐOẠN CHƯƠNG TRÌNH THAY ĐỔI TỐC ĐỘ CHANGE3: LCALL DISPLAY LCALL VAN_TOC DJNZ VTOC,CHANGE3 CJNE R0, #8, LOOP4 RET ;CHƯƠNG TRÌNH CON ĐỌC QUANG TRỞ BÊN PHẢI QTRO_RIGHT: