31-05-2011, 10:01 PM | #2 |
Nhập môn đệ tử
Tham gia ngày: Mar 2010
Bài gửi: 2
: |
Thoát khỏi vòng lập để nhận dữ liệu
CÁC BẠN LÀM ƠN CHO HỎI : SAU KHI NHẬN DỮ LIỆU XONG (ND X 13 Y 12) XỬ LÝ (TÁCH SỐ) CHẠY ĐÈN GIAO THÔNG MÌNH MUỐN GỬI DỮ LIỆU TIẾP THEO ĐỂ THAY ĐỔI ND CŨ THI KHÔNG DƯỢC CODE:
#include <16f877a.h> #include <string.h> #include <stdlib.h> #fuses nowdt,noprotect,nolvp,xt,put #use delay(clock=4000000) #use fast_io(b) #use fast_io(d) #use fast_io(a) #byte porta=0x05 #byte portb=0x06 #byte porte=0x09 #bit a0=porta.0 #bit a1=porta.1 #bit a2=porta.2 #bit e0=porte.0 #bit e1=porte.1 #bit e2=porte.2 #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8) int i,DENA,DENB,DEM,DA,VA,XA,DB,VB,XB,count,TAMA,j,z,t ,dau,cuoi,done; char data[90],ndung1[15],ndung2[15]; //GHUONG TRINH NGAT// #INT_RDA void ngat() {data[count]=getc(); count++;} //CHUONG TRINH CON// void GOI_DEN(); void main() { set_tris_b(0b00000000); set_tris_a(0b000000); set_tris_e(0b000); output_b(0); output_e(0); output_a(0); enable_interrupts(global);//Cho phep ngat toan cuc enable_interrupts(int_rda);//Cho phep ngat nhan noi tiep getc(); a0=1; e0=1; delay_ms(10000); XU_LY_ND: ndung1: for(i=0;i<strlen(data);i++) {if (data[i]=='x') z=0;dau=i+2;cuoi=i+3; for(j=dau;j<cuoi;j++) { ndung1[z]=data[j]; z++;}} ndung: for(i=0;i<strlen(data);i++) {if (data[i]=='y') z=0;dau=i+2;cuoi=i+3; for(j=dau;j<cuoi;j++) { ndung2[z]=data[j]; z++;}} DA=atoi(ndung1); DB=atoi(ndung2); //XOA NDUNG/// for(i=0;i<10;i++) {ndung1[i]=0; ndung2[i]=0;} //XOA_DATA// for (i=0;i<=strlen(data);i++) { data[i]=0;} VA=3; VB=3; XA=DB-3; XB=DA-3; DEM=4; CHAY: DENA=DA; a0=1; e0=0; DENB=XB; e2=1; while(!KBHIT()) {HIEN_THI: for (i=0;i<25;i++) { if (DENA<=9) TAMA=0; else TAMA=16; portb=DENA/10|TAMA; delay_ms(30); TAMA=32; portb=DENA%10|TAMA; delay_ms(30); if (DENB<=9) TAMA=0; else TAMA=64; portb=DENB/10|TAMA; delay_ms(30); TAMA=128; portb=DENB%10|TAMA; delay_ms(30); } DENA=DENA-1; DENB=DENB-1; IF (DENA==0||DENB==0) { DEM=DEM-1; GOI_DEN();} goto HIEN_THI;} //DIEU KIEN SAI// a0=0; a1=0; a2=0; e0=0; e1=0; e2=0; a0=1; e0=1; getc(); delay_ms(5000); goto XU_LY_ND;} ///CHUONG TRINH GOI DEN/// void GOI_DEN() { switch (DEM) { case 0: { DEM=4; DENA=DA; a0=1; a1=0; DENB=XB; e2=1; e0=0; break;} case 1: { DENA=VA; a1=1; a2=0; break;} case 2: { DENA=XA; a2=1; a0=0; DENB=DB; e0=1; e1=0; break;} case 3: { DENB=VB; e2=0; e1=1; break;} } } |
Ðiều Chỉnh | |
Xếp Bài | |
|
|