简易LED跑马灯设计
跑马灯设计 说明
基于VHDL的跑马灯设计说明1.设计思路:通过给定系统一个时钟,来控制8个LED灯的亮暗,灯亮暗的快慢可以通过改变给定的系统时钟频率。
2.功能分析:通过一个中间变量flag的状态来改变灯亮暗的方式,此次设计灯亮暗的方式总共有3种:(1)灯从左到右依次点亮,然后再从右到左依次熄灭;(2)灯从中间2个开始向两边亮,然后再从两边向中间熄灭;(3)灯按照7…4,3…0亮,其中最初7和3 亮,然后6和2亮…..以此类推,最后全部熄灭,进入下一轮循环。
3.模式选择:选择的为模式5。
4. 引脚锁定如下:灯对应实验板上从左到右为:light7,light6,……light0;Clk1对应实验板上clock05. 程序说明:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity light isport(clk1: in std_logic; --系统给的时钟light: buffer std_logic_vector(7 downto 0));end light;architecture behv of light isconstant len: integer:=7; --定义一个常量signal banner: std_logic:='0'; --中间信号signal clk,clk2: std_logic;beginclk<=(clk1 and banner) or (clk2 and not banner);process(clk1)beginif clk1'event and clk1='1' then --clk1是上升沿时,clk2取反clk2<=not clk2;end if;end process;process(clk)variable flag: bit_vector(2 downto 0):="000";--定义一个状态变量flag;beginif clk'event and clk='1' then --clk是上升沿if flag="000" then --flag为000时,从左到右点亮light<='1' & light(len downto 1); --并置成8位if light(1)='1' then --状态变量flag改变flag:="001";end if;elsif flag="001" then -- flag为001时,从右到左熄灭light<=light(len-1 downto 0) & '0';if light(6)='0' thenflag:="010";end if;elsif flag="010" then -- flag为010时,从中间向两边点亮light(len downto 4)<=light(len-1 downto 4)&'1';light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="011";end if;elsif flag="011" then -- flag为011时,从两边向中间熄灭light(len downto 4)<='0'&light(len downto 5);light(len-4 downto 0)<=light(len-5 downto 0)&'0';if light(2)='0' thenflag:="100";end if;elsif flag="100" then -- flag为100时,按7,3先亮,6,2再亮…..light(len downto 4)<='1'&light(len downto 5);light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="101";end if;elsif flag="101" then -- flag为101时,全部熄灭light<="00000000";flag:="110";elsif flag="110" then --进入下一轮循环banner<=not banner;flag:="000";end if;end if;end process;end behv;注:以上是自己通过看书和向同学请教后对程序的理解,可能有不当之处,望老师可以进行指出,十分感谢。
简易LED跑马灯设计
简易LED跑马灯设计摘要随着微电子技术的飞速发展,集成电路的集成度和性能提高、价格下降,特别是单片微处理器的出现,对现代社会的进步起到了巨大推进作用,也从各个方面改变了人们的生活,比如目前国内国外都大量使用的霓虹灯广告牌、交通显示信号灯,以及各种车辆、家用电器等普遍使用的指示信号灯,给人们的生活提供了便利。
本文针对广告牌等显示器件中起到至关重要的作用的数字控制信号LED灯显示(跑马灯)进行一个简易的模拟设计。
此实验项目中,使用8255芯片实现16位数码管显示,制作成一个简易的跑马灯,其中要运用386[pc]汇编语言编写相应代码,并且要针对8255的特点设计实验连线图,是对本科接口课程中学习到的软件以及硬件知识的一个综合运用,通过实际上机实验操作,编译设计不同的跑马灯效果。
通过最后的综合实验调试,成功实现了简易跑马灯的效果显示,这是对跑马灯实际应用的一次有益接触,也是对该应用原理的一次初步实践。
【关键词】接口跑马灯 8255芯片 LED灯汇编语言1 LED的应用领域以及LED跑马灯的研究意义▪1.1 LED的应用领域LED的应用领域非常广,包括通讯、消费性电子、汽车、照明、信号灯等,可大体区分为背光源、电子设备与照明、显示屏、汽车交通等五大领域。
◆汽车交通:以汽车內装使用包括了仪表板、音箱等指示灯,及汽车外部(第三刹车灯、左右尾灯、方向灯等),另外还包括交通标志灯。
◆背光源:主要是手机背光光源方面,是SMD型产品应用的最大市场。
◆显示屏: LED显示屏作为一种新兴的显示媒体,随着大规模集成电路和计算机技术的高速发展,得到了飞速发展,它与传统的显示媒体―多彩霓虹灯、象素管电视墙、四色磁翻板相比较,以其亮度高、动态影像显示效果好、故障低、能耗少、使用寿命长、显示内容多样、显示方式丰富、性能价格比高等优势,已广泛应用于各行各业。
◆电子设备与照明:LED以其功耗低,体积小,寿命长的特点,已成为各种电子设备指示灯的首选,目前几乎所有的电子设备都有LED的身影。
简易走马灯的制作方法
简易走马灯的制作方法走马灯,也叫做跑马灯、旋转灯。
它是一种视觉效果非常棒的灯光设备,利用马达驱动其灯带或灯泡进行快速旋转,形成一个移动的幻影,营造出精彩的视觉效果,受到广大的欢迎。
下面是关于简易走马灯的制作方法,供大家参考。
材料准备:1.电机2.电子元器件:电容器、电阻器、三极管、LED灯,细铜线3.铁皮盘4.其它:钳子、螺丝刀、电烙铁、风筝布制作步骤:1、装配电机和LED灯首先,我们需要将电机固定于一个小的平底盒中,并连接好基本的指示灯和控制面板电路。
电机安装要求比较严格,因为马达的转速和转向将决定整个走马灯的灯组如何旋转。
确保电路连接正确,灯组能够随电装旋转并发出漂亮的光芒。
2、用铁皮制作灯罩接下来,我们需要用铁皮制作一个圆锥形的灯罩,因为只有这样才能给予灯组足够的空间进行旋转。
钳子可用来把铁皮弯曲,并使其形成合适的圆锥形状。
最后,用螺丝固定好灯罩,然后用电烙铁焊接好灯罩的盖子。
为了使灯组旋转,我们需要将其与电机搭配。
把铁网切成相应的大小,然后用铁线将其固定在电机上。
接下来,将每个LED灯泡用铜线与电路板连接起来,然后吸附在胶贴上,并贴在铁网上,电路板中的电容器、电阻器和三极管,分别负责使LED灯泡发出不同的亮光。
最后,将铁网上的灯泡连好电线,插上电插头,松紧开关。
4、包裹灯罩需要把灯罩包裹在一块风筝布上,这将有助于储存灯组的所有部件。
建议直接用锡线将它们连在一起。
用锡线贴好灯罩,然后将所有的连接线摆放好,使其均匀分布,并通过铁网连接到灯组上。
将电插头插入插座,松紧开关开关,走马灯即可运行。
最后,如果需要进行任何其他的修饰,请随时按自己的心意加以操作。
在制作走马灯时,最好的方式就是与所有的细小零件的组合进行实验,并不断修改样式和大小,直达最终期望的模样为止。
需要注意的一点是,对走马灯的各个细节进行有效的整体设计,可谓是关键所在。
彩色LED组跑马灯的设计与实现
长沙理工大学《硬件综合》课程设计报告吴梦升学 院 计通学院 专 业 网络工程 班 级 网络1101班 学 号 201158080111 学生姓名 吴梦升 指导老师 陈沅涛 课程成绩 完成日期 2014年1月10日课程设计任务书计算机与通信工程学院网络工程专业课程设计成绩评定学院计通学院专业网络工程班级网络1101班学号201158080111 学生姓名吴梦升指导教师陈沅涛完成日期2014年1月10日指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见彩色LED组跑马灯的设计与实现学生姓名:吴梦升指导老师:陈沅涛摘要: 本设计是基于VHDL设计的一个彩色LED组跑马灯,学习利用CPLD控制彩色LED跑马灯,本次设计基于EDA使用VHDL语言设计和实现彩色LED组跑马灯,彩色LED组跑马灯具有多种工作模式,并对与不同工作模式,播放不同的音乐。
通过时钟信号来设定工作模式,从而运行特定的彩灯效果,采用自顶向下的模块化设计。
这次设计以VHDL语言和MAX+PLUS II为工具,实现地铁自动售票系统。
系统分模块进行分析和设计,系统给出相应的设计原理图和VHDL源程序,通过仿真实现预定功能。
关键词:彩色LED组跑马灯;EDA;VHDL;MAX +plusⅡ;Design and Implementation color LED Marquee GroupStudent Name: Wu MengSheng Supervisor: Chen YuantaoAbstract: This design is based on a set of colored LED Marquee VHDL design, learn to use CPLD to control color LED marquee, this design is based on the use of VHDLlanguage EDA design and implementation group color LED marquee, color LEDmarquee group with multiple operating modes , and with different modes, differentmusic playback. By clock signals to set the operating mode, which runs a specificlantern effect, using top-down, modular design. The design of VHDL and MAX +PLUS II as a tool to achieve Metro automatic ticketing system. System analysisand design of the module, the system gives the corresponding design schematicsand VHDL source code, to achieve the intended function through simulation.Key words: Color LED marquee group; EDA; VHDL; MAX +plus Ⅱ;目录1 引言 (3)1.1 课题背景及意义 (3)1.2 设计目的 (4)1.3 设计意义 (4)2 设计的依据 (4)2.1 EDA技术介绍 (5)2.2 VHDL语言介绍 (5)2.2.1 VHDL的简介 (5)2.2.2 VHDL语言的特点 (6)2.3 MAX+plusⅡ软件 (6)3 设计步骤 (7)3.1设计功能及分析 (7)3.2 系统总体框架结构 (8)3.3 MAX+plus II应用与程序调试 (8)4硬件电路的设计与软件设计 (11)4.1集成分频器模块 (11)4.1.1功能说明和设计 (11)4.1.2 分频器VHDL程序编写 (11)4.1.3 仿真结果 (11)4.2 32进制计数器模块 (12)4.2.1 功能说明和设计 (12)4.2.2 32进制计数器VHDL程序编写 (13)4.2.3 仿真结果 (13)4.3彩灯控制模块 (13)4.3.1 功能说明和设计 (13)4.3.2 彩灯控制模块VHDL程序编写 (14)4.3.3 仿真结果 (14)4.4 4选1选择器模块 (14)4.4.1 功能说明和设计 (14)4.4.2 4选1选择器模块VHDL程序编写 (15)4.4.3 仿真结果 (15)4.5 4进制计数器模块 (15)4.5.1 功能说明和设计 (15)4.5.2 4进制计数器模块VHDL程序编写 (16)4.5.3仿真结果 (16)5 系统结构及仿真 (16)5.1 系统模块建立 (16)5.2 波形输入建立 (18)5.3 波形仿真 (19)6 结束语 (22)参考文献 (24)附录 (25)附录一集成分频模块VHDL代码 (25)附录二32进制计数器模块VHDL代码 (26)附录三彩灯控制模块VHDL代码 (26)附录四4选1选择器模块VHDL代码 (28)附录五4进制计数器模块VHDL代码 (28)1 引言人类社会已进入到高度发达的信息化社会。
跑马灯控制电路设计
HDL数字系统课程设计报告书目录一、设计目的2二、设计思路2三、设计过程23.1、系统方案论证23.2、程序代码设计3四、系统调试与结果5五、主要元器件与设备9六、课程设计体会与建议96.1、设计体会96.2、设计建议9七、参考文献10论文摘要:共16个LED灯,连成一排,实现几种灯的组合显示。
通过这次对跑马灯控制电路的设计与制作,了解了设计电路的程序,也了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
此外,本实验也可通过EDA软件Quartus6.0和modelSim SE 6.0实现。
关键词: HDL数字系统跑马灯设计一、设计目的1、熟悉Verilog HDL程序编程。
2、掌握Altera公司ACEXTM系列EPEK30QC208-2芯片的使用方法。
3、熟悉Quartus II 6.0和Modesim SE 6.0软件的使用。
4、了解16个数码管的显示原理和方法。
二、设计思路1、编写跑马灯设计程序。
2、定义LED灯引脚分配。
3、设计状态控制。
4、下载到EPEK30QC208-2芯片上显示。
三、设计过程3.1、系统方案论证16位LED跑马灯设计框图如图1所示:图1 LED跑马灯设计框图3.2、程序代码设计module paomadeng(rst,clk,sel,led); //端口定义,参数列表input rst,clk; //rst复位,clk为4Hz的时钟信号input[1:0] sel; //sel 状态选择端口output[15:0] led; //led 跑马灯显示reg[15:0] led;reg[15:0] led_r,led_r1;reg t1,dir; //t1控制状态2 led灯的亮次数reg[3:0] t2; //t2控制状态2 led灯的亮次数reg[2:0] t3; //t3控制状态2 led灯的亮次数always(posedge clk)beginif(rst) begin t1<=0;t2<=0;t3<=0;dir<=0;endelsecase(sel)// LED按奇数,偶数依次显示2'b00:beginled_r=16'b0101010101010101;if(t1==0)led<=led_r;else led<=led_r<<1;t1<=t1+1;end// LED顺序依次显示,顺序依次熄灭2'b01:beginif(!dir)beginif(t2==0) begin led_r=16'b0000000000000001;led<=led_r;end else begin led<=(led<<1)+led_r;endif(t2==15) begin dir<=~dir;endt2<=t2+1;endelsebeginif(t2==0) begin led_r=16'b1111111111111110;led<=led_r;endelse begin led<=led<<1; endif(t2==15) begin dir<=~dir;endt2<=t2+1;endend// LED由两侧向中间依次显示,由中间向两侧依次熄灭2'b11:beginif(!dir)beginif(t3==0) beginled_r=16'b0000000000000001;led_r1=16'b1000000000000000;endelsebegin led_r=(led_r<<1)|led_r;led_r1=(led_r1>>1)|led_r1;endled<=led_r|led_r1;if(t3==7)begin dir<=~dir;endt3<=t3+1;endelsebeginif(t3==0) begin led_r=16'b1111111111111110;led_r1=16'b0111111111111111;endelsebegin led_r=led_r<<1;led_r1=led_r1>>1;endled<=led_r&led_r1;if(t3==7)begin dir<=~dir;endt3<=t3+1;endenddefault: ;endcaseendendmodule引脚分配:to,locationrst, pin_47 //复位引脚clk, pin_79//时钟控制引脚sel[0], pin_45 //状态控制引脚sel[1], pin_46//状态控制引脚led[0], pin_19//0—15个LED灯显示引脚led[1], pin_24led[2], pin_25led[3], pin_26led[4], pin_27led[5], pin_28led[6], pin_29led[7], pin_30led[8], pin_31led[9], pin_36led[10], pin_37led[11], pin_38led[12], pin_39led[13], pin_40led[14], pin_41led[15], pin_44四、系统调试与结果1、LED灯和波形结果显示结果如图2,3,4,5,6,7所示图2、先奇数灯亮,即第1、3、5、7、9、11、13、15灯亮图3、偶数灯亮,即第2、4、6、8、10、12、14、16灯亮图4、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次点亮图5、按照1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16的顺序依次熄灭所有灯图6按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次点亮图7、按照1/16、2/15、3/14、4/13、5/12、6/11、7/10、8/9的顺序依次熄灭灯波形显示:图8、LED灯按先奇数,偶数灯亮图9、LED灯依次按顺次亮,顺次熄灭图10,LED灯依次从两边向中间亮,两边向中间熄灭五、主要元器件与设备EDA技术试验箱,EDA软件QuartusⅡ6.0,ModelSim SE 6.0分频芯片:SN74HC04N—2,SN74LS393N—4片LED灯16个LED灯,电脑一台六、课程设计体会与建议6.1、设计体会通过这次对跑马灯控制电路的设计与制作,让我了解了设计电路的程序,也让我了解了关于跑马灯工作的基本原理与设计理念,首先要将一个程序分成几个模块,分别调试每一个模块,当每个模块均能正常工作时,其次再将其都组合在一起再次调试与仿真,最后将程序下载到Altera公司ACEXTM系列EPEK30QC208-2芯片,观察程序是否能控制硬件的实现。
跑马灯课程设计
(2)P1口的P1.0~P1.7引脚(1~8脚):8位通用输入/输出端口。
(3)P2口的P2.0~P2.7引脚(28~21脚):8位通用输入/输出端口和片外高8位地址总线端口。
(4)P3口的P3.0~P3.7引脚(10~17脚):8位通用输入/输出端口,具有第二功能。
(3)RST/VPD(9脚):复位信号输入端。在该引脚上输入一定时间(约两个机器周期)的高电平将使单片机复位。该引脚的第二功能是VPD,即备用电源输入端。当主电源发生故障,降低到低电平规定值时,可将+5V备用电源自动接入VPD端,以保护片内RAM中的信息不丢失,使复电后能继续正常运行。
(4) /VPP(31脚):访问程序存储器控制信号/编程电源输入。当 保持高电平时,访问内部程序存储器,访问地址范围在0~4KB内;当PC(程序计数器)值超过0FFFH,即访问地址超出4KB时,将自动转向执行外部程序存储器内的程序;当 保持低电平时,不管单片机内部是否有程序存储器,则只访问外部程序存储器(从0000H地址开始)。由此可见,对片内有可用程序存储器的单片机而言, 端应接高电平,而对片内无程序存储器的单片机,可将 接地。
在AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率通常是1.2~12MHz。若晶体振荡器频率高,则系统的时钟频率也高,单片机的运行速度也就快
学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的跑马灯设计。
走马灯简易制作方法
走马灯简易制作方法
走马灯是一种通过连续旋转的灯泡或发光diodes(LEDs)来创建动态图像或文字显示的装置。
以下是一种简单的走马灯制作方法:
材料所需:
1. 大纸张(可以是白色纸或者颜色纸)
2. 铅笔和直尺
3. 彩色铅笔或者马克笔
4. 剪刀
5. 胶水或者胶带
6. 打孔机
7. 自转批(比如乐高自转批)
步骤:
1. 在大纸张上用铅笔和直尺画出一个矩形,作为走马灯的底部。
根据需要,可以确定走马灯的大小。
2. 在底部矩形的下方,做一个矩形的“把手”,以便抓住并旋转走马灯。
这个矩形的大小可以根据需要来确定。
3. 在底部矩形的顶部,从左到右开始,在每一个小矩形中绘制一张图片或写下一句文字。
这些图片或文字将以连续运动的方式显示在走马灯上。
可以使用彩色铅笔或者马克笔来彩绘。
4. 使用剪刀剪下每一个小矩形,使其成为单独的图片或文字。
5. 将每一个小矩形黏贴到自转批上。
确保每个小矩形之间的间距相等,这样旋转时才会显示出平滑的动画效果。
可以使用胶水或者胶带将小矩形固定到自转批上。
6. 使用打孔机在走马灯的底部和顶部分别打一个孔,以便将自转批与底部矩形连接起来。
自转批将通过这两个孔旋转。
7. 将自转批插入底部矩形的把手中。
8. 确保自转批能自由旋转,并根据需要微调位置。
完成后,你可以旋转走马灯,看到图片或文字在走马灯上连续显示的效果。
你可以尝试不同的图片或文字,并在走马灯上添加更多的小矩形,以创造更多的动画效果。
EDA综合实践-跑马灯
XI ’AN UNIVERSITY OF TECHNOLOGYEDA 综合实践跑马灯设计一.设计要求:1、控制16个led进行显示2、模式1:依次点亮led;模式2:从中间向两边依次点亮led;模式3:按顺序依次点亮4led,循环显示,就是说,16个led中只有4个led亮。
3、三种模式在按键的控制下,可循环切换。
二..设计跑马灯原理其原理框图如下:由原理图上可以清楚的看到,首先选择时钟输入。
选择50M的时钟输入,再经由分频器分成1Hz的频率作为状态机的时钟输入。
题目要求用键盘控制,故用clink键盘输入,并加上复位键作为整体的复位控制。
由于led灯的状态有十六种,故而需要按键clink的频率为输入1Hz时钟信号的16倍(波形仿真中已有)。
其次是状态机控制四种状态:st0,st1,st2,st3。
经由4选一数据选择器输出接入16个led灯显示。
三、源程序module wer(clk50M,reset,clink,z);input clk50M;input reset;input clink;//键盘输入output reg[15:0] z;reg[4:0] state0,state1,state2,state3;reg[15:0] st0,st1,st2,st3;reg [2:0] mode;reg[64:0] count;wire clk1hz;parameters0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5,s6='d6,s7='d7,s8='d8,s9='d9,s10='d10,s11='d11,s12='d 12,s13='d13,s14='d14,s15='d15,s16='d16;always @(posedge clk50M)//把50M的时钟分频begin if (count==50000000 ) count<=0;else count<=count+1;endassign clk1hz=count[64];//得到1Hz的时钟信号always @(posedge clink or negedge reset)//四选一模块进行选择begin if (!reset) mode<=0;elseif (mode>3) mode<=0;elsemode<=mode+1;endalways@(*)case (mode)0:z=st0;1:z=st1;2:z=st2;3:z=st3;endcasealways @(posedge clk1hz)beginstate0=state0+1;endalways @(state0)//模式一begin case(state0)s0:st0<=16'b0000000000000000;s1:st0<=16'b1000000000000000;s2:st0<=16'b1100000000000000;s3:st0<=16'b1110000000000000;s4:st0<=16'b1111000000000000;s5:st0<=16'b1111100000000000;s6:st0<=16'b1111110000000000;s7:st0<=16'b1111111000000000;s8:st0<=16'b1111111100000000;s9:st0<=16'b1111111110000000;s10:st0<=16'b1111111111000000;s11:st0<=16'b1111111111100000;s12:st0<=16'b1111111111110000;s13:st0<=16'b1111111111111000;s14:st0<=16'b1111111111111100;s15:st0<=16'b1111111111111110;s16:st0<=16'b1111111111111111;default:st0<=16'b0000000000000000; endcaseendalways @(state1)//模式二begin case(state1)s0:st1<=16'b0000000000000000;s1:st1<=16'b0000000110000000;s2:st1<=16'b0000001111000000;s3:st1<=16'b0000011111100000;s4:st1<=16'b0000111111110000;s5:st1<=16'b0001111111111000;s6:st1<=16'b0011111111111100;s7:st1<=16'b0111111111111111;s8:st1<=16'b1111111111111111; default:st1<=16'b0000000000000000; endcaseendalways @(state2)//模式三begin case(state2)s0:st2<=16'b0000000000000000;s1:st2<=16'b1000000000000001;s2:st2<=16'b1100000000000011;s3:st2<=16'b1110000000000111;s4:st2<=16'b1111000000001111;s5:st2<=16'b1111100000011111;s6:st2<=16'b1111110000111111;s7:st2<=16'b1111111001111111;s8:st3<=16'b1111111111111111;default:st2<=16'b0000000000000000;endcaseendalways @(state3)//模式四begin case(state3)s0:st3<=16'b1000100010001000;s1:st3<=16'b0100010001000100;s2:st3<=16'b0010001000100010;s3:st3<=16'b0001000100010001;default:st3<=16'b0000000000000000;endcaseendendmodule四、编译和仿真波形图1: 跑马灯设计仿真图:五、仿真分析及结论由仿真波形图可以看出,16种状态需要按键频率为时钟频率的16分之1.复位从第一次按键下触发。
2.2 任务2.2 简易跑马灯的实现
三、电路分析
CC2530开发板上D3、D4、D5、D6与CC2530单片机的P1_0、P1_1、P1_3、 P1_4引脚相连。
四、任务实现
同一个工作区中,建立第二个Project
四、任务实现
关键代码实现
设置P1_0、P1_1、P1_3、P1_4引脚为通用I/O引脚
P1SEL &=~ 0x1B;
A
B
C
A
B
C
A
B
C
第一步 第二步 第三步
二、任务分析
2530单片机上电,设置与D4、D3、D6、D5相关的 寄存器,完成初始化,并4个LED全部熄灭。 2.延时一段时间,点亮D4,熄灭D3、D6、D5。 3.延时一段时间,点亮D3,熄灭D4、D6、D5。 4.延时一段时间,点亮D6,熄灭D4、D3、D5。 5.延时一段时间,点亮D5,熄灭D4、D3、D6。 6.返回步骤2,继续重复执行。
单片机应用技术
项目二 跑马灯的实现 任务2.2 简易跑马灯的实现
任务要求
使用CC2530开发板上的D4、D3、D6、 D5共4个LED实现跑马灯,程序运行时, 从D4开始,LED按照上面的顺序,依 次亮起,每次只亮一个LED,当点亮 最右边的D5后,再重新点亮D4,然后 循环此过程。
目录
1
概念
2
四、任务实现
编译程序,并生成.hex文件,将.hex文件烧写到CC2530单片机中,观察 CC2530开发板的运行效果。 开发板上电后,可以看到D4、D3、D6、D5依次亮起,每次只亮一个LED。D5 点亮之后,再从D4开始依次点亮,如此循环。
谢谢!
设置P1_0、P1_1、P1_3、P1_4引脚为输出方向
P1DIR |= 0x1B;
跑马灯电路设计
跑马灯电路设计单片机嵌入式系统中的跑马灯就像C语言的―Hello World!‖程序一样,虽然简单,却是一个非常经典的例子。
对初学者来说,通过跑马灯系统设计的学习与编程,能很快熟悉单片机的操作方式,了解单片机系统的开发流程,并通过第一个实例增强自己学习单片机系统设计的信心。
下面详细讲解跑马灯电路的设计。
6.1.1 跑马灯跑马灯,顾名思义,就是―会像马儿一样跑动‖的小灯,故取名―跑马灯‖。
跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由8个LED发光二极管组成,可以方便地显示一个8位数据(0~255)。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
如图6-1所示为开发板上的跑马灯,由8个贴片LED发光二极管组成,下面详细介绍LED 发光二极管的知识与电路设计方法。
6.1.2 发光二极管基础知识发光二极管的英文名为Light Emitting Diode,简称LED,发明于20世纪60年代,几十年来,发光二极管在各种电路及嵌入式系统中得到了广泛的应用,跑马灯使用的―小灯‖就是8个并排的LED。
LED发光二极管将电能转变成光能,可由Ⅲ-V族半导体材料制成。
当工作在正向偏置状态时,LED发光二极管与普通的二极管极其相似,其同样具备单向导电特性,不同之处仅在于当加上正向偏置时,LED发光二极管将向外发光,此时能量通过PN结的载流子过程从电能转换为光能。
LED发光二极管具有亮度高、耗电小、体积小、重量轻、寿命长、可靠性高、价格便宜等优点,已经被广泛地应用到不同的产品中,作为电源指示灯、系统状态灯、信号灯等用途。
在通常工作状态下,LED发光二极管的使用寿命保守估计约为10万小时,部分甚至可以达到100万小时。
走马灯制作方法
走马灯制作方法走马灯是一种常见的装饰物,常用于展示广告或者消息。
它由一个可以旋转的圆柱体和灯光组成,能够在不同的方向上发出光线,产生走马灯效果。
本文将介绍走马灯的制作方法,让你可以轻松制作一个简单的走马灯。
材料准备在制作走马灯之前,我们需要准备以下材料:1.硬纸板:用于制作走马灯的圆柱体。
2.单色纸:用于包裹圆柱体,可以选择不同颜色的纸。
3.剪刀:用于剪纸板和纸张。
4.胶水或者双面胶:用于固定纸张。
5.LED灯带:用于发光。
制作步骤步骤一:制作圆柱体1.1 在硬纸板上画出一个长方形的形状,根据你想要的走马灯的大小确定尺寸。
1.2 在长方形的两头画出圆形。
圆形的直径应与长方形的宽度相同。
1.3 使用剪刀沿着画出的形状剪下来。
这个形状将构成走马灯的圆柱体。
步骤二:装饰圆柱体2.1 在单色纸上画出一个长方形形状,尺寸应稍大于步骤一中的圆柱体。
2.2 使用剪刀剪出这个形状。
2.3 将这个单色纸长方形固定在步骤一中的圆柱体上。
可以使用胶水或双面胶将其固定。
2.4 确保单色纸覆盖整个圆柱体,边缘部分可根据需要修剪成平整的形状。
步骤三:制作灯光3.1 将LED灯带固定在圆柱体的一侧。
可以使用胶水或双面胶将其固定。
3.2 确保LED灯光均匀分布在圆柱体的一侧。
步骤四:测试和调整4.1 连接LED灯带的电源,并将走马灯放置在平坦的表面上。
4.2 打开电源,观察走马灯的效果。
4.3 如果需要调整灯光的位置或者亮度,可以移动灯带的位置或者调整电源的亮度。
步骤五:完成5.1 当走马灯达到满意的效果后,你的走马灯制作就完成了。
5.2 可以将它放在你喜欢的地方,用来展示广告或者消息。
注意事项•在制作走马灯的过程中,务必小心使用剪刀,避免剪伤自己。
•如果使用胶水固定纸张,需要确保胶水被充分干燥,以免纸张松动。
•在使用LED灯带时,务必遵守相关的安全操作规程。
结论通过以上的步骤,你可以制作一个简单的走马灯来展示广告或者消息。
制作走马灯不仅简单,而且材料也很容易获得。
项目1-流水灯(跑马灯)实现PPT课件
do {
//do while 组成循环
for (a=0; a<65535; a++)
P1_0 = 0; //65535次设P1.0口为低电平,点亮LED
P1_0 = 1; //设P1.0口为高电平,熄灭LED
for (a=0; a<30000; a++); //空循环
for (b=0; b<255; b++)
2021/3/9
授课:XXX
4
202clude <AT89X51.h> //预处理命令
void main(void) //主函数名
{unsigned int a; //定义变量a 为unsigned int 类型
unsigned char b; //定义变量b 为unsigned char 类型
void main(void) { //定义花样数据
const unsigned char
design[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7 F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC, 0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF};
项目一、流水灯(跑马灯)设计
电子信息学院 电子技术教研室
2021/3/9
授课:XXX
1
一、闪烁的LED
C1
1. ONE LED
2021/3/9
22pf
C2
22pf
R1
10k
C3
U1 X1 19 XTAL1
环形LED炫彩可跑马灯直播美颜补光灯方案
环形LED炫彩可跑马灯直播美颜补光灯方案在大时代的背景下,直播依托短视频APP,诸如抖音、快手、斗鱼等,为这个新的时代增添了不一样的色彩。
在火爆的直播录像视频下,手机美颜补光灯产品销售很是火爆,最近在线下展会,众多商户的直播补光灯功能更是层出不穷,在当前时代背景下,西城研发了一款环形LED炫彩可跑马灯直播美颜补光灯方案,当然这是款成熟的方案,同样,可以根据客户的功能做定制化方案。
直播美颜补光灯方案此参考设计适用于LCD面板背光照明解决方案,具有高集成度和可编程性,提供背光驱动、恒流驱动器驱动闪光灯及具备LED驱动器所需的圈套安全功能,让开发者创建兼容更多产品,快速修改硬件适应多种应用,功耗极低且易于生产。
一、补光灯方案产品性能1、专业MCU:采用PLPI6封装的SIC8P370D2L芯片,体积更小,性能稳定©2、多灯珠驱动:可驱动96~432颗灯珠,6~22寸灯圈,10~100W功率。
3、多功能调节:能实现色温调节、亮度调节,跑马灯转速调节等。
二、补光灯方案产品特点1、低功耗LED控制,无频闪、无眩光。
2、三色光调节,高显色指数,高流明与宽色温。
3、支持USB及适配器等供电方式,可扩充多路大电流充电输出。
4、按键可选择按压式按键、触摸式按键,支持定制2.4G无线遥控调光。
直播美颜补光灯方案三、补光灯方案产品应用场景1、直播:直播间大多不是专业的,是后期改造的,没有特别注意灯光,拍出来效果很差。
补光灯的作用就是给直播间一个柔和又足够亮度的光线,让主播和产品看起来更上镜。
2、视频:视频或自拍时使用,灯光变得柔和,从而让皮肤变得美白,而不是白哲。
冷暖色调及亮度调节,随时都是自己最美的时刻。
3、产品拍摄:“全民电商”的年代,产品的图片最为重要。
产品拍摄是比较讲究布光技巧的,补光灯的使用,让产品体现更多元,直接提升转化率。
4、化妆:在各类人像拍摄、美容美妆、纹眉美睫。
,多种应用场景中,补光灯成为越来越多从业者的选择,应用将更加广阔。
led走马灯
一、设计目的根据单片机系统开发与应用课程所学的概念、理论和方法,按照一般的单片机系统的开发过程,以Proteus7.5sp3为平台,Keil C51 V9.00 uVision4为软件开发工具,设计出一个适当难度的单片机系统;进一步掌握51单片机体系结构和单片机系统。
使学生能理论联系实际,加深和巩固所学的理论知识,提高学生的实践能力和单片机系统的综合运用能力。
二、设计内容1、以Proteus7.5sp3为平台,设计出硬件系统;2、以Keil C51 V9.00 uVision4为软件开发工具,编制程序实现如下功能:实现单片机控制P1口的8个LED灯花样走马灯,要求连续实现以下四种效果:(1)单灯左移;(2)单灯右移;(3)单灯逐个点亮接着逐个熄灭(4)两边向中间逐个点亮接着中间向两边逐个熄灭。
(灯亮和灯灭的时间均为1S。
指示灯亮和灭的时间可以通过按键设定,使用两个按键,其中一个按键每按一下,灯亮和灯灭的时、间增加1S,另一个按键每按一下,灯亮和灯灭的时间减少一秒。
);3、所有的源代码均在加上详细的注释;4、画出程序流程图;5、要有软硬件联调的操作及截图。
三、操作步骤1、绘制电路原理图(1)点击“开始”-〉“程序”按钮,运行ISIS 7 Professional,进入Proteus ISIS集成环境,Proteus ISIS 7的界面如图1所示。
图1 Proteus ISIS 7的编辑界面(2)将所需元器件加入到对象选择器窗口单击对象选择器按钮P,在弹出的“Pick Devices”页面中,使用搜索引擎在”Keywords”栏中分别输入”AT89C51“、”LED-BIBY“,在搜索结果”Results”栏中找到该对象,并将其添加至对象选择器窗口。
(3)放置元器件至原理图编辑窗口将“AT89C51”、“LED-BIBY”放置到原理图编辑窗口,如图2所示。
图2 放置元器件至图形编辑窗口(4)添加电源单击绘图工具栏中的Inter-sheet Terminal按钮,在对象选择器窗口选中对象“POWER”将其放置到原理图编辑窗口。
跑马灯实验报告
跑马灯实验报告实验目的,通过搭建一个简易的跑马灯电路,了解电路的基本原理和运作方式,加深对电子电路的理解。
实验器材,LED灯、电阻、导线、电池、开关、面包板。
实验步骤:1. 将面包板上的LED灯、电阻、开关、电池依次连接起来,注意连接的顺序和方向。
2. 确保连接无误后,打开开关,观察LED灯的亮灭情况。
3. 如果LED灯正常亮起,可以尝试将多个LED灯连接在一起,形成跑马灯效果。
4. 通过调整电阻的阻值,观察LED灯的亮度变化,体会电阻在电路中的作用。
实验结果:经过实验,我们成功搭建了一个简易的跑马灯电路。
当打开开关时,LED灯依次亮起,形成了跑马灯效果。
通过调整电阻的阻值,我们发现LED灯的亮度会有所变化,这说明电阻在电路中起到了调节电流的作用。
实验结果符合我们的预期,并且加深了我们对电子电路原理的理解。
实验分析:跑马灯电路是一种简单的序列灯光控制电路,通过合理连接LED灯和电阻,可以实现灯光的顺序亮起和熄灭。
在实验过程中,我们需要注意LED灯的正负极连接方向,以及电阻的阻值选择,这些都会影响到电路的正常运作。
同时,电池的电压也会对LED灯的亮度产生影响,需要合理选择电池的电压等级。
实验总结:通过本次实验,我们对跑马灯电路有了更深入的了解,同时也加深了对电子电路原理的理解。
在今后的学习和实践中,我们将更加注重电路的搭建和调试,不断提高自己的实验操作能力和电子电路设计水平。
希望通过不断的实践和学习,我们能够掌握更多的电子电路知识,为将来的创新和发明打下坚实的基础。
实验感想:本次实验让我更加深入地了解了电子电路的原理和运作方式,也增强了我对电子学科的兴趣。
通过动手搭建电路,我不仅学到了知识,还培养了实践能力和动手能力。
希望在今后的学习中,能够继续保持对电子学科的热爱,不断提高自己的技能和能力。
八路LED跑马灯实验(精)
八路LED跑马灯实验杨定安现在让我们开始做第一个实验:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦~~~下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最笨、最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。
ORG 0000HSTART:MOV P1,#01111111B;最下面的LED点亮LCALL DELAY;延时1秒MOV P1,#10111111B;最下面第二个的LED点亮LCALL DELAY;延时1秒MOV P1,#11011111B;最下面第三个的LED点亮(以下省略)LCALL DELAYMOV P1,#11101111BLCALL DELAYMOV P1,#11110111BLCALL DELAYMOV P1,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110BLCALL DELAYMOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMP START;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2DJNZ R2 ,L1DJNZ R4 ,L3RETEND这是上面程序汇编以后获得的编程器烧写文件:201.hex下载烧写文件的方法:将鼠标移到烧写文件的超级键连处,点击鼠标的右键,选择“目标另存为(A)...”保存文件类型中不要选择“文本文件”,应该选择“所有文件”,这样就能获得*.hex 文件了。
简易走马灯的制作方法
简易走马灯的制作方法
制作简易走马灯的方法如下:
材料:
1. 一块长条形的硬板(可以是木板、塑料板等)
2. 一条发光的LED灯带
3. 电源适配器
4. 电线
5. 钻孔工具
6. 螺丝和螺母
7. 小电钻
步骤:
1. 准备一个长条形的硬板,根据需要,可以自行调整长度。
2. 在硬板两端分别钻孔,使得电线通过。
3. 将LED灯带沿着硬板固定好,可以用螺丝和螺母固定。
4. 将灯带的一端连接到电源适配器上的正极,另一端连接到电源适配器上的负极。
5. 将适配器插入电源插座,确认灯带可以正常发光。
6. 使用小电钻将适配器的连接线固定在硬板上,以确保安全性。
7. 将制作好的走马灯固定在需要的位置,可以使用支架或挂钩等方式固定。
注意事项:
1. 在制作过程中要小心使用钻孔工具和小电钻,以免发生意外。
2. 选择合适的电源适配器,确保适配器输出的电压和电流符合LED灯带的要求。
3. 确保灯带连接正常,避免出现短路或接触不良的情况。
4. 在使用走马灯时注意避免灯带过热,特别是长时间连续使用时,及时休息散热。
5. 根据需要可以调整灯光的颜色和闪烁方式,例如可以连接控制器来实现多种效果。
EDA课程设计跑马灯设计
第一章设计内容与设计方案1.1课程设计内容控制8个LED进行花样性显示。
设计4种显示模式:s0,从左到右逐个点亮LED;s1,从右到左逐个点亮LED;s2,从两边到中间逐个点亮LED;s3,从中见到两边逐个点亮LED。
4种模式循环切换,复位键(rst)控制系统的运行停止。
数码管显示模式编号。
可预置彩灯变换速度,4档快、稍快、中速、慢速,默认工作为中速。
1.2设计方案在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,以及平时实验的具体操作内容,利用硬件描述语言HDL,EDA软件QuartusⅡ和硬件平台cycloneⅡFPGA进行一个简单的电子系统设计,本次课程设计采用Verilog HDL硬件描述语言编写控制程序,应用Quartus Ⅱ软件实现仿真测试。
采用FPGA芯片对LED灯进行控制,使其达到流水跑马灯显示的效果,LED灯采用共阳极接法,当给它一个低电平时,LED点亮,我们利用移位寄存器使各输出口循环输出高低电平,达到控制的目的。
2.1设计原理及设计流程本次试验我所完成的内容是跑马灯的设计,下面我简单的进行一下原理的阐述。
跑马灯课程设计的要求是控制8个LED进行花样显示,设计四种显示模块:第一种显示是从左向右逐个点亮LED。
第二种显示:从右向左逐个点亮LED。
第三种显示:从两边向中间逐个点亮LED。
第四种显示:从中间到两边逐个点亮LED。
四种显示模式循环切换,并带有一位复位键控制系统的运行停止。
为了完成要求的效果显示,由于要求比较简单,所以不用分为很多模块来具体控制,所以我先择利用移位寄存器来完成灯的点亮,我们将LED灯采用共阳极接法,当给于低电平时点亮,那么当我们需要点亮某位LED灯时,只需在该位上赋予低电平即可,比如:如果我们要实现8个数码灯从左到右依次点亮,那么我们就可以给这8个数码灯分别赋值10000000,经过一段时间的延时后再给其赋值01000000,再经过一段时间延时后再给其赋值00100000,依次类推,则最后一种赋值状态为00000001,这样就得到了相应的现象。
基于单片机的LED跑马灯设计
(学校)本科生毕业设计 (论文)题目:基于单片机地LED跑马灯设计教案单位姓名学号 _ _ ___年级专业指导教师职称 ___年月日摘要:近年来随着计算机在社会领域地渗透, 单片机地应用正在不断地走向深入,同时带动传统控制检测日新月益更新.在实时检测和自动控制地单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够地,还应根据具体硬件结构,以及针对具体应用对象特点地软件结合,以作完善.单片机最小系统是在以STC89C52RC单片机为基础上扩展,使其能更方便地运用于测试系统中.本设计主要在单片机上扩展I/O口,复位电路,晶振电路,LED显示电路并写好底层程序,做出能应用于跑马灯地最小系统.关键词:最小系统,STC89C52RC, 跑马灯Abstract:With the infiltration in the social field of the computer in recent years, the application of the one-chip computer is moving towards deepening constantly, drive tradition is it measure crescent benefit to upgrade day to control at the same time. In measuring in real time and automatically controlled one-chip computer application system, the one-chip computer often uses as a key part, only one-chip computer respect knowledge is not enough, should also follow the structure of the concrete hardware , and direct against and use the software of target’s characteristic to combine concretly, in order to do perfectly.The smallest system one chip computer is in expands at the base of STC89C52RC one chip computer,make it used more convient in the test system. This design mainly expands I/O in the take on chip computer, reset circuit, crystals circuit, the LED display circuitand writes the first floor procedure.Make for scrolling minimum system.Keyword:minimum system, STC89C52RC, scrolling目录1.绪论 (3)2.电路设计方案及功能分析 (4)2.1 设计目地 (4)2.2 设计要求 (4)2.3 系统基本方案选择和论证 (4)2.3.1、STC89C52RC介绍 (5)2.3.2、时间周期 (10)2.3.3、LED灯管 (11)2.3.4、数码管 (11)2.3.5、蜂鸣器 (11)2.3.6、锁存器 (11)2.4 系统框图 (12)3.系统地硬件设计与实现 (12)3.1 电源供电模块地实现 (13)3.2 复位电路 (13)3.3 晶振电路 (15)4. 系统地软件设计 (17)4.1 软件介绍 (17)4.1.1 Keil C51 (17)4.1.2 Protel99SE (18)4.1.3 Proteus (19)4.2程序流程图 (21)4.3 延时地计算 (22)5.系统调试及结果分析 (22)6.总结和体会 (23)7. 遇到问题 (23)8.参考文献 (23)9.附录 (23)9.1电路原理图: (23)9.2 元件清单 (24)9.3程序 (25)1.绪论由于单片机技术在各个领域正得到越来越广泛地应用,世界上许多集成电路生产厂家相继推出了各种类型地单片机,在单片机家族地众多成员中MCS-52系列单片机以其优越地性能、成熟地技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用地主要市场,成为国内单片机应用领域中地主流.目前,可用于MCS-52系列单片机开发地硬件越来越多,与其配套地各类开发系统、各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目地地各类应用系统.单片机最小系统是在以MCS-52单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试地技术指标,从而能够大大提高产品地质量和数量.单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用地器件,在工业生产中称为必不可少地器件,尤其是在日常生活中发挥地作用也越来越大.本毕业设计主要在STC89C52RC单片机上扩展I/O口,复位电路,晶振电路,LED显示电路,数码管显示电路,蜂鸣器电路.适合于我们学生用于单片机地学习掌握和一些各种科研立项等地需求.因此,研究单片机最小系统有很大地实用意义.2.电路设计方案及功能分析2.1 设计目地学生在教师指导下运用所学课程地知识来研究、解决一些具有一定综合性问题地专业课题.学习单片机课程以后,为了加深对理论知识地理解,加强理论知识在实际当中地运用,强化自己地动手能力,通过毕业设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计地初步能力,为毕业设计(论文)打基础.2.2 设计要求(1)采用单片机STC89C52RC做成最小系统来控制.(2)利用最小系统做出跑马灯,其LED灯地闪烁间隔时间采用延时程序控制,每种模式可采用不同地延时,灵活多变.2.3 系统基本方案选择和论证单片机最小系统,或者称为最小应用系统,是指用最少地元件组成地单片机可以工作地系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路、按键输入、显示输出等.单片机接口电路主要用来连接计算机和其它外部设备.各功能模块地选择及论证如下:复位电路:由电容和电阻构成,由电路图并结合"电容电压不能突变"地性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续地时间由电路地RC值来决定.典型地51单片机当RST脚地高电平持续两个机器周期以上就将复位,所以,适当组合RC地取值就可以保证可靠地复位.本设计中R=10K,C=10uF.晶振电路:典型地晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯地场合)同时也可取12MHz(产生精确地微秒级时歇,方便定时操作),因设计需要,本设计采用12M晶振.单片机:一片AT89S51/52或其他51系列兼容单片机,本设计采用STC89C52RC.接口电路:具有人机交互接口.具有一定地可扩展性,单片机I/O口可方便地与其他电路板连接.通过该最小系统,我们可以用keil软件进行编程从而实现对一些外设地控制!比如一些简单地实验:闪烁灯、跑马灯、数码管和蜂鸣器地展示等等!2.3.1、STC89C52RC介绍PDIP封装地STC89C52引脚图STC89C52为8 位通用微处理器,采用工业标准地C51内核,在内部功能及管脚排布上与通用地8xc52 相同,其主要用于会聚调整时地功能控制.功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件地初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR地接收解码及与主板CPU通信等.主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振.RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成地复位电路.VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源地正负端.P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1地相应功能管脚相连接,13 脚定义为I2总线控制端口,分别连接N1地SDAS(18脚)和IR输入端,10 脚和11脚定义为CSCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 地相应功能端,用于当前制式地检测及会聚调整状态进入地控制功能.P0 口P0 口是一个三态双向口,可作为地址/数据分时复用,也可作为通用I/O接口.P0口由八个相同地电路组成,每个电路分别由锁存器(起输出锁存地作用,8个构成了特殊功能寄存器P0)、场效应V1、V2组成地输出驱动器(增大带载能力)、三态门1(引脚输入缓冲器)、三态门2(用于读锁存器端口)、与门3、倒相器4及模拟开关构成地输出控制电路.P0口作为地址/数据分时复用总线时,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输入数据.当P0口作为通用I/O接口使用,端口输入输出数据时需要注意:一,在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出必须接上拉电阻;二,P0口作为通用I/O使用时是一准双向口.其特点是在输入数据时,应先口置1,此时锁存器地Q\为0,使V1、V2截止,引脚处于悬空状态才可高阻输入,所以说P0口作为通用I/O使用时,是一个准双向口.综上所述,P0口在有外部扩展存储器时被作为地址/数据总线口时,访问外部存储器期间CPU会自动向P0口地锁存器写入0FFH,故对用户而言,此时是一个真正地三态双向口.在没有外部扩展存储器时,P0口也可作为通用地I/O接口,但此时只是一个准双向口.此外,P0口具有驱动8个LSTTL负载地能力,即输出电流不小于800uA.在本设计中,LED发光二级管为外部电源驱动,所以I/O口低电平有效,此时P0口输出0LED发光二级管被点亮,所以不需要接上拉电阻.P1 口P1 是一个带内部上拉电阻地8 位标准地准双向I/O 口,它在结构上与P0地区别在于输出驱动部分由场效应管V1与内部上拉电阻组成,即有内部上拉电阻,没有反相器.从功能上来讲,即输入输出I/O接口,具有输入、输出、端口操作三种工作方式,每1位口线能独立地用作输入/输出线.当作为输出线时P1 地输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口写“1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(TTL).与AT89C51相比,STC89C52RC地不同之处是,P1.0 和P1.1 除作为通用I/O接口线外,还具有第二功能,即P1.0可作为定时器/计数器2地外部计数脉冲输入端T2,P1.1可作为定时器/计数器2地外部控制输入端T2EX.P2 口P2 是一个带有内部上拉电阻地8 位准双向I/O 口,它具有通用I/O接口或高8位地址总线输出两种功能,所以其输出驱动结构比P1口输出驱动结构多了一个输出模拟转换开关MUX和反相器3.当作为准双向通用I/O接口使用时,控制信号开关接锁存器,锁存器Q端经反相器3接V1,其工作原理与P1相同,也具有输入、输出、端口操作三种工作方式,负载能力也与P1口相同.当P2作为外部扩展存储器地高8位地址总线使用时,控制信号使转换开关接地址总线,由程序计数器PC来地高8位地址PCH,或数据指针DPTR来地高8位地址DPH经反相器和V1原样呈现在P2口地引脚上,输出高8位地址A8至A15.在上述情况下,锁存器地内容不受影响,所以,取指或访问外部存储器结束后,由于转换开关又接回锁存器,使驱动器与锁存器Q端相连,引脚上将恢复原来地数据.P3 口P3 口是一组带有内部上拉电阻地8 位双向I/O 口.它地输出驱动由与非门3、V1组成,比P0、P1、P2口结构多了一个缓冲器.它除了可作为通用准双向I/O接口外,没1根线还具有第二功能.当P3口作为通用I/O接口时,第二功能输出线为高电平,使与非门3地输出取决于锁存器地状态.在这种情况下,P3仍是一个准双向口,它地工作方式、负载能力均与P1、P2口相同.当P3口作为第二功能使用时,其锁存器Q端必须为高电平,否则V1管导通,引脚被箝位在低电平,无法输入或输出第二功能信号.当Q端为高电平时,P3口地状态就取决于第二功能输出线地状态.同样,P3口地每一位可独立地定义为第一功能输入输出或第二功能输入输出.另外,在P3口地引脚信号输入通道中有2个缓冲器,第二功能输入信号取自缓冲器4(后加缓冲器)地输出端,通用输入信号仍取自缓冲器1(原有缓冲器)地输出端.RST/VPD(9脚)复位输入.当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位.RST即RESET,VPD为备用电源,所以该引脚为单片机地上电复位或掉电保护端.当单片机振荡器工作时,该引脚出现持续两个机器周期地高电平,就可实现复位操作,使单片机恢复到初始状态.当VCC发生故障、降低低电平规定值或掉电时,该引脚可接上备用电源VDP(+5+/-0.5V)为内部RAM供电,以保证RAM中数据不丢失.当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)以每周期两次地信号输出,用于锁存出现在P0口地低8为地址.在不访问外部存储器时,ALE仍以上述不变地频率(振荡周期地1/6),周期行地出现正脉冲信号,可作为对外输出地时钟脉冲或用于定时目地.但要注意,在访问片外数据存储器期间,ALE脉冲会跳过一个,此时作为时钟输出就不妥当了.对于片内含有EPROM地单片机,在EPROM编程期间,该引脚为编程脉冲.外部访问允许,即为访问外部程序存储器控制信号,低电平有效.时,单片机访问片内程序存储器地程序8KB(MCS—52子系列为8KB,MCS—51子系列为4KB).若超出该范围时自动转去执行外部存储器地程序.欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH)端必须保持低电平(接地).对于片内含有EPROM(Erasable Programmable Read-only Memory ,可编程可擦写只读存储器)地单片机,在EPROM编程期间,该引脚用于接21V地编程电源VPP.XTAL1(19脚)振荡器反相放大器及内部时钟发生器地输入端.接外部石英晶体地一端.在单片机内部,它是一个反相放大器地输入端,这个放大器构成了片内振荡器.当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号输入.注:CHMOS是CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)和HMOS(高密度沟道MOS工艺)地结合,除了保持HMOS高速度和高密度之外,还有CMOS低功耗地特点.两类器件地功能是完全兼容地,区别在CHMOS器件具有低功耗地特点.(HMOS:高性能金属氧化物半导体)XTAL2(18脚)振荡器反相放大器地输出端.接外部晶体地另一端.在单片机内部,接至片内振荡器地反相放大器地输出端.当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号地输入端;对于CHMOS芯片,该引脚悬空不接.2.3.2、时间周期STC89C52地时间周期分为如下几个周期:振荡周期、状态周期、机器周期、指令周期1.振荡周期:(1)单片机提供定时信号源地振荡源地周期.(2)是计算机中最基本地时间单位.2.状态周期(时钟周期):(1)1个状态周期=2个振荡周期.(2)分为P1节拍和P2节拍.P1节拍通常完成技术操作;P2节拍完成内部寄存器间地传送.3.机器周期(1)1个机器周期=12个振荡周期.(2)为CPU访问存储器一次所需要地时间.(3)执行一条指令所需要地时间以机器周期为单位.4.指令周期(1)执行一条指令所占用地时间.(2)通常由1-4个机器周期组成.在指令系统中,按它们地长度可分为单字节指令、双字节指令和三字节指令.执行这些指令需要地时间是不同地,也就是它们所需地机器周期是不同地,有下面几种形式:单字节指令单机器周期单字节指令双机器周期双字节指令单机器周期双字节指令双机器周期三字节指令双机器周期单字节指令四机器周期(如单字节地乘除法指令) 本次设计中MCU单片机外接晶振为12MHz时具体值为:振荡周期(时钟周期)=1/12MHz=1/12μs=0.0833μs 机器周期=12*1/12μs=1μs 指令周期=1~4μs 说明:1.时钟周期即晶振地单位时间发出地脉冲数,12MHz=12×10地6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲地时间就是时钟周期,即1/12微秒.2.一个机器周期等于12个振荡周期,所以是1微秒.2.3.3、LED灯管LED具有功耗少、寿命长、光谱宽(眼睛看得舒适度好)、使用广泛,能灵活拼装各种需要地形状等优点.一般来说LED地工作电压是2V-3.6V.工作电流是0.02-0.03A.这就是说:它消耗地电能不超过0.1W.在恰当地电流和电压下,LED地使用寿命可达10万小时.此外,LED基本上是一块很小地晶片被封装在环氧树脂里面,所以它非常地小,非常地轻,硬件电路实现起来比较方便.因此本设计采用15个发光二级管,组合成三角形,从而控制其灵活变化,设计出展示地方案.2.3.4、数码管数码管是一种半导体发光器件,其基本单元是发光二极管.本设计之所以选择数码管是因为在设计方案里面计划LED跑马灯共有九种变化模式,而数码管在各种模式变化过程当中负责显示1-9九个数字,从而示意模式地转换,使展示更加明了,效果明显且有条理.2.3.5、蜂鸣器蜂鸣器是一种一体化结构地电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件.由于使用15个LED,P0.7闲置,再根据蜂鸣器地各种用途受到启发,在本设计中加一个蜂鸣器,当LED九种模式展示完毕之后,蜂鸣器发出声响,以示九种模式展示完毕,然后继续回到一模式进行展示,直到关掉电源为止.2.3.6、锁存器由于本设计中需要数码管维持某个数据,那么往往要持续快速地刷新,为了减少对处理器处理能力地消耗,利用锁存器对所传输地数据进行锁存,直到下一个新地数据需要被锁存为止.这样一来,锁存器保持数据状态期间处理器地处理时间和I/O引脚便可以释放.此外,锁存器地缓存作用使快速工作地CPU与缓慢工作地锁存器相协调,从而使数码管中各段管子亮起时间差减小.因而本设计加用了锁存器,使系统工作方便,显示效果得到完善.2.4 系统框图3.系统地硬件设计与实现单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成.最小系统原理图如图3.1所示.图3.1 原理图3.1 电源供电模块地实现对于一个完整地电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块地稳定可靠是系统平稳运行地前提和基础.51系列单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型地问题就是相比其他系列地单片机,51系列单片机更容易受到干扰而出现程序跑飞地现象,克服这种现象出现地一个重要手段就是为单片机系统配置一个稳定可靠地电源供电模块.此最小系统中地电源供电模块地电源可以通过计算机地USB口供给3.2 复位电路单片机地复位,是为了把电路初始化到一个确定地状态,一般来说,单片机复位电路作用是把一些寄存器以及存储设备装入厂商预设地一个值.单片机复位电路原理是在单片机地复位引脚RST上外接电阻和电容,实现上电复位.当复位电平持续两个机器周期以上时复位有效.复位电平地持续时间必须大于单片机地两个机器周期.具体数值可以由RC电路计算出时间常数.复位电路有按键复位和上电复位两种.上电复位:STC89C52RC系列单片机为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间地高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容地典型值为10K和10uF.如图3.3.1所示.图3.3.1上电复位电路图按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容地充电,会保持一段时间地高电平来使单片机复位.如图3.3.2所示.图3.3.2按键复位电路图由于按键复位可控性稍强,比较适合样品制作或者实验室调试场合,本设计采用按键复位.如图3.3.3所示.图3.3.3 复位电路图3.3 晶振电路图3.4 晶振电路图单片机系统里都有晶振,在单片机系统里晶振作用非常大,全称叫晶体振荡器,它结合单片机内部电路产生单片机所需地时钟频率,单片机晶振提供地时钟频率越高,那么单片机运行速度就越快,单片机地一切指令地执行都是建立在单片机晶振提供地时钟频率.在通常工作条件下,普通地晶振频率绝对精度可达百万分之五十.高级地精度更高.有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO).晶振用一种能把电能和机械能相互转化地晶体在共振地状态下工作,以提供稳定,精确地单频振荡.单片机晶振地作用是为系统提供基本地时钟信号.通常一个系统共用一个晶振,便于各部分保持同步.有些通讯系统地基频和射频使用不同地晶振,而通过电子调整频率地方法保持同步.晶振通常与锁相环电路配合使用,以提供系统所需地时钟频率.如果不同子系统需要不同频率地时钟信号,可以用与同一个晶振相连地不同锁相环来提供.STC89C52RC使用12MHz地晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,外接电容地作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率地作用,一般选用20~30pF地瓷片电容.3.4 LED电路地实现(1) LED结构(2) LED原理LED(Light Emitting Diode),发光二极管,是一种固态地半导体器件,它可以直接把电转化为光.LED地心脏是一个半导体地晶片.晶片地一端附在一个支架上,一端是负极负极,另一端连接电源地正极,使整个晶片被环氧树脂封装起来.半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子.但这两种半导体连接起来地时候,它们之间就形成一个P-N结.当电流通过导线作用于这个晶片地时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子地形式发出能量,这就是LED发光地原理.而光地波长也就是光地颜色,是由形成P-N结地材料决定地.根据不同材料发光二极管地发光颜色有:红色光、黄色光、绿色光、红外光等.LED有共阴极和共阳极两种.在此设计中我们采用共阳极,共阳极将发光二极管地阳极连接在一起,接入+5V地电压.普通发光二级管地工作电流是5-20毫安,本设计中采用地是3mm发光二级管,所以采用470Ω电阻限流,使其正常工作,工作电流约为10毫安(一般有色发光二极管工作电流约为10毫安,透明发光二极管工作电流为20毫安).图3.5 LED电路图图3.5中主要元件有2.2kΩ地电阻、LED.电阻为每个LED地限流电阻.此最小系统提供了32个独立LED,由IO口控制,采用共阳级接法所以只有当IO口输出低电平时LED 才会点亮.4.系统地软件设计4.1 软件介绍4.1.1 Keil C51Keil C51是美国Keil Software公司出品地51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显地优势,因而易学易用.用过汇编语言后再使用C来开发,体会更加深刻. Keil C51软件提供丰富地库函数和功能强大地集成开发调试工具,全Windows界面.另外重要地一点,只要看一下编译后生成地汇编代码,就能体会到Keil C51生成地目标代码效率非常之高,多数语句生成地汇编代码很紧凑,容易理解.在开发大型软件时更能体现高级语言地优势.下面详细介绍Keil C51开发系统各部分功能和使用. Keil_c软件界面如图4-1所示图4-1 Keil_c软件界面4.1.2 Protel99SEProtel99SE是PORTEL公司在80年代末推出地EDA软件.Protel99SE是应用于Windows9X/2000/NT操作系统下地EDA设计软件,采用设计库管理模式,可以网设计,具有很强地数据交换能力和开放性及3D模拟功能,是一个32位地设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层.Protel99SE软件地特点:(1) 可生成30多种格式地电气连接网络表;(2) 强大地全局编辑功能;(3) 在原理图中选择一级器件,PCB中同样地器件也将被选中;(4) 同时运行原理图和PCB,在打开地原理图和PCB图间允许双向交叉查找元器件、引脚、网络(5) 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上地一致性;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易LED跑马灯设计摘要随着微电子技术的飞速发展,集成电路的集成度和性能提高、价格下降,特别是单片微处理器的出现,对现代社会的进步起到了巨大推进作用,也从各个方面改变了人们的生活,比如目前国内国外都大量使用的霓虹灯广告牌、交通显示信号灯,以及各种车辆、家用电器等普遍使用的指示信号灯,给人们的生活提供了便利。
本文针对广告牌等显示器件中起到至关重要的作用的数字控制信号LED灯显示(跑马灯)进行一个简易的模拟设计。
此实验项目中,使用8255芯片实现16位数码管显示,制作成一个简易的跑马灯,其中要运用386[pc]汇编语言编写相应代码,并且要针对8255的特点设计实验连线图,是对本科接口课程中学习到的软件以及硬件知识的一个综合运用,通过实际上机实验操作,编译设计不同的跑马灯效果。
通过最后的综合实验调试,成功实现了简易跑马灯的效果显示,这是对跑马灯实际应用的一次有益接触,也是对该应用原理的一次初步实践。
【关键词】接口跑马灯 8255芯片 LED灯汇编语言1 LED的应用领域以及LED跑马灯的研究意义▪1.1 LED的应用领域LED的应用领域非常广,包括通讯、消费性电子、汽车、照明、信号灯等,可大体区分为背光源、电子设备与照明、显示屏、汽车交通等五大领域。
◆汽车交通:以汽车內装使用包括了仪表板、音箱等指示灯,及汽车外部(第三刹车灯、左右尾灯、方向灯等),另外还包括交通标志灯。
◆背光源:主要是手机背光光源方面,是SMD型产品应用的最大市场。
◆显示屏: LED显示屏作为一种新兴的显示媒体,随着大规模集成电路和计算机技术的高速发展,得到了飞速发展,它与传统的显示媒体―多彩霓虹灯、象素管电视墙、四色磁翻板相比较,以其亮度高、动态影像显示效果好、故障低、能耗少、使用寿命长、显示内容多样、显示方式丰富、性能价格比高等优势,已广泛应用于各行各业。
◆电子设备与照明:LED以其功耗低,体积小,寿命长的特点,已成为各种电子设备指示灯的首选,目前几乎所有的电子设备都有LED的身影。
▪1.2 LED跑马灯的研究意义本文主要是对LED显示屏应用的一个初步研究,跑马灯是对LED显示屏功能的基础模拟,通过对跑马灯形式的LED显示进行实验模拟,可以对LED的大型应用奠定基础,是将来完成完整LED效果显示设计的初级实践。
LED跑马灯设计正好和本科接口基础设计课程相衔接,运用到了课程中学习到的相关接口知识,是对该课程知识的一个综合运用,有助于加强基础知识的掌握,提升个人实践能力。
2 相关实验芯片及原理的介绍本实验需要器材:8255芯片一块,PC机一台,TD-PIT/TD-PIT-B实验箱一台。
▪2.1 LED灯管的发光以及驱动原理图2.1 发光二极管结构图LED灯管LED(Light Emitting Diode,图2.1),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。
半导体晶片由三部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子,中间通常是1至5个周期的量子阱。
当电流通过导线作用于这个晶片的时候,电子和空穴就会被推向量子阱,在量子阱内电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。
而光的波长也就是光的颜色,是由形成P-N结的材料决定的。
在接口试验中通常会用到单色LED灯作信号显示,给LED灯输入数字信号,LED灯会根据信号的不同而显示亮或者灭。
(a)(b)图2.2 LED的两种驱动方式LED灯管有两种不同的驱动方式:(1)阳极接+5V电源,阴极接适当大小的电阻(要求用5V点亮某LED时,则LED必须串接一个电阻,防止过流烧坏),然后接入数字信号,如图2.2(a)输入数字信号0时LED灯亮,输入1时LED灯灭;(2)阴极接地,接适当大小的电阻,然后阳极接入数字信号,如图2.2(b)输入数字信号1时LED灯亮,输入0时LED灯灭[1]。
我们试验用的试验箱中封装的LED电路默认为驱动方式(1),即0输入灯亮。
▪2.2 8255芯片的主要功能特性介绍INTEL8255是一种通用的可编程并行I/O接口芯片(图2.3),是专为INTEL公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A口和B口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。
该芯片提供三种工作方式,满足本实验对芯片的功能要求[2]。
图2.3 8255内部引脚及结构8255芯片的一些详细特性:(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。
它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C 口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。
8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。
RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。
当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1,A1=1时,控制寄存器被选择。
(a)工作方式控制字 (b)C口按位置位/复位控制字图2.4 工作方式控制字图示8255接口实验中端口地址如下表2.1所示:表2.1 8255接口实验中端口地址表3 具体的实验操作步骤▪3.1 初步确定跑马灯显示方案,针对相应显示方案,使用汇编语言编写跑马灯程序跑马灯显示效果是:一排16位数据管,第一次亮起的是第一位和最后一位,第二次亮起的是第二位和倒数第二位,以此规律类推,总体效果就是一排数据灯从两端向中间滚动显示。
代码如下:MY8255_A EQU 0e060HMY8255_B EQU 0e061HMY8255_C EQU 0e062HMY8255_MODE EQU 0e063H ;此处为端口地址设置,A、B、C口编址分别为60H、61H、62H,控制寄存器编址为63HDATA SEGMENTLA DB ?LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA ;8255芯片有A、B、C三口,其中A、B两口分别接8个数据管,对应就分为A、B两组数据管,两组数据管分开独立显示,但是表示出来的效果依然连续START: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODEMOV AL,80H ;设8255方式字10000000,AB均为工作方式0,A口位输出,B口位输出OUT DX,ALMOV DX,MY8255_AMOV AL,FFHOUT DX,AL ;把初态设置为全关,即A组所有灯初态为熄灭MOV AL,7FH ;7FH换成二进制就是0111 1111B,也就是表示A口初始状态是最左边一个灯亮,A组其他7个灯处于熄灭状态OUT DX,ALMOV LA,AL ;给A口赋值后保存在LA中MOV DX,MY8255_BMOV AL,FFHOUT DX,AL ;把初态设置为全关,即B组所有灯初态为熄灭MOV AL,0FEH ;0FEH换算为二进制即为1111 1110B,这与A口初始状态刚好相反,即B组数据灯初始状态是最右边的一个灯亮,其他7个灯保持熄灭状态OUT DX,ALMOV LB,AL ;给B口赋值后保存在LB中CALL DALLYA1: MOV AL,LAROR AL,1 ;对原来保存的A口初始值进行向右移位操作MOV LA,AL ;移位操作后保存MOV DX,MY8255_AOUT DX,AL ;输出显示,A组数码管右移一位灯亮MOV AL,LBROL AL,1 ;对原来保存的B口初始值进行向左移位操作MOV LB,AL ;移位后进行保存MOV DX,MY8255_BOUT DX,AL ;输出显示,B组数码管左移一位灯亮CALL DALLY ;延时控制CALL BREAKJMP A1DALLY: MOV CX,3FFH ;延时控制语句D1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1RET ;延时控制是通过PC机做3FFH*0FFFFH次自减操作,这个操作的持续时间就是数据管维持上一个状态的时间长度,如果这个时间太短,则肉眼无法判断数据管的亮灭,时间太长则没有跑马灯的滚动效果BREAK PROC NEAR ;调用PC监控程序,软中断,按任意键退出程序MOV AH,06HMOV DL,0FFHINT 21HJE RETURNMOV AX,4C00HINT 21HRETURN:RETBREAK ENDPCODE ENDSEND START[3]编辑完成后保存为文件8255.ASM。
▪3.2 在PC端运用相关编译软件生成可执行程序在这个环节,使用编译软件TDDEBUG.EXE,通过界面提示导入编写好的程序文件8255.ASM,生成8255.OBJ,最终生成可执行程序文件8255.EXE[4]。