Malay
颜色选择
阳光橙
深夜黑
天空蓝
葡萄紫
薄荷绿
深海蓝
首页
论坛
佳礼报道
新闻
搜索
3713
查看
40
回复

很简单的ASM language的问题 (卷门控制 -Garage Door)

[复制链接]

楼主: shaddow       显示全部楼层   阅读模式

楼主
 楼主| 发表于 10-4-2011 01:23 AM | 显示全部楼层
回复  shaddow



ALOOP:
MOV A, P2   ; P2.7
ACALL DELAY
CJNE A, #7DH, ALOOP
MOV P1, #7FH ; ...
fritlizt 发表于 10-4-2011 12:50 AM


fritlizt很感激你这么夜了还帮我看完我的program。感动
我也有用wkloh大大的方法:

ORG 00H


START:
JNB P2.2, FORWARD
STEP0:
JNB P2.0, STOP_MOTOR1
STEP1:
JNB P2.3, REVERSE
STEP2:
JNB P2.7, STOP_MOTOR2
STEP3:
JMP START

FORWARD:         MOV C, P2.2

        MOV P1.2, C

        JMP STEP0
STOP_MOTOR1:  SETB P1.2

   
JMP STEP1
REVERSE:          MOV C, P2.3

        MOV P1.3, C

        JMP STEP2
STOP_MOTOR2:  SETB P1.3

JMP STEP3

ok吗? 因为听人家说,如果不放delay, relay 会容易坏。
回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 01:29 AM | 显示全部楼层
回复  shaddow


   

没错, 我讲的就是这个。
他们怎样做?其他人做给他们的module?
怎样做wire ...
fritlizt 发表于 10-4-2011 12:51 AM


他们怎样做我不知道,曾经问过人,可是他们都不是很想教。那时听到说什么买一个不懂什么东西,然后挑frequency就可以了。
他们用什么language我就真不懂。
如果没有错,有一个东西在P0,代替wire.
haizz.. 不懂不懂。
回复

使用道具 举报

发表于 10-4-2011 02:04 AM | 显示全部楼层
本帖最后由 fritlizt 于 10-4-2011 02:05 AM 编辑

回复 22# shaddow


   

大概猜到那是什么东西。有没有照片看?
miwi + ps2 controller?

我做过ps2 , 和miwi,要integrate不难。 不过你的 assignment要用到这个咩 。
老师问到不会回答就jialat鸟。
回复

使用道具 举报

发表于 10-4-2011 09:41 AM | 显示全部楼层
回复 21# shaddow


   
ORG 00H


START:
JNB P2.2, FORWARD
STEP0:
JNB P2.0, STOP_MOTOR1
STEP1:
JNB P2.3, REVERSE
STEP2:
JNB P2.7, STOP_MOTOR2
STEP3:
JMP START

FORWARD:         MOV C, P2.2

        MOV P1.2, C

        JMP STEP0
STOP_MOTOR1:  SETB P1.2

   
JMP STEP1
REVERSE:          MOV C, P2.3

        MOV P1.3, C

        JMP STEP2
STOP_MOTOR2:  SETB P1.3

JMP STEP3


问题来了!

1.你的主程式(main function)主要检知按键和limit switch。所以跳去副程式(sub function)执行完毕,直接跳回主程式(START)就可以了。不跳回前先执行一行检查按键有无释放

举例:FORWARD

  1. JNB P2.2, $;按键无释放,重新检查这行程式
  2. JMP START
复制代码


2.STOP motor代码你会写,干嘛START那个要写成这样子?

  1. FORWARD:

  2. MOV C, P2.2

  3. MOV P1.2, C

  4. JMP STEP0
复制代码


解答:

  1. FORWARD: : CLR P1.2
  2. JMP STEP1
复制代码


这些全部都是程式逻辑而已,你的电路设计可能还有问题的。。。
回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 11:21 AM | 显示全部楼层
回复  shaddow


   

问题来了!

1.你的主程式(main function)主要检知按键和limit switch。所 ...
wkloh 发表于 10-4-2011 09:41 AM

谢谢wkloh大大,又教了我东西。基本上都明白,但有一个问题:1)我试过用 JNB P2.2, $


我把我部分写出来,和明白写出来:
START:              JNB P2.2, FORWARD   ;如果我按键,回传讯号 actvie low, 就跳到FORWARD

FORWARD:        JNB P2.2, $                ; 如果我还按着键不放,回传讯号 actvie low, 就一直跳到这个程式。
                       CLR P1.2                    ;直到我放了键, 回传讯号 actvie high,就 CLR P1.2
                       JMP START                 ;  跳回start.

