流水灯实训报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流水灯实训报告相关的知识,希望对你有一定的参考价值。

10 分钟搞定哦

转载于 http://www.scetop.com/jpkc/pld/ArticleShow.asp?ArticleID=565&BigClassName=%CA%B5%D1%B5%BD%CC%D1%A7
希望对你有帮助

实训项目(一) 流水灯 1. 实验目的通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Ver-ilog HDL的编程方法;学习简单时序电路的设计和硬件测试.2. 实验内容本实验的内容是建立可用与控制LED流水灯的简单硬件电路,要求在SmartSOPC实验箱上实现LED1-LED8发光二极管流水灯显示.3. 实验原理(1) 在引脚上周期性地输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2.流水一次后,输出数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,这样就可以实现LED流水灯.为了观察方便,流水速率最好在2Hz左右.在QuickSOPC核心板上有一个48MHz的标准钟源,该时钟脉冲CLOCK与芯片的28脚相连.为了产生2Hz的时钟脉冲,在此调用了一个分频模块,通过修改分频系数来变改输出频率.当分频系数为24×10时,输出即为2Hz的频率信号.(2) int_div分频模块说明: int_div模块是一个占空比为50%的任意整数分频器.输入时钟为clock,输出时钟为clk_out.其中F_DIV为分频系数,分频系数范围为1~2N(n=F_DIV_WIDTH).若要改变分频系数,则改变参数F_DIV和F_DIV_WIDTH到相应范围即可.在本例中输入时钟频率为48MHz,要得到2Hz的信号,分频系数应为48×10/2=24×10.对于分频系数为24×10的数需要一个25位宽的计数器.在以后的实验中还会多次用到这个模块,用户可以分析它的基本原理.4. 实验步骤(1) 启动QUARTUSⅡ建立一个空白工程,然后命名为.(2) 新建VerilogHDL源程序文件ledwater.v,输入程序代码并保存,然后进行综合编译.若在编译过程中发现错误,则找出并更正错误,直到编译成功为止.(3) 从设计文件创建模块,由ledwater.v生成名为ledwater.bsf的模块符号文件.(4) 将光盘中EDA_component目录下的int_div.bsf和int_div.v拷贝到工程目录.(5) 新建图形设计文件命名为led_wter.bdf在空白处双击鼠标左键,在sym-bol对话框左上脚的的Iibraries中,分别将projet下的ledwater和int_div模块放在图形文件ed_wter.bdf中,加入输入、输出引脚,双击各引脚符号,进行引脚命名.将与ledwater模块led[7..0]连接的引脚命名为led[7..0],与int_div模块clock连接的引脚命名为clock. int_div模块的clk_out与ledwater模块的clk相连接.双击int_div的参数框,并修改参数,将F_DIV的值改为24000000, F_DIV_WIDTH的值改为25,单击“确定”按扭保存修改的文件的参数如果led_water.bdf中部能看到参数设置框,可在空白处右击鼠标,选择Show Parameter Assignments命令来显示参数设置框。(6) 选择目标器件并对相应的引脚进行锁定,正在这里所选择的器件为Altera公司Cyclone系列的EP 1C6Q240C8芯片,引脚锁定方法如表3.1所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。 表3.1 引脚锁定方法 信号引脚 信号引脚1C61C12EDA1C61C12EDALed[0]505050led[5]474747led[1]535353led[6]484848led[2]545454led[7]494949led[3]555555clock282828led[4]176176176 (7) 将led_water.bdf设置为顶层实体。对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(8) 最后将跳线短接帽跳接到smartSOPC实验箱上JP6的LED0~LED7,使LED1~LED8 分别与FPGAD的引脚50、53~55、176和47~49相连。将AlteraByteBlasterⅡ下载电缆的两端分别接到PC机的打印机并口和QuickSOPC核芯板上的JTAG下载口上,打开电源,执行下载命令,把程序下载到FPGA器件中,此时,即可在smartSOPC实验箱上看到流水灯。(9 更改分频模块(int_div)的分频系数,并重新编译下载,观察流水灯的变化。 5. 实验参考程序 程序清单3.2ledwater.v Module ledwater(led,clk); //模块名ledwaterOutput[7:0]led; //定义LED输出口Input clk; //定义时钟输入口Reg[8:0] led_r; //定义输出寄存器Assign led=led_r[7:0]; //寄存器输出always@(posedge clk) //在时钟上升沿触发进程beginled_r<=led_r<<1; //是,则输出左移一位if(led_r==9`d0) //循环完毕吗?led_r<=9`b11111111; //是,则重新赋初值endendmodule 6. 日积月累(1) 思考:如何实现左流水灯或其他花样流水呢?用户自己动手试试。(2) REG数据类型:由两大类数据类型,线网类型和寄存器类型。REG是最常见的寄存器类型,形式如下:REG[msb:lsb]reg1,reg2,…regN;其中,msb和lsb定义了范围,并且均匀为常数值表达式。范围定义是可以选的。如果没有定义范围,默认值为1位寄存器。 reg数据类型的默认初始值是不定值X,它可以赋正值,也可以赋负值。当一个reg类型数据是一个表达式中的操作数时,他的值被当作是无符号值,即正值(如意个4)为寄存器被赋值-1,则在表达式中进行运算时,其值被认为是+15)。 reg型只表示被定义的信号将用在always块内,理解这一点很重要。并不是说reg 型信号一定是寄存器或触发器的输出。虽然reg型信号常常是寄存器或触发器的输出,但并不一定总是这样,只有在时序逻辑中他对应的才是寄存器,而在组合逻辑中他则表达一个节点。(3)按照上述管工程进行编译,会出现“warning: found pins functioning as undefined clocks and/or memory enables Info: Assuming node ”clock” is an undefined clock”的警告,大概意思是指发现clock节点没有定义成时钟信号。消除这个警告的方法如下: ①选择assignments→timing settings命令,在弹出的对话框中的clockseteings选项区中选中settingsfor individual clock signals项。 ②对clocks进行设置,在弹出的对话框中单击按钮添加节点,按图中所示进行设置。图中requiredfmax 为系统需求的最大时钟频率,在这里填50HZ即可。 ③设置好之后连续单击OK按钮保存设置,最后再进行编译,原先的warning就会消除。以上的操作是将“clock”加入时钟域。如果“clock”不是一个时钟信号,可将设置属性改为“not a clock ”,也可以消除warning。
参考技术A 流水灯设计实习报告 默认分类 2009-06-13 14:14:14 阅读2195 评论3 字号:大中小 订阅 实训任务: 做单一灯的左移右移,八个发光二极管L1-L8分别接在单片机的p1.0-p1.7接口上,输出“0”时,发光二极管亮,开始P1.0→P1.2→P1.3┅→P1.7→P1.6→┅→P1.0亮,重复循环3次。然后左移2次,右移2次,在左移和右移时八个灯闪烁2次(延时的时间0.2秒)。 一、 实训目的和要求: (1) 熟练掌握Keil C51集成开发环境的使用方法 (2) 熟悉Keil C51集成开发环境调试功能的使用和DP51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台的使用。 (3) 利用单片机的P1口作IO口,学会利用P1口作为输入和输出口。 (4) 了解掌握单片机芯片的烧写方法与步骤。 (5) 学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。 (6) 掌握利用Protel 99 SE绘制电路原理图及PCB图。 (7) 了解PCB板的制作腐蚀过程。 (8)掌握焊接工艺的各个要领.二、实训器材: PC机(一台) PCB板(一块) 200Ω电阻(八只) 10K电阻(一只) LED发光二极管(八只)晶振一块   25V 10μF电容(一只) 30PF瓷片电容(两只)单片机IC座(一块) AT89C51单片机芯片(一块) 热转印机(一台) DP51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台(一台) 四、实训步骤: (1)根据要求写出程序。(2)根据原理图(如图一所示),用导线把单片机综合开发平台A2区的J61接口与D1区的J52接口相连。 (3)将流水灯程序编写完整并使用TKStudy ICE调试运行。 (4)使用导线把A2区J61接口的P1口7个口分别与J52接口的八个LED相连。 (5)打开电源,将编写好的程序运用TKStudy ICE进行全速运行,看能否实现任务要求。 (6)观察运行结果,若能实现功能,则将正确编译过的HEX文件通过EasyPRO51编程器写入MCU片内存储器,然后将烧写的芯片A2区的圆孔IC座进行最终实验结果的演示。 (7)制板。首先利用Protel 99 SE画好原理图,根据原理图绘制PCB图,然后将绘制好的PCB布线图打印出来,经热转印机转印,将整个布线图印至PCB板上,最后将印有布线图的PCB板投入装有三氯化铁溶液的容器内进行腐蚀,待PCB板上布线图外的铜全部后,将其取出,清洗干净。 (8)焊接。将所给元器件根据原理图一一焊至PCB板相应位置。 (9)调试。先把AT89C51芯片插入IC座,再将+5V电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。 (流水灯控制器原理图) 五、流水灯控制器程序的主程序: PCB ORG 0000H LJMP MAIN MOV R0, #3 MOV R1 , #2 MOV R2, #2 MOV R3,#2 MAIN: CLR P1.0 ACALL DEL CLR P1.1 ACALL DEL CLR P1.2 ACALL DEL CLR P1.3 ACALL DEL CLR P1.4 ACALL DEL CLR P1.5 ACALL DEL CLR P1.6 ACALL DEL CLR P1.7 ACALL DEL SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 ACALL DEL CLR P1.7 ACALL DEL CLR P1.6 ACALL DEL CLR P1.5 ACALL DEL CLR P1.4 ACALL DEL CLR P1.3 ACALL DEL CLR P1.2 ACALL DEL CLR P1.1 ACALL DEL CLR P1.0 ACALL DEL SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 ACALL DEL DJNZ R0, MAIN SJMP LOOP LOOP: CLR P1.0 ACALL DEL SETB P1.0 CLR P1.1 ACALL DEL SETB P1.1 CLR P1.2 ACALL DEL SETB P1.2 CLR P1.3 ACALL DEL SETB P1.3 CLR P1.4 ACALL DEL SETB P1.4 CLR P1.5 ACALL DEL SETB P1.5 CLR P1.6 ACALL DEL SETB P1.6 CLR P1.7 ACALL DEL SETB P1.7 DJNZ R1,LOOP SJMP LOOP1LOOP1: CLR P1.7 ACALL DEL SETB P1.7 CLR P1.6 ACALL DEL SETB P1.6 CLR P1.5 ACALL DEL SETB P1.5 CLR P1.4 ACALL DEL SETB P1.4 CLR P1.3 ACALL DEL SETB P1.3 CLR P1.2 ACALL DEL SETB P1.2 CLR P1.1 ACALL DEL SETB P1.1 CLR P1.0 ACALL DEL SETB P1.0 DJNZ R2,LOOP1 LOOP3: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 CLR P1.7 ACALL DEL SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 ACALL DEL DJNZ R3, LOOP3M: CLR P1.0 ACALL DEL CLR P1.7 ACALL DEL CLR P1.1 ACALL DEL CLR P1.6 ACALL DEL CLR P1.2 ACALL DEL CLR P1.5 ACALL DEL CLR P1.3 ACALL DEL CLR P1.4 ACALL DEL SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 ACALL DEL DEL: MOV R7,#04FHDEL1: MOV R6, #04FHDEL2: MOV R5, #01BHDEL3: DJNZ R5, DEL3 DJNZ R6, DEL2 DJNZ R7, DEL1 RET LJMP MAIN PLC 三、原理图: 布线图如下 六、实训体会与自我评价: 本设计成品是以单片机AT89C51芯片为核心部件,实现了单一灯的左移右移重复循环3次。然后左移2次,右移2次,闪烁2次(延时0.2秒)的功能。此次设计在软件、编写程序方面花费时间太多我们上网找资料,上图书馆,尽可能多的了解流水灯控制的相关知识。通过这一周的综合实训(单片机课程设计),熟练掌握了Keil C51集成开发环境的使用方法,了解并掌握到单片机芯片的烧写方法与步骤,进一步加深了对单片机常用指令的理解与运用。能够较熟练的运用Protel 99 SE绘制电路原理图及PCB图,对PCB板的一般制作过程有了一定的了解。在实训过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。 同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助。使我们认识到课程的重要性,同时也感受到理论与实践之间的差距,使我们对单片机系统的应用有了更加深刻的认.

实训第二天内容总结(Linux常用命令及使用)

参考技术A 1、目录切换命令

cd usr/ 切换到该目录下usr目录

cd ../ 切换到上一层目录

cd /切换到系统根目录

cd ~ 切换到用户主目录

2、目录操作命令

        (1)增加目录

            命令:mkdir 目录名称

        (2)查看目录

            ls [-al] 父目录   ls -l 可以缩写成ll

          (3)寻找目录

            find 目录 参数(重点)

            注意这里涉及权限问题,需要先切换到root目录 su root

            (4)修改目录名称

            mv 目录名称 新目录名称

            (5)拷贝目录

                cp -r 被目录名称 目录拷贝的目标位置 -----r代表                          递归拷贝

                将/usr下的newTest拷贝到根目录下的test中,使用cp -r                 /usr/newTest test/rm

            (6)删除目录

                rm [-rf] 目录

                删除/usr下的newTest,进入/usr下使用rm -r newTest

3、文件操作命令

            (1)文件创建  touch 文件名称 ----- 空文件

            (2)文件查看    cat/more/less/tail 文件

            (3)修改文件内容    vim 文件

                 vim 文件------>进入文件----->命令模式------>按i进入编                     辑模式----->编辑文件 ------->按Esc进入底行模式----->                      输入:wq/q!

            (4)删除文件

                熟记 rm -rf 文件 即可

4、压缩文件操作命令

               (1)tar -zcvf 打包压缩后的文件名 要打包压缩的文件

                z:调用gzip压缩命令进行压缩

                c:打包文件

                v:显示运行过程

                f:指定文件名

            (2) 解压压缩包(重点)

                tar [-xvf] 压缩文件

5、其他命令

            (1)显示当前所在位置    pwd

            (2)搜索命令    grep 要搜索的字符串 要搜索的文件

            (3)管道命令 | 将前一个命令的输出作为本次目录的                      输入

            (4)查看进程     ps -ef

            (5)网络通信命令    查看当前系统的网卡信息:ifconfig

                      查看与某台机器的连接情况:ping

            (6)查看当前系统的端口使用 netstat –an,通常和 |                 grep一起使用

6、Linux的权限命令

            在随意某个目录下ls -l  查看某个目录下的文件或目录                    的权限 rwx 读取权 写入权 执行权 

             这个字符串有10位,可以分为4段来解读

第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录;

第二段(第2-4位,共3个字符串)表示文件所属用户对它的权限 - 属主权限(User);

第三段(第5-7位,共3个字符串)表示文件所属用户组用户对它的权限 - 属组权限(Group);

第四段(第8-10位,共3个字符串)表示其他用户对它的权限 - 其他权限(other);

注意:①我们用3位8进制来表示文件的权限,r(read)用4标识,w(write)用2标识,x(excute)用1标识

②r–可读,w–可写,x–可执行。

③每一段的三位顺序不可变,如果没有对应的权限,则使用-表示

上图中的-rwxrw-r–可以用八进制数字764表示。

!!!!修改文件/目录的权限的命令:chmod

chmod u=rwx,g=rw,o=r aaa.txt 或者777 代表全部权限

7、 free查看内存信息

df -h 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计

8、top查看资源信息(CPU)

top

补充:

关机命令

reboot  重新启动操作系统

shutdown -h now 立刻关机,其中now相当于时间为0的状态

shutdown -h 10:23

shutdown -h +10  系统再过十分钟后自动关机

Linux命令

    目录操作

        cd usr/                            切换到该目录下usr目录

        cd ..                                切换到上一层目录

        cd /                                切换到系统根目录

        mkdir 目录名称              创建目录

        ls      目录名称                查询该目录下所有的目录和文件

        ls [-a]  目录名称              查询该目录下所有的目录和文件,包含隐藏文件

        ls [-l]  目录名称              查询该目录下所有的目录和文件的详细信息

        find / -name 目录名称    查找/root下的目录(文件)

        mv 目录名称 新目录名称  修改目录名称

        mv 目录名称 目录的新位置      剪切

        cp -r 目录名称 目录的目标位置  拷贝

        rm -rf  目录                  强制删除目录

    文件操作

        touch 文件名称            创建空文件

        cat/more/less/tail 文件  查看文件内容

        tail -f 文件                  动态查看/实时查看文件(日志)

        grep 要搜索的字符串 要搜索的文件                关键字搜索

        vi/vim  文件                修改文件内容

        rm -rf 文件                强制删除文件

    文件的打包

        tar -zcvf 文件名.tar  要打包的文件

    文件的解压 

        tar -xvf 文件名.tar

    扩充:将文件解压到固定位置

        tar -xvf 文件名.tar -C 指定解压的位置

    查询当前所在位置

        pwd     

    查看进程

        ps -ef | grep 进程名称(tomcat/mysql)

    杀死进程

        kill -9 进程pid

    查看端口号

        netstat -an | grep 端口号(3306)

    查看服务器ip

        ifconfig

    查看网络是否能正常使用

        ping 外网地址            查看是否能访问外网

        ping 内网ip                查看是否能访问内网

    权限命令

        chmod 777 文件        赋权

    查看cpu

        top

    查看磁盘信息

        df -h

    查看内存信息

        free   

    关机命令

        shutdown -h now  立刻关机,其中now相当于时间为0的状态

        shutdown -h 10:23

        shutdown -h +10    系统再过十分钟后自动关机

    重新启动

        reboot    重新启动操作系统

以上是关于流水灯实训报告的主要内容,如果未能解决你的问题,请参考以下文章

数字系统设计与制作报告——双向流水灯控制电路

秋招一个半月流水账+招银网路科技offer

秋招一个半月流水账+招银网路科技offer

秋招一个半月流水账+招银网路科技offer

按键控制流水灯速度不足是啥

没有高效的部署流水线,何谈DevOps?