Tạo Chương Trình Trễ 1 Giây Cho 89c51

  • Đăng ký hoặc đăng nhập
    • Logging in... Ghi Nhớ? Ðăng Nhập Forgot password or user name? hoặc Đăng ký
    • Log in with Facebook
  • Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo Collapse No announcement yet. tạo chương trình trễ 1 giây cho 89c51 Collapse X Collapse
  • Bài viết
  • Hoạt động gần đây
  • Tìm kiếm
  • Trang of 2
  • Lọc
  • Giờ All Time hôm nay Last Week Last Month
  • Show All Discussions only Photos only Videos only Links only Polls only Events only
Filtered by: Clear All new posts Trước 1 2 template Next
  • nhihuynhbmt nhihuynhbmt Thành viên mới
    • Tham gia: Dec 2011
    • Bài viết: 6
    • Share
    • Tweet
    #1

    tạo chương trình trễ 1 giây cho 89c51

    26-04-2012, 21:56 các bác giúp em tạo chương trình trể 1s cho ic 89c51 với Tags: None
  • vietthanh123 vietthanh123 Thành viên tích cực
    • Tham gia: Mar 2011
    • Bài viết: 479
    • Share
    • Tweet
    #2 26-04-2012, 22:06 Bạn tham khảo: void delay_10ms (unsigned int time) { unsigned int x; for(x=1;x<=time;x++) { TMOD=0x11; TH0=55536/256; TL0=55536%256; TR0=1; while(!TF0); TF0=TR0=0; } } Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc. http://diencongnghiep360.com/ http://tudienhathe.vn/

    Comment

    Gửi bài viết Huỷ bỏ
  • dangemailbox dangemailbox Thành viên tích cực
    • Tham gia: Apr 2012
    • Bài viết: 118
    • Share
    • Tweet
    #3 27-04-2012, 01:53 Nếu bạn dùng thạch anh 12Mhz có thể xử dụng chương trình con như sau: void Delay_ms(unsigned int t) // t là thời gian Delay, tính bằng đơn vi ms { unsigned int x,y; for(x=0;x<t;x++) { for(y=0;y<=120;y++); } } Sau đó bạn có thể gọi như sau: Delay_ms(1000); // Delay 1s

    Comment

    Gửi bài viết Huỷ bỏ
  • fee_08 fee_08 Thành viên tích cực
    • Tham gia: Mar 2011
    • Bài viết: 201
    • Share
    • Tweet
    #4 27-04-2012, 08:59 Dùng timer là chính xác nhất ! Kể thằng KeilC hỗ trợ hàm delay có phải nhàn hơn bao nhiêu k.

    Comment

    Gửi bài viết Huỷ bỏ
  • tienhuypro tienhuypro Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 382
    • Share
    • Tweet
    #5 27-04-2012, 12:35 Nguyên văn bởi nhihuynhbmt Xem bài viết các bác giúp em tạo chương trình trể 1s cho ic 89c51 với Delay viết bằng assembly với thạch anh là 24Mhz: Đây là code delay chuẩn theo ms và tối đa là 255ms Code: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_ms: push 7 push 6 push 5 mov r5,num_ms mov r6,#4 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(489+2)*4=2000 ; djnz r5,$-8 ;(2000+2)*num_ms= clk_delay pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_ms/1000 (s) pop 7 ; =num_ms (ms) ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Còn đây là code chuẩn delay s và tối đa delay là 255s Code: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_s: push 7 push 6 push 5 push 4 mov r4,num_s mov r5,#20 mov r6,#200 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(498+2)*200=100000 djnz r5,$-8 ;(100000+2)*20=2000000 djnz r4,$-12 ;2000000*num_s = clk_delay pop 4 ; pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_s(s) pop 7 ; ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Chú ý: num_ms và num_s là biến ví dụ delay: delay 10s và 50ms: Code: num_ms equ 30h num_s equ 31h mov num_ms,#50 mov num_s,#10 call delay_ms call delay_s Email: Tel: 0983.497.310

    Comment

    Gửi bài viết Huỷ bỏ
  • bienhou bienhou Thành viên tích cực
    • Tham gia: Dec 2011
    • Bài viết: 971
    • Share
    • Tweet
    #6 27-04-2012, 15:29 dùng timer như bác ViệtThanh đó, chính xác hơn cả Nguyễn Huy Biên - 01649 802 694 gmail :

    Comment

    Gửi bài viết Huỷ bỏ
  • Ck33spkt Ck33spkt Thành viên tích cực
    • Tham gia: Apr 2010
    • Bài viết: 615
    • Share
    • Tweet
    #7 27-04-2012, 22:51 Nguyên văn bởi tienhuypro Xem bài viết Delay viết bằng assembly với thạch anh là 24Mhz: Đây là code delay chuẩn theo ms và tối đa là 255ms Code: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_ms: push 7 push 6 push 5 mov r5,num_ms mov r6,#4 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(489+2)*4=2000 ; djnz r5,$-8 ;(2000+2)*num_ms= clk_delay pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_ms/1000 (s) pop 7 ; =num_ms (ms) ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Còn đây là code chuẩn delay s và tối đa delay là 255s Code: ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_s: push 7 push 6 push 5 push 4 mov r4,num_s mov r5,#20 mov r6,#200 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(498+2)*200=100000 djnz r5,$-8 ;(100000+2)*20=2000000 djnz r4,$-12 ;2000000*num_s = clk_delay pop 4 ; pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_s(s) pop 7 ; ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Chú ý: num_ms và num_s là biến ví dụ delay: delay 10s và 50ms: Code: num_ms equ 30h num_s equ 31h mov num_ms,#50 mov num_s,#10 call delay_ms call delay_s Bác tính toán được bộ code này hay thật. Bác có biết về lập trình cho LCD không bác vào link này giúp em với: http://www.dientuvietnam.net/forums/...8-bits-114797/

    Comment

    Gửi bài viết Huỷ bỏ
  • trimen trimen Thành viên tích cực
    • Tham gia: Nov 2009
    • Bài viết: 189
    • Share
    • Tweet
    #8 27-04-2012, 23:59 1 vài chuơng trình delay cho thạch anh 12mhz: Delay1ms: call t1s t1s: push 30h push 31h push 32h mov 30h,#242 x2t1s:mov 31h,#8 x1t1s:mov 32h,#0 djnz 32h,$ djnz 31h,x1t1s djnz 30h,x2t1s push 33h mov 33h,#16 djnz 33h,$ pop 33h pop 32h pop 31h pop 30h ret Delay50ms: t50ms: push 30h push 31h mov 30h,#97 mov 31h,#255 lap: djnz 31h,$ djnz 30h,lap pop 31h pop 30h mov r0,#64 djnz r0,$ ret

    Comment

    Gửi bài viết Huỷ bỏ
  • tienhuypro tienhuypro Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 382
    • Share
    • Tweet
    #9 28-04-2012, 13:54 Nguyên văn bởi Ck33spkt Xem bài viết Bác tính toán được bộ code này hay thật. Bác có biết về lập trình cho LCD không bác vào link này giúp em với: http://www.dientuvietnam.net/forums/...8-bits-114797/ Đã sửa code cho bạn xong rùi, test thế nào nhé. Nếu OK thì bấm thanks cái cho vui nha Email: Tel: 0983.497.310

    Comment

    Gửi bài viết Huỷ bỏ
  • nhihuynhbmt nhihuynhbmt Thành viên mới
    • Tham gia: Dec 2011
    • Bài viết: 6
    • Share
    • Tweet
    #10 05-05-2012, 07:50 em viết chương trình bằng ngôn ngữ asm.có bác nào biết viết delay 1s ko giúp em với.em dùng thạch anh 12mhz.em đx viết chương trình xong chỉ cần chương trình con dlay trể 1s nữa ghép vào là ok.thank you! Last edited by nhihuynhbmt; 05-05-2012, 19:11.

    Comment

    Gửi bài viết Huỷ bỏ
  • dtcn_112 dtcn_112 Thành viên tích cực
    • Tham gia: Apr 2012
    • Bài viết: 267
    • Share
    • Tweet
    #11 05-05-2012, 13:24 cái này có rất nhiều bạn tìm đọc trong 4rum nếu mới bắt đầu thì tìm đọc tài liệu của thầy:Phạm Hùng Kim Khánh.

    Comment

    Gửi bài viết Huỷ bỏ
  • tienhuypro tienhuypro Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 382
    • Share
    • Tweet
    #12 05-05-2012, 19:20 Nguyên văn bởi nhihuynhbmt Xem bài viết em viết chương trình bằng ngôn ngữ asm.có bác nào biết viết delay 1s ko giúp em với.em dùng thạch anh 12mhz.em đx viết chương trình xong chỉ cần chương trình con dlay trể 1s nữa ghép vào là ok.thank you! Đã có code ở trên rồi đó bạn. Vừa delay_s và delay_ms Email: Tel: 0983.497.310

    Comment

    Gửi bài viết Huỷ bỏ
  • Ck33spkt Ck33spkt Thành viên tích cực
    • Tham gia: Apr 2010
    • Bài viết: 615
    • Share
    • Tweet
    #13 05-05-2012, 22:11 Nguyên văn bởi nhihuynhbmt Xem bài viết em viết chương trình bằng ngôn ngữ asm.có bác nào biết viết delay 1s ko giúp em với.em dùng thạch anh 12mhz.em đx viết chương trình xong chỉ cần chương trình con dlay trể 1s nữa ghép vào là ok.thank you! Bạn này không chịu đọc mấy comment của bác tienhuypro ở trên hả. Bác ấy đã tính toán và giải thích code khá chi tiết rồi còn gì. Nếu không thích code trên thì mình cho bạn 1 code này: Code: ; START: Wait loop, time: 1 s ; Clock: 12000.0 kHz (12 / MC) ; Used registers: R0, R1, R2, R3 delay_1ms: PUSH 3 PUSH 2 PUSH 1 PUSH 0 MOV R3, #03h MOV R2, #0D2h MOV R1, #24h MOV R0, #14h DJNZ R0, $ DJNZ R1, $-5 DJNZ R2, $-9 DJNZ R3, $-13 MOV R0, #059h DJNZ R0, $ POP 0 POP 1 POP 2 POP 3 RET ; END: Wait loop

    Comment

    Gửi bài viết Huỷ bỏ
  • laicong90 laicong90 Thành viên mới
    • Tham gia: Jun 2012
    • Bài viết: 1
    • Share
    • Tweet
    #14 26-06-2012, 21:17 Chuong trjnh &quot;TRE 1S&quot; TRE 1S: MOV R0,#20 NHAN: MOV TMOD,#01H MOV TL0,#0AFH MOV TH0,#0C3H SETB TR0 CLR TF0 JNB TF0,S DJNZ R0,NHAN RET END Chúc các bác thành công!!!

    Comment

    Gửi bài viết Huỷ bỏ
  • namkoi312 namkoi312 Thành viên mới
    • Tham gia: Aug 2012
    • Bài viết: 14
    • Share
    • Tweet
    #15 29-11-2012, 19:01 Nguyên văn bởi Ck33spkt Xem bài viết Bác tính toán được bộ code này hay thật. Bác có biết về lập trình cho LCD không bác vào link này giúp em với: http://www.dientuvietnam.net/forums/...8-bits-114797/ MÌNH CÓ ĐOẠN CODE NÀY, SAO NÓ KHÔNG CHẠY VẬY? ORG 0000H MAIN: CALL CT1 JMP MAIN CT1: SETB P0.0 CALL delay_s CLR P0.0 delay_s: push 7 push 6 push 5 push 4 mov r4,num_s mov r5,#20 mov r6,#200 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(498+2)*200=100000 djnz r5,$-8 ;(100000+2)*20=2000000 djnz r4,$-12 ;2000000*num_s = clk_delay pop 4 ; pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_s(s) pop RET END

    Comment

    Gửi bài viết Huỷ bỏ
