02-01-2010, 12:55 PM
			
							
		 | 
		
			 
			#2
			
		 | 
	
	| 
			
			
			
			 Đệ tử 7 túi 
			
		
			
			
			
				 
				Tham gia ngày: May 2005 
				
				
				
					Bài gửi: 258
 
: 
 
				 
				
				
				     
			 					
		
	 | 
	
	
	
	
		
		
		
		
	Trích: 
	
	
		
			
				
					Nguyên văn bởi  huancao_8x
					 
				 
				Các bạn cho mình hỏi đoạn code mình viết bằng Assembler điều khiển led sáng tắt dùng cờ delay thời gian:  
ORG    0000H 
MOV R1,#0 
HIC: 
 SETB P1.0 
 HERE: 
         ; Bat dau cho led sang  
 
     MOV TL0,#000H 
     MOV TH0,#000H 
       DELAYBOMAY: 
        SETB   TR0     ; KHOI DONG BO DINH THOI TIMER 0 
        AGAIN3:   JNB TF0,AGAIN3    ; HIEN THI CO TF DEN KHI NO VUOT QUA FFFFH....4 
        CLR    TR0              ; DUNG BO TIMER 
        CLR    TF0              ; XOA CO BO DINH THOI  
  DELAYPHAI: 
                   ; TAO 255 VONG LAP  
      INC R1       ; Tang them 1 
      CJNE R1,#255,HERE 
 
  
   CLR P1.0     ; Bat dau cho led tat 
 HERE5: 
         
 
     MOV TL0,#000H 
     MOV TH0,#000H 
       DELAYBOMAY5: 
        SETB   TR0     ; KHOI DONG BO DINH THOI TIMER 0 
        AGAIN5:   JNB TF0,AGAIN5    ; HIEN THI CO TF DEN KHI NO VUOT QUA FFFFH....4 
        CLR    TR0              ; DUNG BO TIMER 
        CLR    TF0              ; XOA CO BO DINH THOI  
  DELAY5: 
                   ; TAO 255 VONG LAP  
      INC R1       ; Tang them 1 
      CJNE R1,#255,HERE5 
 
ACALL HIC 
END 
 
 
 
Theo tính toán lý thuyết của mình thì với cờ TF cho chạy từ 0000H tới FFFFH đã mất khoảng 1.085 microgiay *   2^16 =  0.077s.  Sau đó mình tạo một vòng lặp khoảng 255 lần . Như vậy tổng thời gian ít nhất cho việc delay tắt và bật là 0.077*255= 19,67s( chưa kể thêm vài xung nhịp thời gian dùng cho các lệnh khác trong nhãn ). Nhưng thực tế khi chạy thử trên proteus nó chỉ delay trong khoảng 2s. Không biết mình sai lập trình hay sai ở chương trình proteus. Mong các bạn chỉ giúp vì mình rất cần sự chính xác trong delay tắt bật của led. 
			
		 | 
	 
	 
 ACALL HIC(thay lenh nay bang cau lenh ) 
JMP HIC  
		
	
		
		
		
		
			
				__________________ 
				viết chương trình cho vdk chạy ổn định là cả một vấn đề.
			 
		
		
		
		
	
	 | 
	
		 
						
		
		
		
		 
	 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 |