编写LED显示0-9数字的PLC控制程序
- 格式:doc
- 大小:347.51 KB
- 文档页数:5
目录第一章绪论 (2)第二章方案设计 (3)2.1 方案确定 (3)2.1.1 功能要求 (3)2.2.2 方案确定 (3)2.2 器件选择 (3)第三章硬件电路设计 (4)3.1 整体模块设计 (4)3.2 单片机最小系统设计 (4)3.2.1 晶振电路设计 (4)3.2.2 复位电路设计 (5)3.3 驱动电路设计 (6)3.4 LED点阵显示设计 (7)第四章软件电路设计 (10)4.1 软件设计思想 (10)4.2 主程序流程图 (13)第五章系统仿真与调试 (14)5.1 系统仿真 (14)5.2 性能分析 (14)结束语 (14)参考文献 (15)致谢 (15)附录 (16)第一章绪论LED是发光二极管LIGHT EMINTTING DIODE的英文缩写,是一种直接能将电能转化为可见光的半导体。
LED点阵是由发光二极管排列组成的显示器件,在日常生活中随处可见,其发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的。
它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活等特点。
随着社会经济的不断进步,人们对LED显示器的认识不断加深,其应用领域越来越广。
本设计是基于AT89C5151的8×8点阵LED数码字符显示器的设计,LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本文讲述了基于AT89C51单片机8×8 LED数码字符显示器的基本原理、硬件组成与设计,Proteus软件仿真,程序设计等基本环节与相关技术。
LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活。
适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所。
该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术。
中央民族大学PLC实验报告题目:LED数码显示控制班级:11自动化学生姓名:陈梓岩文超周张镇域王佳兵学号:1 ****** ******* ******* *******指导教师:***实验二 LED数码显示控制在LED数码显示控制单元完成本实验一、实验目的熟练掌握移位寄存器位SHRB,能够灵活的运用。
二、实验说明1.SHRB指令简介移位寄存器位(SHRB)指令将DATA数值移入移位寄存器。
S_BIT指定移位寄存器的最低位。
N指定移位寄存器的长度和移位方向(移位加=N,移位减=-N)。
SHRB指令移出的每个位被放置在溢出内存位(SM1.1)中。
该指令由最低位(S_BIT)和由长度(N)指定的位数定义。
2.参考程序描述按下启动按钮后,由八组LED发光二极管模拟的八段数码管开始显示:先是一段段显示,显示次序是A、B、C、D、E、F、G、H,随后显示数字及字符,显示次序是0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F,断开启动按钮程序停止运行。
三、实验面板图四、实验步骤1.输入输出接线输入SDI0.0输出 A B C D E F G HQ0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 Q0.72.打开主机电源将程序下载到主机中。
3.启动并运行程序观察实验现象。
五、梯形图参考程序I0.0有信号输入100msT37计时器计时1s后M0.1常闭打开,计时停止I0.0有信号输入100msT38计时器计时1.5s常闭开启,M1.0输入M1.0或者M0.2有输入时M10.0有值M11.7有输入时M20.0有M21.1有输入时100msT39 计时器计时1sT39常闭开关打开M0.2有输入但M0.1有输入时两个寄存器工作,移位寄存器1从M10.1--M11.7 寄存器2从M20.1-21.1Q0.0A段数码管M10.1对应A段M11.1对应0M11.3对应2M11.4对应3M11.6对应5M11.7对应6M20.1对应7M20.2对应8M20.3对应9M20.4对应aM20.6对应cM21.0对应eM21.1对应fQ0.1是B段M10.2对应B段M11.2对应1M11.5对应4M20.7对应dQ0.2是C段M10.3对应C段M20.5对应bQ0.3是D段M10.4对应D段Q0.4是E段M10.5对应E段Q0.5是F段M10.6对应F段Q0.6是G段M10.7对应G段Q0.7是H段M11.0对应H段档i0.0给一个低电平信号(即SD开关关闭)信号经过一个非门寄存器将会复位六、实验结果:七、实验心得:对于PLC这样的实验让我们自己去写,那可定是不太现实的。
实验三 LED数码显示控制一、实验要求拨上开关后,由八组LED发光二极管模拟的八段数码管开始显示:字母A、b、C、d、E、F、G、H、I、J,时间间隔1s,并循环不止。
拨下启动开关后停止显示。
二、实验软元件X000—启动开关 Y000~Y007---数码管的a段~h段三、实验梯形图四、实验程序及注释0.启动2.字段显示间隔1秒6.产生秒冲8.启动后延时1.5秒显示13.脉冲移位输入14.循环显示设置,F接A17.左移位指令31.输出数码管a段36.输出数码管b段43.输出数码管c段50.输出数码管d段61.输出数码管e段70.输出数码管f段77.输出数码管g段82.打下开关得到一个下降沿激活复位84.复位计时器89.复位M10~M20五、实验结果1)仿真结果程序设置了M11到M20分别控制显示字母A、b、C、d、E、F、G、H、I、J,则跟着左移位指令就可以按顺序显示这十个字母。
再设置一个M20在移位输入M10前面即可在左移位到M20显示字母J后即再次激活M10,然后继续左循环脉冲,自此实现循环显示的效果。
LDF X000指令可以在打下开关后得到一个下降沿从而触发复位指令,清除M10~M20,使得所有相关输出的段位灯熄灭。
字母A 字母b 字母C 字母d字母E 字母F 字母G 字母H左:字母I右:字母J2)实验结果在实验室得到的实验结果与仿真结果一致。
打上开关循环显示字母A~J,打下开关后所有灯熄灭。
六、实验总结1)实验台上的输出Y4个一组要接一个地,所以在实验过程中如果输出需要用到7个输出Y000~Y006,则除了COM1要接地外,COM2也要接地。
2)通过这次实验,我们了解了用PLC模拟数码管显示的原理。
如果需要使数码管显示一个字符,则先观察该字符需要数码管的哪个段位同时亮,然后可以用一个辅助继电器M来控制这个字符,在这个字符需要发光的几个段对应的输出Y的前面都添加一个常开的触点M,则当这个M得到一个脉冲后即会闭合使得输出Y得电,继而得到想要显示的字符。
PLC数码显示及主令开关报告
2、设计题目与要求
(1)显示0到9的每一个数字。
(2)主开关负责开启和关闭,副开关只起关闭作用。
3、设计所需工具和器件
4、设计分析
S7-200PLC试验箱,电脑
5、设计方案提出,比较,及确定
6、选定设计方案的仿真
7、选定设计方案的硬件连接图
(数码显示接线图)
(2)主令开关接线图
8、选定设计方案的实物搭建
(1)数码显示接线 I0.0接启动,Q0.0接A,后面依次是Q0.1接B、Q0.2接C,一直到Q0.6接G结束。
(2)主令开关接线 I0.0接SB5,I0.1接SA5,Q0.0接L5。
(1)数码显示
(2)主令开关
9、硬件检测
10、选定设计方案的软件程序设计思路
运用延时器和复位、置为指令使小灯依次显示0到9的每个数字。
11、选定设计方案的程序流程图
(1)数码显示流程图
(2)主令开关流程图
12.程序编写(1)数码显示
(2)主令开关
13、配合硬件再次调试和改进
14、设计方案功能实现测试,调整
15、达到预期,详细总结遇到那些问题,怎样解决的,还有哪些问题需要改进。
之前第一次成功从数字0显示到数字9后,从第二次开始,数字就显示的不正确了。
查看后,是因为最后使用的小灯没有复位后又开始使同一个小灯置位,所以数字显示不正确。
没有用到一些稍微复杂点的指令,所以写出来的程序比较简单,不能有多种变化方式。
16、所用材料,损坏材料等明细
17、参考文献
18、附录
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]。
实训6:使用LED数码按秒循环显示数字0~9问题提出:使用FPGA开发板,设计分频器、计数器、数码管译码显示等电路,将FPGA的50MHz时钟分频至1Hz,驱动计数器,使其从0开始,每隔一秒加1显示,到9后复位重新开始显示。
解决思路:分开两个项目,第1个项目实现一个0~9的计数器(频率为1Hz),另一个项目负责数码管显示,分开设计和仿真,最后整合在一起。
1.使用Quartus 8.0建立第一个项目,建立过程和注意事项见前两周的实验指导,选择器件时随便指定一个。
这里的项目名称为counter10。
(切记项目保存路径和实验过程中新建的文件保存路径都不要出现中文)2.项目建好后,新建Verilog文件并输入代码选择“File”——“New”——“Verilog HDL file”。
文件名同为counter10。
请仔细分析代码!3.编译项目。
“Processing”——“Start Compilation”4.功能仿真编译通过后,新建波形仿真文件:“File”——“New”,选择“Vector Waveform File”,如下图所示:在出现的编辑界面左侧右键,选择如下:在“Insert Node or Bus”里选择“Node Finder…”在弹出来的“Node Finder”中,首先在“Filter”中选择“Pins:Unassigned”,然后点击“list”,在“Nodes Found”中会列出所有的引脚,第三步选择全部引脚(鼠标拉),点击“>>”,最后点击“OK”即可。
在回到的“Insert Node or Bus”界面点击“OK”。
这时候会看到所有的引脚会列出来,如下所示。
由实验原理可知,clk为FPGA板的时钟,rstn为复位信号,因此设置clk为10ns的周期信号,rstn默认为高电平,在10-30ns区间内为低电平。
设置方法如下:选择输入“clk”,点击右键,选择“Value”——“Clock”。
单只数码管循环显示0~9【任务】在单个数码管上循环显示数字0~9,实现类似于计时(或计数)显示的功能。
【硬件平台】在51单片机最小系统的基础上,以端口P0控制一个七段数码管。
为提高驱动能力,增加了上拉排阻RP1(10k)。
【编程思路】因为这里使用了共阴数码管,所以当P0端口相应引脚为高电平时,点亮相应的数码段。
0~9的段码按相同的时间间隔从单片机内存读到P0口,由此产生从0到9的循环显示效果。
先写下前面三板斧,内涵不赘述:#include <reg51.h>#define uchar unsigned char#define uint unsigned int因为0~9的段码是固定的,不妨将其保存为code类型的数组。
注意是共阴接法,比如要显示“0”,那么P0端口的各引脚电平为:a=b=c=d=e=f=1,g=0,闲置的P0.7=0(按字节给端口赋值,所以闲置位也赋值),表示为二进制是P0.7gfedcba=00111111,对应的十六进制为0x3F。
其余段码可类似分析:uchar code display_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x7F,0x6F,0x00 }; //0x00表示段码全灭显示不同的数字之间要有时间间隔,须定义一个延时函数以便主函数调用实现间隔延时:最后编写主函数:【代码展示】#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar codedisplay_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x 7F,0x6F,0x00};void delay(uint x){uchar i;while(x--) for(i=0;i<100;i++);}void main(){uchar i=0; //定义数组下标变量,用以遍历数组P0=0x00; //数码管初始不亮while(1){P0=display_code[i]; //0~9对应的段码送给P0口,显示9后段码熄灭(0x00)i=(i+1)%10;//从0循环到9,超过10后又回到0,%为取余数算符}}。
实验四 LED数码显示控制一、实验目的了解并掌握移位指令在控制中的应用及其编程方法,进一步熟悉掌握程序调试的方法。
二、实验步骤1、根据程序中用到的输入输出点连接输入输出信号。
2、通过专用电缆线连接手持编程器与PLC主机(或连接电脑和PLC),逐条输入程序,检查无误后,将可编程控制器主机上的STOP/RUN按扭拨到RUN位置,运行指示灯点亮,表明程序开始运行,有关的指示灯将显示运行结果。
3、根据要求拨动输入开关(按钮),观察输出指示灯显示结果并记录。
三、控制要求启动开关闭合后,八段数码管开始显示:先是一段显示,显示次序是A、B、C、D、E、F、G、H,随后显示数字及字符,显示次序是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,再返回初始显示,并循环。
每隔1秒改变一次显示状态。
四、I/O分配输入:启动开关 X0输出:八段数码管 A B C D E F G H分别对应 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7五、参考程序(见第2页)六、思考1、请先根据控制要求自行编写程序,然后再看参考程序。
2、分析参考程序,思考问题:1)启动开关断开后再次接通,显示字符会混乱,为什么?如何解决?解决方案一:启动开关断开后停在当前状态,再接通后,接着断开前的状态显示。
解决方案二:启动开关断开后数码管全灭,再接通后,从头开始显示。
(如果觉得不好解决,也可考虑再设置一个停止信号)2)要求启动后显示数字9、8、7、6、5、4、3、2、1、0并循环,如何修改程序?(也可自行设定显示字符形状、数量、顺序)3)要求每隔2秒改变一次显示状态,如何修改?附:参考程序。
单片机的LED循环显示0~9设计学院:武汉职业技术学院专业:机电一体化指导老师:黎老师姜老师姓名:张伦文班级:机电15302学号:15023047042016年 9月 8 日摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
This age is a new technology emerge in endlessly era,in the electronic field especially automationintelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced bymicrocontroller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the microcontroller.关键词:LED 单片机控制系统目录1.概述1.1 设计概述 (1)1.2 设计主要功能 (2)2. 系统设计2.1硬件组成2. 1.1 80C51单片计算机的组成原理................................................2.1.2组成框图及内部总体结构 (3)3. 软件编程控制程序……………………………………………………………()4. Proteus仿真5、课程设计体会6、参考文献1、前言学习单片机的最有效方法就是理论与实践并重,现在我把单片机的LED循环显示0~9设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
PLCLED数字显示控制
本实验是在LED数字显示控制单元中完成的
首先,实验的目的是熟练掌握移位寄存器位SHRB并能灵活使用。
SHRB指令引入移位寄存器位(SHRB)指令,将数据值移入移位寄存器。
S_BIT指定移位寄存器的最低位。
N指定移位寄存器的长度和移位方向(移位正=N,移位负=-N
首先,实验的目的是熟练掌握移位寄存器位SHRB并能灵活使用。
SHRB指令引入移位寄存器位(SHRB)指令,将数据值移入移位寄存器。
S_BIT指定移位寄存器的最低位。
N指定移位寄存器的长度和移位方向(移位正=N,移位负=:首先,显示顺序为a、b、c、d、e、f、g、h,然后显示数字和字符,显示顺序为0。
1、
2、
3、
4、
5、
6、
7、
8、
9、a、b、c、d、e、f,断开启动按钮程序停止运行。
三、实验面板示意图:
四.实验步骤
1.输入/输出线路输入SDI0.0输出ABCDEFGQ 0.0Q 0.1Q 0.2Q 0.3Q 0.4Q 0.5Q 0.6Q 0.7
2.打开主机电源,将程序下载到主机。
3.启动并运行程序,观察实验现象。
五、梯形图参考程序字模型。
实验二实验名称:LED数码显示控制一、实验目的了解并掌握LED数码显示控制中的应用及其编程方法。
二、实验原理及要求按下启动按钮后,由八组LED发光二极管模拟的八段数码管开始显示:先是一段段显示,显示次序是A、B、C、D、E、F、G、H。
随后显示数字及字符,显示次序是0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F,再返回初始显示,并循环不止。
三、程序编程及分析方法一:用SHRB指令移位寄存器位(SHRB)指令将DATA数值移入移位寄存器。
S_BIT指定移位寄存器的最低位。
N指定移位寄存器的长度和移位方向(移位加 = N,移位减 = -N)。
SHRB指令移出的每个位被放置在溢出内存位(SM1.1)中。
该指令由最低位(S_BIT)和由长度(N)指定的位数定义。
用M10.0~M10.7 M11.0~M11.7 M12.0~M12.7的24个位表示显示的24种状态的控制位。
方法二:用SEG指令用SHRB指令来写程序太长,太麻烦了。
个人推荐用SEG段码指令,程序简洁明了。
LD SM0.1MOVB 0, VB10LD I0.0AN T37TON T37, 10LD T37INCB VB10SEG VB10, QB0四、实验步骤1、设计一个照明灯的控制程序。
当按下接在I0.0上的照明灯按钮,可发光30s。
如果在这段时间内又有人按下按钮,则时间间隔从头开始。
这样可确保在最后一次按下按钮后,灯光可维持30s的照明。
2、设计程序,用SEG指令,循环显示0~F字符。
3、设计程序,用一个按钮控制两盏灯:按一次,第一盏亮,按二次,第二盏亮,按三次,两盏全亮,按四次,两盏全灭,按五次,两盏全亮,按六次,只有第二盏亮,按七次,只有第一盏亮,按八次,两盏全灭,完成一次工作循环。
五、实验结果及分析1、思考题1中当每按下一次按钮,Q0.0接通并自锁。
同时T37定时器复位,经过30S 后T37置位,其常闭触点断开,Q0.0断开,灯熄灭。