佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1876|回复: 24

89C51程式 有人可以幫忙改一下嗎

[复制链接]
发表于 15-11-2008 10:56 PM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 10:17 PM 发表
對了我很好奇 c programming 要如何燒入 8051???

燒入方法一樣嗎???

最终要的file 是intel hex.
用assembly 写会generate hex file.
同样的用c写也是会generate hex file.

burn hex file 就可以了。用什么language没关系。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 16-11-2008 01:45 AM | 显示全部楼层
JNB P1.1,$   請問那各 $ 是什麼意思???

JNB 不是=當(bit)=0,就跳躍嘛

$是什麼意識????
回复

使用道具 举报

 楼主| 发表于 15-11-2008 10:05 PM | 显示全部楼层

不好意思.....我想要 當訊號來時 on1s off1min 在訊號還沒斷 on1s off1min 會一直重複..... 要如何寫....
回复

使用道具 举报

发表于 15-11-2008 11:53 PM | 显示全部楼层

回复 14# 天魁星 的帖子

EA有接去GND了吗?
嗯。。你可以在P1.2接个LED,看看是HI还是LO
回复

使用道具 举报

发表于 15-11-2008 09:20 PM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 09:08 PM 发表
最近我用89C51弄一個 ON 2秒 OFF 1分鐘的計時器.......

我要的作用是 先把 p1.1 和 p1.2 CLE( 0v ) ,然後當P1.1 有訊號輸入時 P1.2 會輸出的訊號 要 ON 2秒 OFF 1分鐘......

我寫了一些程式有人可以幫忙修改一 ...



我会帮你看看。要一点时间。 asm太久没动了。
你一detect到input就要 continuous on 2s off 1 min还是一次input就一次on 2s off 1 min???
有兴趣用c吗??
c programming可以很简单做到。
还有一点是8051要用input port最好是set high, 然后你的input pull low.不要set low, input pull high.

[ 本帖最后由 fritlizt 于 15-11-2008 09:28 PM 编辑 ]
回复

使用道具 举报

发表于 15-11-2008 10:08 PM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 10:05 PM 发表

不好意思.....我想要 當訊號來時 on1s off1min 在訊號還沒斷 on1s off1min 會一直重複..... 要如何寫....


你的方法没错。 按着讯号就一直有。 不过手一方开, 讯号就没了。
可能解释有点模糊。 我所谓的按一次代表按,然后短时间内就放开。而不是按久久。。。。。。。。。

[ 本帖最后由 fritlizt 于 15-11-2008 10:10 PM 编辑 ]
回复

使用道具 举报

Follow Us
发表于 15-11-2008 10:57 PM | 显示全部楼层

回复 6# fritlizt 的帖子

paiseh paiseh, 犯了一个这样的错误
版主,用C的话也是可以加入assembly对吗?
回复

使用道具 举报

 楼主| 发表于 15-11-2008 11:09 PM | 显示全部楼层
救命.....
(第一次燒入....由於是自修的....還不是很了解..)
我燒入了.....但怎樣才會知道.....有無作用........

我的測試方法是....8051接好了.... 給P1.1輸入 5v的電壓 ......但p1.2(我設的output)......沒有電壓輸出......

這樣測試...請問有沒有錯誤....
回复

使用道具 举报


ADVERTISEMENT

发表于 15-11-2008 09:54 PM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 09:49 PM 发表
好像不行A.......

我用你的 程式 ....當我轉換 去 OBJ 檔時....出現很多 錯誤.....


用这个compile.不用obj file, linker等。直接出hex file.
http://www.eee.com.my/download/Fet89c5x_v2.7.zip
回复

使用道具 举报

发表于 15-11-2008 09:31 PM | 显示全部楼层
  1. START:
  2. CLR P1.1
  3. CLR P1.2
  4. JNB P1.1, $

  5. ; 2 SECS
  6. REP01:
  7. MOV R0, #20
  8. REP02:
  9. MOV R1, #199
  10. REP03:
  11. MOV R2, #250       
  12. DJNZ R2, REP03
  13. DJNZ R1, REP02
  14. DJNZ R0, REP01
  15. SETB P1.2

  16. ; 60 SECS
  17. REP11:
  18. MOV R0, #6
  19. REP12:
  20. MOV R1, #100
  21. REP13:
  22. MOV R2, #199
  23. REP14:
  24. MOV R3, #250
  25. DJNZ R3, REP14
  26. DJNZ R2, REP13
  27. DJNZ R1, REP12
  28. DJNZ R0, REP11
  29. AJMP START

  30. END
复制代码


不知道有没有出错

评分

参与人数 1积分 +10 收起 理由
fritlizt + 10

查看全部评分

回复

使用道具 举报

 楼主| 发表于 15-11-2008 09:38 PM | 显示全部楼层
c programming 可以用在 8051嗎??

我要的效果是大概 當 input 收到 訊號時 output 就會輸出 on 2s off 1 min 的電壓.....

(我找到的資料都看不懂.....)
回复

使用道具 举报

发表于 16-11-2008 12:08 AM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 11:09 PM 发表
救命.....
(第一次燒入....由於是自修的....還不是很了解..)
我燒入了.....但怎樣才會知道.....有無作用........

我的測試方法是....8051接好了.... 給P1.1輸入 5v的電壓 ......但p1.2(我設的output).... ...


