机器人编程彩灯设置方法

机器人编程彩灯设置方法,第1张

1. 流程:红灯亮 10 秒,红灯灭,绿灯亮 10 秒,绿灯灭。黄灯闪 5 秒,黄灯灭,以此循环。

2. 打开编程平台,新伏穗缓建程序。在执行模块中选择缺模【彩灯】 。右击可设置彩灯选项。 教学过程

3. 如下图编写好程序 4)将族局程序下载到主控器中,观

有的‘阶新科技’,以下是控制程序:

LED 单线翻转归零码驱动例子

说明: 由于数据正并脉宽最短只有几百御李纳秒, 需要使用示波器根据资料举拆迹时序调驱动。

void Send_8bit(uchar dat)

{

uchar i

for(i=0i<8i++)

{

DAI=1

if(dat&0x80) // CODE_1

{

DAI=1_nop_()_nop_()_nop_()

DAI=1_nop_()_nop_()_nop_()

DAI=1_nop_()_nop_()_nop_()_nop_()

DAI=0_nop_()

} e

lse // CODE_0

{

DAI=1_nop_()_nop_()_nop_()

DAI=0_nop_()_nop_()_nop_()

DAI=0_nop_()_nop_()_nop_()

DAI=0_nop_()_nop_()_nop_()

} d

at=dat<<1

}

} v

oid Send_24bits(uchar dat1,uchar dat2,uchar dat3)

{

Send_8bit(dat1)

Send_8bit(dat2)

Send_8bit(dat3)

} v

oid Rst(void ) // Data-Low>>50 us

{

uint s

DAI=0

for(s=0s<50s++){_nop_()_nop_()_nop_()}

}

一、设计题目及要求

1.有十六只LED,L0……L15

2.显示方式

①先奇数灯依次灭

②再偶数灯依次灭

③再由L0到L15依次灭

3.显示间隔0.5S,1S可调。

二、设计过程及内容(包括1总体设计的文字描述,即由哪几个部分构成的,各个部分的功能及如何实现方法;2主要模块比较详尽的文字描述,并配以必要的图片加以说明,但图片数量无需太多)

1.设计方案

从课程设计要求来看,要求实现彩灯的23种状态,所以,可以用一个23进制的计数器,从0到22来控制这23种状态。

再画出这23种状态和计数器数字对应的状态图,计算出逻辑式,便可实现彩灯的控制。由于变量过多,逻辑式的化简比较困难,所以我们使用了译码器来得到最小项,直接用最小项进行连接。

题目要求实现频率的选择,所以我拍凳使用了74161进行分频,从实验箱得到8Hz的脉冲信号,经分频得到2Hz和1Hz的信号,然后用数据选择器进好举行选择。

模块一,23进制计数器

使用2块74161扩展成为23进制计数器,采用并行进位方式、整体置数。因袭袜旅为计数器需要23种状态(00000-10110),所以,我先用两片74161连接成256(16×16)进制计数器,然后在输出为10110(22)时,用与非门来控制两计数器的LDN端清零。同时清零信号可作为进位信号输出。

具体连接如下:

仿真图如下:

每次计数器输出22时,CO端输出高电平。

模块二,5-32译码器

用两片74154(4-16译码器)扩展为5-32译码器。74154只有4个地址输入端A,B,C,D,如果对5为二进制代码译码,就要利用一个附加控制端来实现扩展。A,B,C,D分别对应连接两片74154的A,B,C,D输入端,另外一个输入端E,利用74154的G1N和G2N来实现选择两片之一。高位的O0N――O15N分别表示O16N――O31N。

具体连接如下图:

仿真图如下:

输入端分别输入0—31,可得到如下波形

模块三,分频器

用74161做23进制计数器进行分频分出8Hz,用数据选择器和一个数据选择器,控制时间间隔分别为0.5s,1s可调。用跳线选择实验箱上的CLK2的183Hz,用模块一的23进制计数器来实现23分频,可得到8Hz的时钟信号,在把得到的信号用74151再次分频,选择B,C端输出,即可得到2Hz和1Hz的时钟信号。具体连接如下图:

仿真图如下:

模块四,控制模块

由23进制计数器输入一个五位二进制数(00000-10110),输出彩灯所对应的状态(1表示灯亮,0表示灯灭)。对应的状态图如下:

由上表可得到各个输出对应输入端的逻辑表达式

L0=M0+M1+M2+M3+M4+M5+M6+M12

L1=M0+M6+M7+M8+M9+M10+M11+M12+M13

L2= M0+M1+M2+M3+M4+M5+M6+M7+M12+M13+M14

L3= M0+M1+ M6+M7+M8+M9+M10+M11+M12+M13+M14+M15

L4= M0+M1+M2+M3+M4+M5+M6+M7+M8+M12+M13+M14+M15+M16

L5= M0+M1+M2+ M6+M7+M8+M9+M10+M11+M12+M13+M14+M15+M16+M17

L6= M0+M1+M2+M3+M4+M5+M6+M7+M8+M9+M12+M13+M14+M15+M16+M17+M18=

然后进行连线。

具体连接如下:

仿真图如下:

其中cp为时钟信号,L0—L9表示10个彩灯

模块五,总控制模块

把频率控制模块(模块三)和彩灯控制模块(模块四)连接起来,就组成了频率可调的彩灯控制器,输入端control可控制输入频率(0为2赫兹,1为1赫兹)。

仿真波形如下:

图中显示了控制信号分别为0和1时的波形

三、设计结论(包括设计过程中出现的问题;对EDA课程设计感想、意见和建议)

1. 硬件实验情况

软件设计是非常重要的,但是还是纸上谈兵啊,真正要到了 安装调试的时候,这又是一个另一个比设计还头痛的事,

在确定了我的演示波形正确之后,按照书上的程序下载 *** 作流程,成功的将我的设计内容下载到EPF10K10LC84-3的芯片中,然后根据引脚,逐个连接,在连线的过程中,我尤其注意了时钟信号的连接,最终得到了令人相当满意的彩灯闪烁效果。

2. 改进方法

刚刚开始设计时,计数器的我都采用了CLRN端清零,但在使用中发现这样进位的脉冲过短,影响实验结果。于是全部改为LDN端清零。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12353896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存