佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1910|回复: 11

关于ADC问题。

[复制链接]
发表于 19-4-2012 08:17 PM | 显示全部楼层 |阅读模式
本帖最后由 wilson16 于 20-4-2012 06:32 PM 编辑


i. 你要想做什么? 你的应用是什么?
想学习关于一些简单ADC。

ii. 你想要拿到什么效果
当analog 2.4v input  时,LED on.....少过时,就off。
iii. 你做了什么
用了mplab写好program了。

iv. 你遇到了什么问题。
其实可以得到我要的结果了,可是但我用proteus simulate时,会有error msg  出来,我想是timing的问题。但不懂问题在那里。同时还会弄到我的电脑很lag去。

v. 你用什么MCU?
pic16f877a

vi. 你用什么语言? ASM /C/PICBasic/Keil?Compiler 版本?
ASM
vii. 有源码吗? 如是抄来的请注明出处, 请放链接。
http://uploading.com/files/e1ba4a67/ADC.rar/
viii. 有电路图吗?
   有。
ix. 你google 了吗? 你的搜索关键字是什么?
有,但多数是用C比较多。

x. 有照片证明你做的东西吗?还是只是概念性的空谈?
有upload一些link了。

xi. 是你自己的问题? 还是你帮人问的? 请说明。
是我的.





  1. 这是我的program。
  2. list p=16f877
  3. include <p16f877.inc>
  4. PORTA       EQU 05H
  5. PORTB       EQU 06H
  6. ADCON0     EQU 1FH
  7. ADCON1     EQU 9FH
  8. STATUS      EQU 03H
  9. ADRESL      EQU 9EH



  10.                                      ORG 0x000
  11.                                      NOP

  12.              START             BCF STATUS,6
  13.                                      BSF STATUS,5
  14.                                      MOVLW B'00011111'
  15.                                      TRIS PORTA
  16.                                      MOVLW B'00000000'
  17.                                      MOVWF ADCON1
  18.                                      MOVLW B'00000000'
  19.                                      TRIS PORTB
  20.                                      BCF STATUS,5
  21.                                      BCF STATUS,6
  22.                                      MOVLW B'10000001'
  23.                                      MOVWF ADCON0
  24.                                      CLRF PORTA
  25.                                      CLRF PORTB
  26.             
  27.                BEGIN            BSF ADCON0,2                   ; WAITING UNTIL GO/DONE CLEAR
  28.               WAIT               BTFSC ADCON0,2
  29.                                      GOTO WAIT

  30.                                      MOVF ADRESL,W              ;
  31.                                      SUBLW .122
  32.                                      BTFSC STATUS,0              ; CLEAR IF ADRESL >122
  33.                                      GOTO a1
  34.                                      GOTO a2

  35.                   a1               BCF PORTB,0                  ;LED OFF
  36.                                      GOTO BEGIN

  37.                  a2                BSF PORTB,0                    ;LED ON
  38.                                      GOTO BEGIN
  39.                                     
  40.                                      END
复制代码













回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 19-4-2012 08:39 PM | 显示全部楼层
本帖最后由 wilson16 于 19-4-2012 08:47 PM 编辑
wilson16 发表于 19-4-2012 08:17 PM
请按。
error msg
回复

使用道具 举报

 楼主| 发表于 19-4-2012 08:40 PM | 显示全部楼层
本帖最后由 wilson16 于 22-4-2012 01:09 PM 编辑

回复

使用道具 举报

发表于 19-4-2012 10:12 PM | 显示全部楼层
可以用C 写吗?
http://cforum3.cari.com.my/viewt ... &extra=page%3D1
里面有一些用C 的范例。
回复

使用道具 举报

 楼主| 发表于 20-4-2012 12:04 AM | 显示全部楼层
可以用C 写吗?

里面有一些用C 的范例。
pic 发表于 19-4-2012 10:12 PM


不能了,因为我们老师只可以用ASM而已。。。
回复