你 on time 是2s. off time 是60s.
multimeter 量不到average power.
你把p2 set去0xAA.用multimeter量看是不是10101010就知道了。

EA->5V, reset -> ground. crystal 12 Mhz with 2x33pf cap
回复

使用道具 举报

 楼主| 发表于 15-11-2008 09:49 PM | 显示全部楼层

回复 3# bomber27 的帖子

好像不行A.......

我用你的 程式 ....當我轉換 去 OBJ 檔時....出現很多 錯誤.....
回复

使用道具 举报

发表于 15-11-2008 09:48 PM | 显示全部楼层
原帖由 bomber27 于 15-11-2008 09:31 PM 发表
START:
CLR P1.1
CLR P1.2
JNB P1.1, $

; 2 SECS
REP01:
MOV R0, #20
REP02:
MOV R1, #199
REP03:
MOV R2, #250        
DJNZ R2, REP03
DJNZ R1, REP02
DJNZ R0, REP01
SETB P1.2

; 60 SECS
REP11:
M ...


没错,只是sequence有点乱。
你delay 2s过后才set p1.2再off 60secs..倒转了。不过很好, 加分鼓励鼓励。
你的也和我一样, 按一次, 有一个pulse罢了。。

[ 本帖最后由 fritlizt 于 15-11-2008 09:51 PM 编辑 ]
回复

使用道具 举报

发表于 15-11-2008 09:46 PM | 显示全部楼层
原帖由 天魁星 于 15-11-2008 09:38 PM 发表
c programming 可以用在 8051嗎??

我要的效果是大概 當 input 收到 訊號時 output 就會輸出 on 2s off 1 min 的電壓.....

(我找到的資料都看不懂.....)


可以。
永远on 2s off 1 min还是一次而已?
我的program是按一次,有一次。不会一直generate pulses.
  1. ORG 0000H
  2. WTRON:
  3.         CLR P1.1
  4.         CLR P1.2
  5.         JNB P1.1,$
  6. SETB P1.2
  7. WTRNA:
  8.         MOV R0,#20
  9. WTRNB:
  10.         MOV R1,#199
  11. WTRNC:
  12.         MOV R2,#250
  13. WTRND:
  14.         DJNZ R2,WTRND
  15.         DJNZ R1,WTRNC
  16.         DJNZ R0,WTRNB
  17.         CLR P1.2
  18.         MOV R0,#6
  19. WTROFFA:
  20.         MOV R1,#100
  21. WTROFFB:
  22.         MOV R2,#199
  23. WTROFFC:
  24.         MOV R3,#250
  25. WTROFFD:
  26.         DJNZ R3,WTROFFD
  27.         DJNZ R2,WTROFFC
  28.         DJNZ R1,WTROFFB
  29.         DJNZ R0,WTROFFA
  30.         AJMP WTRON
  31.       
  32.         END
复制代码
回复

使用道具 举报

发表于 16-11-2008 12:09 AM | 显示全部楼层
原帖由 bomber27 于 15-11-2008 11:53 PM 发表
EA有接去GND了吗?
嗯。。你可以在P1.2接个LED,看看是HI还是LO


EA->ground是代表mcu access外面的ram/rom. 要用internal,EA->5v
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-11-2008 09:08 PM | 显示全部楼层 |阅读模式
最近我用89C51弄一個 ON 2秒 OFF 1分鐘的計時器.......

我要的作用是 先把 p1.1 和 p1.2 CLE( 0v ) ,然後當P1.1 有訊號輸入時 P1.2 會輸出的訊號 要 ON 2秒 OFF 1分鐘......

我寫了一些程式有人可以幫忙修改一下嗎 (不知道錯在那裡...)......

WTRON
        CLR P1.1
        CLR P1.2
        JNB P1.1,WTRON
WTRNA
        MOV R0,#20
WTRNB
        MOV R1,#199
WTRNC
        MOV R2,#250
WTRND
        DJNZ R2,WTRND
        DJNZ R1,WTRNC
        DJNZ R0,WTRNB
        SETB P1.2
        MOV R0,#6
WTROFFA
        MOV R1,#100
WTROFFB
        MOV R2,#199
WTROFFC
        MOV R3,#250
WTROFFD
        DJNZ R3,WTROFFD
        DJNZ R2,WTROFFC
        DJNZ R1,WTROFFB
        DJNZ R0,WTROFFA
        AJMP WTRON
       
        END


由於我是初學者....請幫忙......
回复

使用道具 举报

 楼主| 发表于 15-11-2008 10:17 PM | 显示全部楼层
對了我很好奇 c programming 要如何燒入 8051???

燒入方法一樣嗎???
回复

使用道具 举报

发表于 16-11-2008 10:28 AM | 显示全部楼层

回复 18# 天魁星 的帖子

JNB P1.1, $

HERE: JNB P1.1, HERE
是一样的,是跳回同一个 line
回复

使用道具 举报

发表于 16-11-2008 10:28 AM | 显示全部楼层
原帖由 天魁星 于 16-11-2008 01:45 AM 发表
JNB P1.1,$   請問那各 $ 是什麼意思???

JNB 不是=當(bit)=0,就跳躍嘛

$是什麼意識????



$ 是代表跳回去同一行的意思。换句话说就是当 P1.1 是 0 的时候,它会一直在那里 loop,直到 P1.1 变成 1,才会走下一行的 program.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 10-2-2025 08:10 AM , Processed in 0.129114 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表