chương 8 lưu đồ giải thuật và chương trình

65 1K 0
chương 8  lưu đồ giải thuật và chương trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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:

Ngày đăng: 28/11/2015, 06:46

Từ khóa liên quan

Mục lục

  • 8.2. Chương trình viết bằng assembly cho vi xử lý 89C51 :

  • 8.3. Chương trình viết bằng C để huấn luyện cho mạng Neuron :

  • 8.4. Chương trình giao diện trên máy tính viết bằng Visual Basic : 8.4.1. Form : Main ( Mobile Robot )

Tài liệu cùng người dùng

Tài liệu liên quan