使用道具 举报

发表于 20-4-2012 11:47 AM | 显示全部楼层
  1. BEGIN

  2. BSF ADCON0,2

  3. WAIT
  4. BTFSC ADCON0,2

  5. GOTO WAIT
复制代码
回复 1# wilson16

我没写过 PIC的 ASM,不过以逻辑分析,感觉上,这块有问题!

一直在loop,即使条件成立后,还是在这个范围内,完全不离开!
下面的code完全没机会去到。。。
回复

使用道具 举报

Follow Us
 楼主| 发表于 20-4-2012 06:21 PM | 显示全部楼层
回复  wilson16

我没写过 PIC的 ASM,不过以逻辑分析,感觉上,这块有问题!

一直在loop,即使条件成 ...
wkloh 发表于 20-4-2012 11:47 AM


不会啊,当ADCON0里面的BIT2 CLEAR后就skip next 。可是我把它接成在circuit board就可以运用。问题是为什么在simulation 就有很多error msg 出来,有6000+多条咯。。。
回复

使用道具 举报

发表于 21-4-2012 08:15 AM | 显示全部楼层
本帖最后由 wkloh 于 21-4-2012 08:17 AM 编辑
不会啊,当ADCON0里面的BIT2 CLEAR后就skip next 。可是我把它接成在circuit board就可以运用。问题是为 ...
wilson16 发表于 20-4-2012 06:21 PM

刚下载,看过你的 2楼 贴出 的 error msg,很明显的,你的错误信息,跟我 之前提到,可疑地方,不谋而合。

不会啊,当ADCON0里面的BIT2 CLEAR后就skip next 。可是我把它接成在circuit board就可以运用。


既然在circuit board 能运行,就行了啊!何必硬要通过 protues simulation?

Protues Simulation主要是在还没设计电板,模拟硬件运行的功能。


  1. BEGIN            BSF ADCON0,2                   ; WAITING UNTIL GO/DONE CLEAR
  2. WAIT               XXXXXXXXXXX
  3.                          BTFSC ADCON0,2
  4.                          GOTO WAIT
复制代码


我个人认为, XXXXXXXXXXX,因该加入判断程式,检查 ADC flag 是否完成,以离开此wait地段。

记得下次,直接post 出图片来,看贴解答问题的人也比较直接看到你的问题。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 22-4-2012 01:07 PM | 显示全部楼层
刚下载,看过你的 2楼 贴出 的 ,很明显的,你的错误信息,跟我 之前提到,可疑地方,不谋而合。



...
wkloh 发表于 21-4-2012 08:15 AM


那要怎样咯?


其实我也想图片直接可以看到,但弄不到
回复

使用道具 举报

发表于 23-4-2012 08:30 AM | 显示全部楼层
回复 9# wilson16
  1. BEGIN            BSF ADCON0,2                   ; WAITING UNTIL GO/DONE CLEAR
  2. WAIT               “XXXXXXXXXXX”
  3.                          BTFSC ADCON0,2
  4.                          GOTO WAIT
复制代码


请在                “XXXXXXXXXXX”,写入 判断 ADC conversion 是否完成的指令,如完成就跳了wait 咋个区块。
回复

使用道具 举报

 楼主| 发表于 23-4-2012 10:21 AM | 显示全部楼层
回复  wilson16


请在                “XXXXXXXXXXX”,写入 判断 ADC conversion 是否完成的指令,如 ...
wkloh 发表于 23-4-2012 08:30 AM


好的我先试看。。。
回复

使用道具 举报

 楼主| 发表于 21-5-2012 02:00 PM | 显示全部楼层
最近比较忙。已经ok了,原来只是  在BTFSC ADCON0,2 之前加一些delay 给它就行了。

评分

参与人数 1积分 +5 收起 理由
pic + 5 谢谢报告。

查看全部评分

回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 20-4-2024 09:12 PM , Processed in 0.086283 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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