Thông báo

Collapse
No announcement yet.

help! Mô phỏng chạy mà làm thực tế không chạy. đồng hồ thời gian thực

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • help! Mô phỏng chạy mà làm thực tế không chạy. đồng hồ thời gian thực

    Em đang làm đồng hồ thời gian thực dùng RTC. Mô phỏng thì đã chạy ngon mà ko hiểu sao làm thực tế thì mạch lên toàn số 88 88 88. Pác nào biết vì sao chỉ giùm em với
    file bailam.rar.doc các pác dow về xóa đuôi doc giùm em đi là đc
    Attached Files

  • #2
    Hi,
    Bác đã khởi động RTC đâu mà nó chạy, cái RTC trong Proteus là nó chạy sẵn rồi chỉ việc đọc giờ ra thôi còn IC RTC bác phải khởi động nó bằng cách ghi giá trị Giây vào địa chỉ chứa giá trị Giây thì nó mới chạy.
    Thân ái.
    Đường đến những ngày vinh quang không còn xa
    Con đường chúng ta... chúng ta đã chọn.

    Comment


    • #3
      Theo mình nhớ với dòng 89C cần có trở pullup của Port0 thì phải, có thể ảnh hưởng không?

      ================================================== ========
      Khang Minh Electronic, cung cấp linh kiện điện tử, Vi điều khiển, sensor độ ẩm....
      http://kme.com.vn
      Điện tử KME,cung cap linh kien SMD, Sensor, dat hang linh kien dien tu...
      Số 2, Ngõ 53, Dịch Vọng, Cầu Giấy, hà Nội

      Comment


      • #4
        sao không dùng C cho đơn giản đi pạn

        Comment


        • #5
          có thấy chuơng trinh đâu bạn ơi

          Comment


          • #6
            coi chừng bị nhiễu đó

            Comment


            • #7
              Hi,
              Bác đã khởi động RTC đâu mà nó chạy, cái RTC trong Proteus là nó chạy sẵn rồi chỉ việc đọc giờ ra thôi còn IC RTC bác phải khởi động nó bằng cách ghi giá trị Giây vào địa chỉ chứa giá trị Giây thì nó mới chạy.
              Thân ái.
              Bác biết chỉ giùm em với, em đang làm đò án ngày 28 là bảo vệ rùi mà giờ ko biết làm sao đay. em gà qua


              sao không dùng C cho đơn giản đi pạn
              Em làm đồ án buộc phải dùng asm bác ạ
              có thấy chuơng trinh đâu bạn ơi
              chương trình trong file có đủ mà pác

              Comment


              • #8
                minh down file word của bạn về không mở được ban cho mình file .txt di mình cũng vừa làm cái này xong ban đầu giống như ban sau giải quyết được
                mình xem chuơng trình xem có bị nhiễu giống mình không

                Comment


                • #9
                  Nguyên văn bởi haprohaui Xem bài viết
                  minh down file word của bạn về không mở được ban cho mình file .txt di mình cũng vừa làm cái này xong ban đầu giống như ban sau giải quyết được
                  mình xem chuơng trình xem có bị nhiễu giống mình không
                  cái file đó phải bỏ cái đuôi .doc đi, do dd không cho up file rar lên thì phải nên em phai thêm cái đuôi đó vào. Bác làm cái này chạy thực tế đc chưa có thể share cho em cái sơ đồ +code với đc ko, còn 3 ngày nữa là báo cáo mất rồi
                  đây là hình và file code txt
                  ;=====================================
                  $mod51
                  TEMP DATA 37H
                  XUNG_NHAY DATA 38H ; XUNG 100ms
                  BIEN_NHAY DATA 39H ;0 = SANG TAT CA DEN , 1 = NHAY led TUONG UNG KHI set
                  GIAY DATA 40H
                  PHUT DATA 41H
                  GIO DATA 42H
                  DONVI_GIAY DATA 47H
                  CHUC_GIAY DATA 48H
                  DONVI_PHUT DATA 49H
                  CHUC_PHUT DATA 4AH
                  DONVI_GIO DATA 4BH
                  CHUC_GIO DATA 4CH
                  PHAN_TRAM_GIAY DATA 4DH
                  FLAG_SET DATA 4EH ;0 = KHONG SET , 1 = SET PHUT , 2 = SET GIO
                  LED_GIAY BIT P2.0
                  LED_C_GIAY BIT P2.1
                  LED_PHUT BIT P2.2
                  LED_C_PHUT BIT P2.3
                  LED_GIO BIT P2.4
                  LED_C_GIO BIT P2.5
                  ;--------I2C-------
                  SCL BIT P3.0
                  SDA BIT P3.1
                  SW_1 BIT P3.2
                  SW_2 BIT P3.3
                  SW_3 BIT P3.4
                  LED_DATA EQU P0
                  BYTE_W EQU 11010000B
                  BYTE_R EQU 11010001B
                  ADD_LOW EQU 62H
                  DATA_DS EQU 63H
                  ;=====================================
                  ;=====================================
                  ORG 00H
                  LJMP MAIN
                  ;===========================
                  ;===========================
                  ORG 0BH
                  LJMP NGAT_TIME
                  ;===========================
                  ;===========================
                  ORG 030H
                  MAIN: ;reset tat ca cac bien
                  MOV GIAY,#0
                  MOV PHUT,#0
                  MOV GIO,#0
                  MOV BIEN_NHAY,#0
                  MOV XUNG_NHAY,#0
                  MOV FLAG_SET,#0
                  MOV R0,#0
                  MOV IE,#10001010B
                  MOV TMOD,#11H
                  MOV TL0,#LOW(-9216)
                  MOV TH0,#HIGH(-9216)
                  SETB TR0
                  MOV A,#0FFH
                  MOV LED_DATA,A
                  MOV DPTR,#BANGSO
                  CLR SCL
                  CLR SDA
                  NOP
                  SETB SCL
                  SETB SDA
                  NOP
                  MOV ADD_LOW,#00H
                  MOV DATA_DS,#00H
                  LCALL WRITE_BYTE
                  ;==========

                  ;==========================================
                  LOOP_HIEN_THI: ; chuong trinh chinh chay tai day
                  ;==========================================
                  MOV A,FLAG_SET
                  CJNE A,#0,L_HT
                  CALL INIT_PORT
                  L_HT:
                  LCALL HIEN_THI
                  LCALL SCAN_KEY
                  SJMP LOOP_HIEN_THI
                  ;==========================================


                  INIT_PORT:
                  ;================================================= =READS SECONDS
                  ;=================================================
                  READ_SEC:
                  MOV ADD_LOW,#00h
                  LCALL READ_BYTE
                  MOV A,DATA_DS
                  CALL BCD_HEX
                  MOV GIAY,A
                  LCALL I2C_STOP
                  ;================================================= =READS MINUTES
                  MOV ADD_LOW,#01h
                  LCALL READ_BYTE
                  MOV A,DATA_DS
                  CALL BCD_HEX
                  MOV PHUT,A
                  LCALL I2C_STOP
                  ;================================================= =READS HOURS
                  MOV ADD_LOW,#02h
                  LCALL READ_BYTE
                  MOV A,DATA_DS
                  CALL BCD_HEX
                  MOV GIO,A
                  LCALL I2C_STOP
                  RET
                  ;================================================= =================================
                  ;=====stop I2C communication
                  I2C_Stop:
                  CLR SDA
                  SETB SCL
                  NOP
                  SETB SDA
                  RET
                  ;================================================= =================================
                  ;************************************************* ****
                  ;* WRITE DATA_DS TO DS1307 1 BYTE *
                  ;* INPUT : ADD_LOW *
                  ;* : DATA_DS *
                  ;************************************************* ****
                  WRITE_BYTE:
                  CLR SDA ;start bit
                  CLR SCL
                  MOV A,#BYTE_W ;send control byte
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,WRITE_BYTE ;loop until busy
                  CLR SCL
                  MOV A,ADD_LOW ;send address low
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,WRITE_BYTE ;loop until busy
                  CLR SCL
                  MOV A,DATA_DS ;send DATA
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,WRITE_BYTE ;loop until busy
                  CLR SDA
                  CLR SCL
                  SETB SCL ;stop bit
                  SETB SDA
                  RET
                  ;==========================================
                  BCD_HEX:
                  ;==========================================
                  MOV B,#10H
                  DIV AB
                  MOV TEMP,B ;CAT HANG DON VI
                  MOV B,#10
                  MUL AB
                  ADD A,TEMP
                  ret
                  ;==========================================
                  HEX_BCD:
                  ;==========================================
                  MOV B,#10
                  DIV AB
                  MOV TEMP,B ;CAT HANG DON VI
                  MOV B,#10H
                  MUL AB
                  ADD A,TEMP
                  ret
                  ;==========================================
                  ;************************************************* *****
                  ;* READ DATA FROM DS1307 1 BYTE *
                  ;* INPUT : ADD_HIGH *
                  ;* : ADD_LOW *
                  ;* OUTPUT : DATA_DS *
                  ;************************************************* *****
                  READ_BYTE:
                  CLR SDA ;start bit
                  CLR SCL
                  MOV A,#BYTE_W ;send control byte
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,READ_BYTE ;loop until busy
                  CLR SCL
                  MOV A,ADD_LOW ;send address low
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,READ_BYTE ;loop until busy
                  CLR SCL
                  SETB SCL
                  SETB SDA
                  CLR SDA ;start bit
                  CLR SCL
                  MOV A,#BYTE_R ;send control byte
                  LCALL LOOP_BYTE
                  SETB SDA
                  SETB SCL
                  JB SDA,READ_BYTE ;loop until busy
                  CLR SCL
                  LCALL LOOP_READ
                  SETB SDA
                  SETB SCL
                  CLR SCL
                  SETB SCL ;stop bit
                  SETB SDA
                  RET

                  ;************************************************* ***
                  ;* WRITE *
                  ;* INPUT: ACC *
                  ;************************************************* ***
                  LOOP_BYTE:
                  PUSH 02H
                  MOV R2,#08H
                  LOOP_SEND:
                  RLC A
                  MOV SDA,C
                  SETB SCL
                  CLR SCL
                  DJNZ R2,LOOP_SEND
                  POP 02H
                  RET
                  ;************************************************* ****
                  ;* READ *
                  ;* OUTPUT: ACC *
                  ;************************************************* ****
                  LOOP_READ:
                  PUSH 02H
                  MOV R2,#08H
                  LOOP_READ1:
                  SETB SCL
                  MOV C,SDA
                  CLR SCL
                  RLC A
                  DJNZ R2,LOOP_READ1
                  MOV DATA_DS,A
                  POP 02H
                  RET
                  ;==========================================
                  TACHSO: ; tach rieng hang chuc va hang don vi bang cach chia cho 10
                  ;==========================================
                  MOV A,GIAY ;Lan luot chia cac Bien: Giay, Phut, Gio cho 10
                  MOV B,#10 ;de tach phan Don Vi va Hang Chuc ra, de cat rieng vao cac Bien tuong ung.
                  DIV AB ;PHAN NGUYEN trong A, PHAN DU trong B
                  MOV CHUC_GIAY,A ;Luu lai HANG CHUC Giay
                  MOV DONVI_GIAY,B ;luu lai DON VI Giay
                  ;==========
                  MOV A,PHUT
                  MOV B,#10
                  DIV AB
                  MOV CHUC_PHUT,A
                  MOV DONVI_PHUT,B
                  ;==========
                  MOV A,GIO
                  MOV B,#10
                  DIV AB
                  MOV CHUC_GIO,A
                  MOV DONVI_GIO,B
                  RET
                  ;========================================
                  HIEN_THI: ; HIEN THI LED 7 DOAN
                  ;========================================
                  MOV A,FLAG_SET
                  CJNE A,#0,CHOP_NHAY
                  LCALL HIENTHI
                  AJMP THOAT_HIENTHI
                  ;========================================
                  CHOP_NHAY: ; KIEM TRA BIEN NHAY VA FLAG_SET DE TAO HIEU UNG NHAY LED DANG SETING
                  ;=================================
                  MOV A,BIEN_NHAY
                  CJNE A,#0,CHOP_NHAY1
                  LCALL HIENTHI
                  AJMP THOAT_HIENTHI
                  CHOP_NHAY1:
                  LCALL NHAY
                  JMP CHOP_NHAY
                  THOAT_HIENTHI:
                  RET
                  ;=================================
                  HIENTHI:
                  ;=================================
                  LCALL HIENTHI_S
                  LCALL HIENTHI_P
                  LCALL HIENTHI_G
                  RET
                  ;=================================
                  NHAY:
                  ;=================================
                  MOV A,FLAG_SET
                  CJNE A,#1,KT1
                  LCALL HIENTHI_S
                  LCALL HIENTHI_G
                  KT1:
                  MOV A,FLAG_SET
                  CJNE A,#2,THOAT_N
                  LCALL HIENTHI_S
                  LCALL HIENTHI_P
                  THOAT_N:
                  RET
                  ;=================================
                  HIENTHI_S:
                  ;=================================
                  ;hien thi hang don vi cua Giay
                  MOV A,DONVI_GIAY
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_GIAY
                  LCALL DL
                  SETB LED_GIAY
                  ;==========
                  MOV A,CHUC_GIAY ;hien thi hang chuc cua Giay
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_C_GIAY
                  LCALL DL
                  SETB LED_C_GIAY
                  RET
                  ;=================================
                  HIENTHI_P:
                  ;=================================
                  MOV A,DONVI_PHUT ;hien thi hang don vi cua Phut
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_PHUT
                  LCALL DL
                  SETB LED_PHUT
                  ;============
                  MOV A,CHUC_PHUT ;hien thi hang chuc cua Phut
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_C_PHUT
                  LCALL DL
                  SETB LED_C_PHUT
                  RET
                  ;=================================
                  HIENTHI_G:
                  ;=================================
                  MOV A,DONVI_GIO ;hien thi hang don vi cua gio
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_GIO
                  LCALL DL
                  SETB LED_GIO
                  ;============
                  MOV A,CHUC_GIO ;hien thi hang chuc cua Gio
                  MOVC A,@A+DPTR
                  MOV LED_DATA,A
                  CLR LED_C_GIO
                  LCALL DL
                  SETB LED_C_GIO
                  RET
                  ;=================================
                  NGAT_TIME:
                  ;=================================
                  INC XUNG_NHAY
                  INC PHAN_TRAM_GIAY ;DAT TIMER CHAY 1/100 GIAY
                  MOV TL0,#LOW(-9216)
                  MOV TH0,#HIGH(-9216)
                  SETB TR0
                  ;===============
                  PUSH ACC
                  PUSH PSW ;Thanh ghi trang th�i chuong tr�nh
                  ;==========
                  MOV A,XUNG_NHAY ;TAO XUNG NHAP NHAY = 1/4 GIAY
                  CJNE A,#25,TIME1
                  MOV XUNG_NHAY,#0
                  INC BIEN_NHAY
                  MOV A,BIEN_NHAY
                  CJNE A,#3,TIME1
                  MOV BIEN_NHAY,#0
                  ;==========
                  TIME1:
                  MOV A,PHAN_TRAM_GIAY ;Kiem tra bien PHAN_TRAM_GIAY - Thoat khoi ngat Time0 neu khong =
                  CJNE A,#100,THOAT_NGAT_TIME
                  MOV PHAN_TRAM_GIAY,#0 ;Neu = 100 th� set bien nay = 0
                  ;===============
                  THOAT_NGAT_TIME:
                  LCALL TACHSO
                  POP PSW
                  POP ACC
                  RETI
                  ;==================================
                  SCAN_KEY: ;KIEM TRA PHIM NHAN
                  ;==================================
                  SW1: ;SET TIME
                  JB SW_1,SW2
                  INC FLAG_SET
                  MOV A,FLAG_SET
                  CJNE A,#3,L_SW1
                  ;==========
                  MOV A,PHUT
                  CALL HEX_BCD
                  MOV DATA_DS,A
                  MOV ADD_LOW,#01H
                  LCALL WRITE_BYTE
                  ;==========
                  MOV A,GIO
                  CALL HEX_BCD
                  MOV DATA_DS,A
                  MOV ADD_LOW,#02H
                  LCALL WRITE_BYTE

                  MOV FLAG_SET,#0
                  L_SW1:
                  LCALL DL1
                  LCALL DL1
                  LCALL DL1
                  LCALL DL1
                  LJMP NOKEY
                  ;===============
                  SW2: ;SET_MIN
                  JB SW_2,SW3
                  MOV A,FLAG_SET
                  CJNE A,#0,SW20
                  LJMP NOKEY
                  SW20:
                  MOV A,FLAG_SET
                  CJNE A,#1,TANG_GIO ;
                  JB SW_2,SW3
                  ;===============
                  TANG_PHUT:
                  INC PHUT ;Roi tang Bien phut them 1
                  MOV A,PHUT
                  CJNE A,#60,L_SW2 ;
                  MOV PHUT,#0 ;Neu = 60 th� set bien nay = 0
                  L_SW2:
                  LCALL DL1
                  LCALL DL1
                  LJMP SW2
                  ;===============
                  TANG_GIO: ;SET HOUR
                  JB SW_2,SW3
                  MOV A,FLAG_SET
                  CJNE A,#2,SW3
                  JB SW_2,SW3
                  INC GIO ;Roi tang Bien Gio them 1
                  MOV A,GIO
                  CJNE A,#24,L_TANG_GIO ;Bien gio = 60? - Thoat khoi ngat Time0 neu khong =
                  MOV GIO,#0
                  L_TANG_GIO:
                  LCALL DL1
                  LCALL DL1
                  LJMP TANG_GIO
                  ;==============================
                  SW3: ;DANG NHAN SW3?
                  JB SW_3,NOKEY ;KHONG NHAN SW2? KIEM TRA SW3
                  MOV A,FLAG_SET
                  CJNE A,#0,SW30
                  LJMP NOKEY
                  SW30:
                  MOV A,FLAG_SET ;DANG NHAN SW2. KIEM TRA CHE DO CHINH GIO HAY CHINH PHUT.
                  CJNE A,#1,GIAM_GIO ;
                  JB SW_3,NOKEY
                  ;===============
                  GIAM_PHUT:
                  DEC PHUT ;Roi tang Bien phut them 1
                  MOV A,PHUT
                  CJNE A,#-1,L_SW3 ;Bien Phut = -1? - Thoat khoi ngat Time0 neu khong =
                  MOV PHUT,#59 ;Neu = -1 th� set bien nay = 60
                  L_SW3:
                  LCALL DL1
                  LCALL DL1
                  LJMP SW3
                  ;===============
                  GIAM_GIO:
                  ;===============
                  JB SW_3,NOKEY
                  MOV A,FLAG_SET
                  CJNE A,#2,NOKEY

                  LCALL HIENTHI
                  JB SW_3,NOKEY
                  DEC GIO ;Roi Giam Bien Gio them 1
                  MOV A,GIO
                  CJNE A,#-1,L_GIAM_GIO ;Bien gio = -1? - Thoat khoi ngat Time0 neu khong =
                  MOV GIO,#23
                  L_GIAM_GIO:
                  LCALL DL1
                  LCALL DL1
                  LJMP GIAM_GIO
                  ;===============
                  NOKEY:
                  RET
                  ;=================================
                  DL:
                  ;=================================
                  MOV R7,#200
                  DJNZ R7,$
                  RET
                  ;==================
                  DL1:
                  ;==================
                  PUSH 00H
                  PUSH 01H
                  MOV R1,#20O
                  DEL:
                  LCALL HIEN_THI
                  LCALL HIEN_THI
                  LCALL HIEN_THI
                  MOV R0,#250
                  DJNZ R0,$
                  DJNZ R1,DEL
                  POP 01H
                  POP 00H
                  RET
                  ;===================
                  DELAY_1MS:
                  ;===================
                  MOV R7,#200
                  DL_1MS_1:
                  MOV R6,#200
                  DJNZ R6,$
                  DJNZ R7,DL_1MS_1
                  RET
                  ;====================
                  DELAY:
                  ;====================
                  NOP
                  NOP
                  NOP
                  NOP
                  NOP
                  NOP
                  NOP
                  NOP
                  RET
                  ;=================================
                  BANGSO:
                  ;=================================
                  DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
                  RET
                  END
                  Attached Files
                  Last edited by student_dtvt; 25-06-2011, 08:21.

                  Comment


                  • #10
                    Em nghĩ là do thời gian delay nhỏ quá, nhưng em đã sửa thử và kết quả là không có gì thay đổi, vẫn lên toàn 88 88 88. bác nào biết chỉ giùm em với, gấp lắm rùi

                    Comment


                    • #11
                      Nguyên văn bởi student_dtvt Xem bài viết
                      cái file đó phải bỏ cái đuôi .doc đi, do dd không cho up file rar lên thì phải nên em phai thêm cái đuôi đó vào. Bác làm cái này chạy thực tế đc chưa có thể share cho em cái sơ đồ +code với đc ko, còn 3 ngày nữa là báo cáo mất rồi
                      đây là hình và file code txt

                      hi, các bạn trẻ bây giờ hay thiệt??, copy code của người khác rồi xóa tên tác giả đi. Vậy ai còn hứng thú để giúp bạn nữa chứ!!!!.
                      PCT COMPUTER
                      (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                      Comment


                      • #12
                        Nguyên văn bởi pctcom Xem bài viết
                        hi, các bạn trẻ bây giờ hay thiệt??, copy code của người khác rồi xóa tên tác giả đi. Vậy ai còn hứng thú để giúp bạn nữa chứ!!!!.
                        Em không biết đây là code của ai nên của bác nào thì thông cảm cho em với, giờ em chỉ muốn làm gấp cái đồ án này cho xong thui. Đây là file code em copy của một người bạn, ko biết tác giả là ai hết. Nếu bác là tác giả code này thì bác giúp giùm em với, em đã nạp code này rùi mà sao nó ko chạy

                        Comment


                        • #13
                          A, thì ra bài viết của bác pctcom ở đây à. http://www.dientuvietnam.net/forums/...8B-led-7-thanh
                          em không hiểu sao bác pctcom đã cố tình xóa các bài viết của mình rùi mà sao vẫn để cái topic đấy làm gì nhỉ? Bác ko muốn chia sẻ nữa thì cung ko nên như thế chứ

                          Comment


                          • #14
                            các pác ơi giúp em với

                            Comment


                            • #15
                              bạn nạp lại các giá trị thời gian (giay phut gio ) cho con ds thử , nạp ngay đầu chương trình trước khi vào chương trình chính, con ds này nếu ko set lại phần thời gian cho nó thì nó sẽ ko chạy đc đâu lúc mình làm con này mình bị vấn đề đó.

                              Comment

                              Về tác giả

                              Collapse

                              student_dtvt Tìm hiểu thêm về student_dtvt

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X