查看: 1910|回复: 11
|
关于ADC问题。
[复制链接]
|
|
本帖最后由 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. 是你自己的问题? 还是你帮人问的? 请说明。
是我的.
- 这是我的program。
- list p=16f877
- include <p16f877.inc>
- PORTA EQU 05H
- PORTB EQU 06H
- ADCON0 EQU 1FH
- ADCON1 EQU 9FH
- STATUS EQU 03H
- ADRESL EQU 9EH
- ORG 0x000
- NOP
- START BCF STATUS,6
- BSF STATUS,5
- MOVLW B'00011111'
- TRIS PORTA
- MOVLW B'00000000'
- MOVWF ADCON1
- MOVLW B'00000000'
- TRIS PORTB
- BCF STATUS,5
- BCF STATUS,6
- MOVLW B'10000001'
- MOVWF ADCON0
- CLRF PORTA
- CLRF PORTB
-
- BEGIN BSF ADCON0,2 ; WAITING UNTIL GO/DONE CLEAR
- WAIT BTFSC ADCON0,2
- GOTO WAIT
-
- MOVF ADRESL,W ;
- SUBLW .122
- BTFSC STATUS,0 ; CLEAR IF ADRESL >122
- GOTO a1
- GOTO a2
- a1 BCF PORTB,0 ;LED OFF
- GOTO BEGIN
- a2 BSF PORTB,0 ;LED ON
- GOTO BEGIN
-
- END
复制代码
|
|
|
|
|
|
|
|
|
楼主 |
发表于 19-4-2012 08:39 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 19-4-2012 08:40 PM
|
显示全部楼层
本帖最后由 wilson16 于 22-4-2012 01:09 PM 编辑
|
|
|
|
|
|
|
|
发表于 19-4-2012 10:12 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 20-4-2012 12:04 AM
|
显示全部楼层
可以用C 写吗?
里面有一些用C 的范例。
pic 发表于 19-4-2012 10:12 PM
不能了,因为我们老师只可以用ASM而已。。。 |
|
|
|
|
|
|
|
发表于 20-4-2012 11:47 AM
|
显示全部楼层
- BEGIN
- BSF ADCON0,2
- WAIT
- BTFSC ADCON0,2
- GOTO WAIT
复制代码 回复 1# wilson16
我没写过 PIC的 ASM,不过以逻辑分析,感觉上,这块有问题!
一直在loop,即使条件成立后,还是在这个范围内,完全不离开!
下面的code完全没机会去到。。。 |
|
|
|
|
|
|
|
楼主 |
发表于 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主要是在还没设计电板,模拟硬件运行的功能。
- BEGIN BSF ADCON0,2 ; WAITING UNTIL GO/DONE CLEAR
- WAIT XXXXXXXXXXX
- BTFSC ADCON0,2
- GOTO WAIT
复制代码
我个人认为, XXXXXXXXXXX,因该加入判断程式,检查 ADC flag 是否完成,以离开此wait地段。
记得下次,直接post 出图片来,看贴解答问题的人也比较直接看到你的问题。 |
|
|
|
|
|
|
|
楼主 |
发表于 22-4-2012 01:07 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 23-4-2012 08:30 AM
|
显示全部楼层
回复 9# wilson16
- BEGIN BSF ADCON0,2 ; WAITING UNTIL GO/DONE CLEAR
- WAIT “XXXXXXXXXXX”
- BTFSC ADCON0,2
- 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 给它就行了。 |
评分
-
查看全部评分
|
|
|
|
|
|
| |
本周最热论坛帖子
|