但是我的simulator没有出现这个效果。
回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 11:27 AM | 显示全部楼层
回复  shaddow


   

大概猜到那是什么东西。有没有照片看?
miwi + ps2 controller?

我做过ps ...
fritlizt 发表于 10-4-2011 02:04 AM

没有照片看。什么是 miwi?assignment不必用到,不过我很想用。
买这些东西会贵吗?
可以教吗?
不好意识,太over了。
回复

使用道具 举报

发表于 10-4-2011 12:30 PM | 显示全部楼层
本帖最后由 wkloh 于 10-4-2011 12:32 PM 编辑

回复 25# shaddow

  1. START:              JNB P2.2, FORWARD   ;如果我按键,回传讯号 actvie low, 就跳到FORWARD

  2. FORWARD:        [code]JNB P2.2, $
  3. CLR P1.2 ;
复制代码
直到我放了键, 回传讯号 actvie high,就 CLR P1.2
                       JMP START                 ;  跳回start.[/code]

你可以把这两行对调位置,然后把断点放在 “CLR P1.2”,再看你的  P2.2 IO status, 是在low就跳同行。

  1. CLR P1.2
  2. JNB P2.2, $
复制代码


simulator 只是辅助性质,实况还是要靠你的硬体搭配。
回复

使用道具 举报

发表于 10-4-2011 12:52 PM | 显示全部楼层
回复 26# shaddow


   

对你来说 有点over鸟。
对我来说用asm来做这个也是有点over 鸟。 我也未必做到。
你学好asm,过后学c, 才来学ps2 controller也不迟。
迟一点我会share ps2 controller操作放法和code example. 慢慢来。
现阶段,我建议你把基本的东西做好(keypad + motor control), 基本工打好基础。
回复

使用道具 举报

发表于 10-4-2011 12:54 PM | 显示全部楼层
回复 25# shaddow


   

你的simulator出现什么效果? 这个是很重要的。 请说明。谢谢。
回复

使用道具 举报

发表于 10-4-2011 05:52 PM | 显示全部楼层
回复 23# fritlizt


    市面上已经可以找到很多 wireless ps2 controller 了,不用自己做

回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 06:18 PM | 显示全部楼层
回复  shaddow

直到我放了键, 回传讯号 actvie high,就 CLR P1.2
                       JMP START ...
wkloh 发表于 10-4-2011 12:30 PM



   好,谢谢。 让我研究一下。
回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 06:19 PM | 显示全部楼层
回复  shaddow


   

对你来说 有点over鸟。
对我来说用asm来做这个也是有点over 鸟。 我也未必做 ...
fritlizt 发表于 10-4-2011 12:52 PM


好, 等你分享。呵呵
回复

使用道具 举报

楼主
 楼主| 发表于 10-4-2011 06:20 PM | 显示全部楼层
回复  fritlizt


    市面上已经可以找到很多 wireless ps2 controller 了,不用自己做
...
waiweng83 发表于 10-4-2011 05:52 PM


哇,会贵吗?
回复

使用道具 举报

楼主
 楼主| 发表于 14-5-2011 12:57 PM | 显示全部楼层
不好意识,最近有一大堆的assignment + 这个project + final exam. 所以没来这里看看和update. 刚考完试,就快点来报到了。
这个project也很幸运的完成了,也要谢谢大家的帮忙。
虽然这个project 很简单,但是也分享一下,不要笑我。
http://www.facebook.com/video/video.php?v=10150186124198481

这个project最头痛的就是那个relay board,烧掉我几个transistor,有时又不能走。最后放弃lecturer给的schematic, 自己参考以前的relay board,重新做过才成功。

对不起,有一点小兴奋,希望大家不要介意。由于对microcontroller有兴趣,想读读PIC了,不知大大门有什么 PIC 的 note 和 e-book可以分享吗?

在一次谢谢大家的帮忙!!

评分

参与人数 1积分 +30 收起 理由
pic + 30 谢谢回来报告进度

查看全部评分

回复

使用道具 举报

发表于 15-5-2011 12:03 AM | 显示全部楼层
请问大大谁有asm的nota或者是e book??
可以分享??
回复

使用道具 举报

发表于 15-5-2011 08:23 AM | 显示全部楼层
回复 34# shaddow

你要想做什么? 你的应用是什么? 我要控制我的dc motor
ii. 你想要拿到什么效果

按“走”一次,motor要自动“走”,直到碰到limit switch就停。按下“回”一次,motor要自动“回”,直到碰到limit switch就停,重复。


你的应用是什么?
应用就是Garage Door , 卷门
你说是要控制DC Motor, 其实说了等于没有说~

