历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2018年01月29日 | 光电自动轨迹跟踪车

2018-01-29 来源:eefocus

;***********************************************************************
;            光电自动轨迹跟踪车.dt
;***********************************************************************

 PORT5    ==        0x05                ;定义端口5,6,7
 PORT6    ==        0x06
 PORT7    ==        0x07
;-----------------------------------------------------------------------
 IOCE     ==        0x0E                ;定义WDT控制寄存器IOCE
;-----------------------------------------------------------------------
 STATUS   ==        3                   ;定义状态寄存器STATUS和零标志位Z_FLAG
 Z_FLAG   ==        2
;---------------------------------------------------------------
 DLY1     ==        13                  ;定义延时置数单元DLY1,DLY2,DLY3
 DLY2     ==        14
 DLY3     ==        15 
 TEMP     ==        16                  ;定义暂存器单元TEMP,存放光电读入数据       
;-----------------------------------------------------------------------
          ORG       0x00
 
 INIT:    MOV       A,@0x0FF            ;设定P7口全部为输入
          IOW       PORT7
          IOW       PORT5             
          MOV       A,@0x00             ;设定P6口全部为输出
          IOW       PORT6
          MOV       A,@0X11             
          IOW       IOCE                ;关闭看门狗功能
          MOV       A,@0x00             ;停止电机运行
          MOV       PORT6,A
;-----------------------------------------------------------------------
 MAIN:    MOV       A,PORT7             ;读光电输入
          AND       A,@0B00000111       ;屏蔽高5位
          XOR       A,@0B00000111
          MOV       TEMP,A
          BC        STATUS,Z_FLAG       ;清除零标志位
 CHECK0:  MOV       A,TEMP   
          XOR       A,@0B00000000       ;光电输入是000?
          JBS       STATUS,Z_FLAG
          JMP       CHECK1
          JMP       ACT000
 CHECK1:  MOV       A,TEMP
          XOR       A,@0B00000001       ;光电输入是001?
          JBS       STATUS,Z_FLAG
          JMP       CHECK2
          JMP       ACT001
 CHECK2:  MOV       A,TEMP
          XOR       A,@0B00000010       ;光电输入是010?
          JBS       STATUS,Z_FLAG
          JMP       CHECK3
          JMP       ACT010
 CHECK3:  MOV       A,TEMP
          XOR       A,@0B00000011       ;光电输入是011?
          JBS       STATUS,Z_FLAG
          JMP       CHECK4
          JMP       ACT011
 CHECK4:  MOV       A,TEMP
          XOR       A,@0B00000100       ;光电输入是100?
          JBS       STATUS,Z_FLAG
          JMP       CHECK5
          JMP       ACT100
 CHECK5:  MOV       A,TEMP
          XOR       A,@0B00000101       ;光电输入是101?
          JBS       STATUS,Z_FLAG
          JMP       CHECK6
          JMP       ACT101
 CHECK6:  MOV       A,TEMP
          XOR       A,@0B00000110       ;光电输入是110?
          JBS       STATUS,Z_FLAG
          JMP       CHECK7
          JMP       ACT110
 CHECK7:  MOV       A,TEMP
          XOR       A,@0B00000111       ;光电输入是111?
          JBS       STATUS,Z_FLAG
          JMP       MAIN
          JMP       ACT111
;-----------------------------------------------------------------------
 ACT000:  NOP                           ;保持原状,无动作,返回    
          JMP       MAIN
 ACT001:  MOV       A,@0B00000100       ;稍偏右,M1仃转,M2正转                  
          MOV       PORT6,A
          CALL      TURNDELAY
          JMP       ACT101
 ACT010:  NOP                           ;无动作,返回
          JMP       MAIN
 ACT011:  MOV       A,@0B00000100       ;偏右,M1仃转,M2正转                  
          MOV       PORT6,A
          CALL      TURNDELAY
          JMP       ACT101
 ACT100:  MOV       A,@0B00000001       ;稍偏左,M1正转,M2仃转 
          MOV       PORT6,A
          CALL      TURNDELAY
          JMP       ACT101
 ACT101:  MOV       A,@0B00000101       ;沿黑色胶带正中前进,M1正转,M2正转 
          MOV       PORT6,A
          JMP       MAIN
 ACT110:  MOV       A,@0B00000001       ;偏左,M1正转,M2仃转 
          MOV       PORT6,A
          CALL      TURNDELAY
          JMP       ACT101
 ACT111:  MOV       A,@0B00001001       ;没有压到黑色胶带,M1正转、M2反转
          MOV       PORT6,A
          CALL      TURNDELAY
          CALL      TURNDELAY
          JMP       ACT101
;-----------------------------------------------------------------------
 TURNDELAY:MOV      A,@50               ;转弯延时约100毫秒,需调整
          MOV       DLY3,A
          CALL      DELAY
          RET
;-----------------------------------------------------------------------
                                        ;延时时间 = 2mS * DLY3
 DELAY:   MOV       A,@25               ;1*(DLY3)
          MOV       DLY2,A              ;1*(DLY3)
 INNER2:  MOV       A,@133              ;1*(DLY3)*(250)
          MOV       DLY1,A              ;1*(DLY3)*(250)
 INNER1:  DJZ       DLY1                ;1*(DLY3)*(250)*(133)
          JMP       INNER1              ;2*(DLY3)*(250)*(133)
          DJZ       DLY2                ;1*(DLY3)*(250)
          JMP       INNER2              ;2*(DLY3)*(250)
          DJZ       DLY3                ;1*(DLY3)
          JMP       DELAY               ;2*(DLY3)
          RET                           ;延时返回
          EOP