Trước 1 2 template Next Về tác giả Collapse nhihuynhbmt Tìm hiểu thêm về nhihuynhbmt Bài viết mới nhất Collapse
  • torasung Tài liệu biến tần Delta VFD007M43B bởi torasung Chào anh em, Mình đang tìm hiểu và cấu hình một con biến tần Delta model VFD037E43A dùng cho động cơ công suất nhỏ, ứng dụng băng tải và quạt. Trước đây mình chủ yếu làm với vài dòng khác của Delta nhưng chưa dùng nhiều model này, nên muốn...
    • Channel: Điện tử công nghiệp
    Hôm qua, 09:13
  • nguyendinhvan Trả lời cho Vấn đề về tốc độ quay bởi nguyendinhvan Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
    • Channel: Điện tử truyền hình
    14-12-2025, 19:50
  • Andrea14 Vấn đề về tốc độ quay bởi Andrea14 Chào mọi người, Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
    • Channel: Điện tử truyền hình
    12-12-2025, 12:42
Xem toàn bộ Copyright © 2000-2025 Dientuvietnam.net. Founded by BinhAnh. Developed by R&P. All rights reserved. Forum software powered by vBulletin® Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Múi giờ GMT+7. Trang này được tạo vào lúc 07:53. Đang tải... Ðồng ý Không OK OK Huỷ bỏ X

Từ khóa » Chương Trình Delay 8051