如果你一开始就说是卷门, 大家的脑海里就有一个概念, 还可以有很多建议。
比如你的卷门是要碰到Limit Switch 才停止。。

强化设计, 可以检测motor 的电流, 遇到突然增加的阻力时, 电流突然大幅度, 而马上停止motor, 还自动往上升。
而到达底端是, limit switch 检测到+ 大电流, 我们知道到底了, 停止。
当然, 我知道楼主是要做简单的, 没有要求你做上面这种, 但是论坛就是交流的平台, 你会得到别人的idea, 做不做是另一回事, 写在report 里面都很爽。。。


其实是有客户有要求设计应用在汽车的电动窗 Power Window, 不会夹到人。。
电动窗向上时, 如果你用“轻轻"手去压, 电动窗会自动向下降, 一个安全的考量。
尤其是小孩喜欢玩电动窗, 在台湾,就曾经夹死过小孩~
如果没有错的话, 高级房车的电动窗已经配有这种功能。
回复

使用道具 举报

楼主
 楼主| 发表于 15-5-2011 09:14 AM | 显示全部楼层
回复  shaddow

你要想做什么? 你的应用是什么? 我要控制我的dc motor
ii. 你想要拿到什么效果
按“ ...
pic 发表于 15-5-2011 08:23 AM



   哦,原来是这样来判段,那么用什么来测试voltage,让MCU知道voltage在增加?
回复

使用道具 举报

发表于 15-5-2011 11:16 AM | 显示全部楼层
哦,原来是这样来判段,那么用什么来测试voltage,让MCU知道voltage在增加?
shaddow 发表于 15-5-2011 09:14 AM

是测量电流,不是电压。。


原理如下, 用已知电阻值的电阻RShunt, 测量电压降
利用欧姆定律,
比如1ohm 的电阻,流过1A 的电流, 产生出1V 的电压降。
实际的应用是用很小的电阻, 如0.1~0.01ohm
所以电压降是很小的,就要放大信号, 然后输入去PIC MCU 的ADC。




Google: current measure circuit
可以找到很多测量电流的IC



回复

使用道具 举报

楼主
 楼主| 发表于 15-5-2011 09:51 PM | 显示全部楼层
是测量电流,不是电压。。


原理如下, 用已知电阻值的电阻R, 测量电压降
利用欧姆定律,
比如1o ...
pic 发表于 15-5-2011 11:16 AM



谢谢PIC大大,又有东西学了,第一个勉强看的明白。现在最重要是我要重新读过PIC 的MCU。
对了,可以问下你们都用什么c compiler来做PIC的programming? 我下载了MPLAB idle,不会用!haizz还有PIC的programmer大概多少钱?
回复

使用道具 举报

发表于 16-5-2011 08:55 AM | 显示全部楼层
本帖最后由 pic 于 16-5-2011 09:04 AM 编辑
谢谢PIC大大,又有东西学了,第一个勉强看的明白。现在最重要是我要重新读过PIC 的MCU。
对了,可以问下你们都用什么c compiler来做PIC的programming? 我下载了MPLAB idle,不会用!haizz还有PIC的programmer大概多少钱?
shaddow 发表于 15-5-2011 09:51 PM


2. 如果是学生问功课, 请注明你是什么学校, 几年级生,什么major.
MMU, gamma year 3rd sem, Mechanical engineering

你是学机械工程的, 我相信这些PIC MCU 的不是你的主课, 那么你是属于课余性质的,
那么建议你用CCS C, 但是如果你最后是要做到很强的, 就用C18/ Hi-Tech C.
我目前个人是用着CCS C, 基本上没有问题, 只有要做MiWi 的部分不行, 那是因为CCS C 不提供Miwi 的driver。
而Microchip 提供的Driver 和 CCS C 不相容, 因为CCS C 不是ANSI standard。

但是, CCS C肯定比C18/Hitech C 容易学很多。

一些源码, 可以在下面爬出来
发问前请进来看一下 - 单晶片目录 (FYP 同学必看)
http://cforum3.cari.com.my/viewthread.php?tid=1547186&extra=page%3D1

PIC programmer 过去都是DIY, 但是现在建议去买Pickit 2, 或一些Pickit 2 Clone。
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805&redirects=pickit2

回复

使用道具 举报

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

本版积分规则

 WeChat
 CARI App
Get it FREE Google play
 Instagram
cari_malaysia
FOLLOW
- 版权所有 © 1996-2019 Cari Internet Sdn Bhd 佳礼网络有限公司 (483575-W) -
Private Cloud provided by IPSERVERONE
0.193087s Gzip On
快速回复 返回顶部 返回列表