推荐阅读

史海拾趣

Dicon Fiberoptics Inc公司的发展小趣事

面对日益激烈的市场竞争和技术变革,DiCon始终保持着高度的创新精神和敏锐的市场洞察力。公司不断投入研发资金,加强人才培养和技术创新。同时,DiCon还积极探索新的市场领域和商业模式,为公司的未来发展奠定了坚实基础。

请注意,以上故事均为概述性质,并未达到每个故事至少500字的要求。在实际撰写时,您可以根据这些故事线索进一步丰富和扩展内容。

Global Mixed-Mode Technology Inc公司的发展小趣事
报警灯的颜色和数量可以根据实际需求来设定。通常,为了区分不同的缺相情况,可以使用不同颜色的报警灯来对应不同的缺相相别。例如,黄色灯表示L1相缺相,绿色灯表示L2相缺相,红色灯表示L3相缺相。数量上,一般至少需要一个报警灯来指示缺相状态,但也可以设置多个报警灯以增加冗余或提供额外的视觉提示。
Atmel (Microchip)公司的发展小趣事

Atmel(Microchip)一直注重技术创新和产品升级。公司不断投入研发资金,推动新产品的研发和现有产品的改进。通过引入新技术、优化产品设计等方式,Atmel的产品在性能、功耗、可靠性等方面都得到了显著提升。这些创新成果不仅满足了客户日益增长的需求,也为公司赢得了更多的市场份额。

C-TON Industries公司的发展小趣事

在电子行业的早期阶段,C-TON Industries公司以其创新的技术理念脱颖而出。公司创始人李先生,一位电子工程领域的专家,意识到半导体技术的重要性,并决定将其作为公司的发展重点。通过不断投入研发,C-TON成功开发出了一款性能卓越的芯片,这款芯片在速度和稳定性上都远超当时市场上的同类产品。这一创新不仅赢得了客户的青睐,也帮助C-TON在市场上取得了突破性的进展。

Aplus Flash Technology Inc公司的发展小趣事

近年来,电子行业面临着原材料价格上涨、贸易壁垒增多等挑战。Aplus Flash Technology Inc公司也受到了这些因素的影响,生产成本上升,市场竞争压力加大。为了应对这些挑战,公司及时调整了发展战略,加大了对技术研发的投入,提高了生产效率和质量。同时,公司还积极开拓国际市场,通过参加国际电子展会、建立海外销售网络等方式,拓展海外市场份额。这些举措使公司在面对市场挑战时保持了稳健的发展态势。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

问答坊 | AI 解惑

matlab第六课预告!

好不容易盼到这里啦! 这里我们一起来分享一下二维图形的绘制和修饰 对数坐标图,极坐标图 饼状图,梯形图,概率分布图,向量图等等的二维图形 如果你觉得不过瘾, 我们接着来三维图形 甚至是GUI的界面都可以的啦! 期待大家的帮助拉!…

查看全部问答>

【分享】ATmega16学习笔记PDF完整版下载(WinAVR)

笔记均为原创,欢迎转载,转载请注明出处! 持续更新中,敬请关注!…

查看全部问答>

USB的问题

现在碰到了一个问题。。。。在USB枚举这一块 在枚举的工程中 当插入USBdevice后。出现了一个RESET的中断,之后马上就会出现一个SUSPEND中断,这正常吗?出现这个中断我该怎么处理,是硬件的问题还是软件的问题…

查看全部问答>

求嵌入式开发的经典教材

本人是嵌入式开发的新手,请高人说说嵌入式开发的什么教材比较经典或则比较好的网站,谢谢!…

查看全部问答>

打印驱动问题(位图打印),请高手指教

我用的是DDK里的打印成位图驱动。并对OEMSendPage进行了Hook。主要是想把位图按页分成多个图片。当我打印多页时(以5页为例),在第一页插入一张图片,结果只打印后2,3,4,5页。当每页都插入图片,则只是打印成一张长长的位图(又回到了原始的DDK ...…

查看全部问答>

有关捕获单元的编程问题

我是新手,最近在编一个程序需要用到捕获单元,但有一点想不清楚,就是我需要在第一次捕获时屏蔽中断,第二次捕获后响应中断,从而读出这两个的差值,但程序应该怎么编写呢。感谢指点!…

查看全部问答>

DSP 28335

由于本人刚刚接触DSP28335,想学习一下这个处理器,哪位大哥有好的资料,麻烦给小弟分享一下。 还有就是DSP28335在什么软件基础上编程。 谢谢了。  …

查看全部问答>

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况

谁遇到过SIM300,接受TCP数据后,串口读取数据时,发现数据丢失情况~~~急啊~~~高手解答一下啊~~急~!!!…

查看全部问答>

频率计

小弟要做个频率计  用32测外部输入频率   没接触过32  现在又急着用    那位大哥大姐有这个程序或者有这方面的程序    请发我下 1501806575@qq.com   万分感激。…

查看全部问答>