八路发光二极管轮流点亮的实验

合集下载

八路彩灯

八路彩灯

河南工业大学EDA技术实验报告专业电科班级1301姓名田学号201316030实验地点6316+ 6515 实验日期2015-11-27成绩评定一、实验项目八路彩灯控制器二、实验目的有八个发光二极管,要求设计花型,使其按照设定的花型随时钟循环点亮。

在Quartus II 中用VHDL语言输入控制器的源程序,然后进行编译,仿真,以保证控制器功能的正确性。

引脚锁定及硬件测试三、实验原理LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY caideng ISPORT (clk: IN STD_LOGIC;A,B,C,D,E,F,G,H: OUT STD_LOGIC );END caideng;ARCHITECTURE cd OF caideng ISTYPE states IS (S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11);SIGNAL present_state, next_state: states;BEGINP1: PROCESS(present_state,clk)BEGINIF clk'EVENT AND CLK='1'THENCASE present_state ISWHEN S0=>A<='1';B<='1';C<='1';D<='1';E<='1';F<='1';G<='1';H<='1';next_state<=S1;WHEN S1=>A<='1';B<='1';C<='1';D<='0';E<='0';F<='1';G<='1';H<='1';next_state<=S2;WHEN S2=>A<='1';B<='1';C<='0';D<='0';E<='0';F<='0';G<='1';H<='1';next_state<=S3;WHEN S3=>A<='1';B<='0';C<='0';D<='0';E<='0';F<='0';G<='0';H<='1';next_state<=S4;WHEN S4=>A<='0';B<='0';C<='0';D<='0';E<='0';F<='0';G<='0';H<='0';next_state<=S5;WHEN S5=>A<='1';B<='0';C<='1';D<='0';E<='1';F<='0';G<='1';H<='0';next_state<=S6;WHEN S6=>A<='1';B<='0';C<='1';D<='0';E<='1';F<='0';G<='1';H<='0';next_state<=S7;WHEN S7=>A<='0';B<='1';C<='0';D<='1';E<='0';F<='1';G<='0';H<='1';next_state<=S8;WHEN S8=>A<='0';B<='1';C<='0';D<='1';E<='0';F<='1';G<='0';H<='1';next_state<=S9;WHEN S9=>A<='0';B<='0';C<='0';D<='0';E<='0';F<='0';G<='0';H<='0';next_state<=S10;WHEN S10=>A<='0';B<='0';C<='0';D<='1';E<='1';F<='0';G<='0';H<='0';next_state<=S11;WHEN S11=>A<='0';B<='0';C<='1';D<='1';E<='1';F<='1';G<='0';H<='0';next_state<=S0;END CASE;END IF;END PROCESS P1;P2:PROCESS (clk)BEGINIF clk'EVENT AND clk='1' THENpresent_state<=next_state;END IF;END PROCESS P2;END cd;我设计的八路彩灯控制电路共有三种花型,用状态机结构设计循环彩灯控制器实现三种花型的交替变化,花型一:八个灯全亮,然后从中间向两边依次成对熄灭,直至全灭,花型二:八个灯明暗相隔,每个状态持续两个时钟周期。

八路流水灯循环点亮

八路流水灯循环点亮

黄山学院专业姓名班级学号指导老师八路循环彩灯控制电路一、 设计要求(1)设计一组8路循环彩灯控制电路,发光二极管的亮度要明显可见。

(2)、点亮要有一定的规律,即按顺序点亮。

(3)、元件、芯片的摆放要合理。

(4)、布线要紧密、尽量短(5)用protuse 仿真,1 题目分析:八路彩灯循环点亮电路功能描述:八只彩灯按顺序轮流点亮,首先点亮第一盏灯,在第一盏灯熄灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再去点亮第三盏灯,依次类推,直到点亮第八盏灯,看上去的效果就像亮点从第一盏灯依次流向第八盏灯,然后又点亮第一盏灯,反复循环这一过程。

2 整体构思:彩灯的控制是用数字集成电路的构成来实现的,用彩灯(LED 发光二极管)构成一个发光矩阵。

主要用计数器和译码器等来实现,其特点是用发光二极管显示,构成具有循环功能的彩灯控制电路。

将振荡器的振荡脉冲进行计数,计数器的输出作为译码器的地址输入,经译码器控制各路彩灯依次发亮。

用框图表示如下。

3 具体实现: (1)、根据题目要求,找到可能完成此功能的芯片。

一共有八只灯所以要用74LS138 3线-8线译码器74LS161十进制上升沿计数器。

(2)、确定芯片后,完成电路图。

(3)、根据题目要求,要实现八只灯按顺序点亮电路就要用到74LS138 3线-8线译码器和74LS161具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器。

以及发光二极管、电阻、导线、电平开关和万用版。

(4)、按照电路图连接线路,检查是否连接正确 。

(5)、检查功能实现,如果不能进行调试、修改。

二、单元电路设计参考1、振荡器设计:用集成555电路构成多谐振荡器。

电路如下图所示。

振荡器计数器 译码器 8路彩灯 → → →U 0的周期: 2、计数器的选用:选四位二进制同步加/减计数器74LS161。

其引脚功能图如下所示。

其真值表如下:)C 2R 0.7(R T 21+=三、设计原理电路四、材料清单:五、protuse仿真部分截图图:六、心得体会:实验之前必须认真阅读有关方面的知识,在心中要有一个大概的模型或过程。

实验、中断控制的8个LED灯轮流点亮电路

实验、中断控制的8个LED灯轮流点亮电路

实验八、中断控制的8个LED灯轮流点亮电路专业: 班级:姓名: 学号:成绩:一、实验目的1.掌握中断程序的分析方法和设计方法。

2.学习电平触发方式及负脉冲触发方式的电路设计方法。

3.学习读程序,并能写出中断初始化程序段。

二、实验器材单片机开发设备一套。

三、实验内容和步骤试设计一个用单片机中断控制的8个LED灯轮流点亮的仿真控制系统,当按下一个按键之后,LED1灯亮,再按下一个按键后,彩灯顺次点亮一个。

要求按照电平触发和负脉冲触发两种方式来设计电路并进行程序设计。

电平触发方式下的仿真图:附加题:请设计一个电路,能实现开关控制的数码管显示0-9数字。

电平触发方式下的程序:ORG 0000HAJMP MAINORG 0013HAJMP SERVERORG 0030HMAIN:MOV A,#01HCLR IT1SETB EX1SETB EA SJMP $ORG 0200H SERVER:CLR P3.0 NOPNOPSETB P3.0MOV P1,ARL ARETIEND负脉冲触发方式下接于P3.3端口的仿真图:负脉冲触发方式下的程序:ORG 0000HAJMP MAINORG 0013HAJMP SERVERORG 0030HMAIN:MOV A,#11111110B MOV P1,A SETB IT1SETB EX1SETB EASJMP $ORG 0200HSERVER:CLR P3.3NOPNOPSETB P3.3MOV P1,ARL ARETIEND。

8路彩灯循环控制

8路彩灯循环控制

黄冈师范学院物理科学与技术学院EDA课程设计课题:8路彩灯循环控制专业年级:电信0702学号:200722240218姓名:余涛指导老师:冯杰时间:2010年1月8日一、设计目的:1、熟练掌握VHDL的设计过程。

2、掌握软件和硬件结合实现功能。

3、了解FPGA/CPLD类芯片的功能及作用。

4、了解和掌握彩灯设计的思想从而为今后的电路设计奠基基础。

二、设计思想:采用的设计方法是一种高层次的“自顶而下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。

通过对VHDL语言设计普通电路来实现彩灯的控制的电路,从而能够用MAX+PLU SⅡ平台上进行仿真实现功能。

三、功能描述:此八路彩灯有3种变化,这3种变化可以进行手动切换,三种变化分别为:1、彩灯自左向右依次点亮。

2、彩灯自左向右逐个点亮。

3、彩灯两边两个先亮,然后同时向中间逐个点亮,随后中间同时向两边熄灭。

四、设计原理:本实验主要是为了实现了彩灯循环点亮的不同控制,它主要由彩灯循环控制方式和彩灯循环点亮变化方式选择两大部分组成。

1、彩灯循环控制方式的设计,在这里主要是通过实验箱指示灯显示。

在电路中以1代表灯亮,以0代表灯灭,由0、1按不同的规律组合代表不同的点亮方式,同时使其选择不同的频率,从而实现多种变化多种频率的花样功能显示。

2、彩灯循环点亮变化方式选择,在这里设计了彩灯三种不同的循环变化方式。

我们用状态机来控制不同的点亮方式,从而达到不同的点亮方式随时切换变化。

五、程序设计:(1)实现功能1:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng1 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END caideng1;ARCHITECTURE a OF caideng1 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THEN NUM<=NUM+1;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="10000000"; WHEN 1 =>Q<="01000000";WHEN 2 =>Q<="00100000"; WHEN 3 =>Q<="00010000";WHEN 4 =>Q<="00001000"; WHEN 5 =>Q<="00000100";WHEN 6 =>Q<="00000010"; WHEN 7 =>Q<="00000001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(2)实现功能2:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng2 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END caideng2;ARCHITECTURE a OF caideng2 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THENIF NUM<=7 THEN NUM<=NUM+1;ELSE NUM<=0;END IF;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="10000000";WHEN 1 =>Q<="11000000";WHEN 2 =>Q<="11100000";WHEN 3 =>Q<="11110000";WHEN 4 =>Q<="11111000";WHEN 5 =>Q<="11111100";WHEN 6 =>Q<="11111110";WHEN 7 =>Q<="11111111";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(3)实现功能3:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng3 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END caideng3;ARCHITECTURE a OF caideng3 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0; BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THENIF NUM<=7 THEN NUM<=NUM+1;ELSE NUM<=0;END IF;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="00000000";WHEN 1 =>Q<="10000001";WHEN 2 =>Q<="11000011";WHEN 3 =>Q<="11100111";WHEN 4 =>Q<="11111111";WHEN 5 =>Q<="11100111";WHEN 6 =>Q<="11000011";WHEN 7 =>Q<="10000001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(4)状态机:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng_ztj ISPORT(CLK,RST: IN STD_LOGIC;Q1,Q2,Q3: IN STD_LOGIC_VECTOR(7 DOWNTO 0);T:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END caideng_ztj;ARCHITECTURE behav OF caideng_ztj ISTYPE states IS (s0,s1,s2);SIGNAL YT : states ;BEGINP1: PROCESS(CLK,RST)BEGINIF RST ='1' THENYT <= S0;ELSIF CLK'EVENT AND CLK = '1' THENCASE YT ISWHEN s0 => YT <= s1;WHEN s1 => YT <= s2;WHEN s2 => YT <= s0;WHEN OTHERS => YT <= s0;END CASE ;END IF;END PROCESS ;P2: PROCESS(YT)BEGINCASE YT ISWHEN s0 => T(7 DOWNTO 0)<= Q1 (7 DOWNTO 0);WHEN s1 => T(7 DOWNTO 0)<= Q2 (7 DOWNTO 0);WHEN s2 => T(7 DOWNTO 0)<= Q3 (7 DOWNTO 0);WHEN OTHERS => T(7 DOWNTO 0)<=Q1 (7 DOWNTO 0); END CASE ;END PROCESS P2 ;END behav;仿真波形:(5)实现上述3项功能的总原理图:仿真波形:六、实验箱调试:1、引脚锁定:我选用实验电路结构图NO.7为这次彩灯硬件调试的操作界面。

八路彩灯控制器实验

八路彩灯控制器实验
首先点亮第一盏灯在第一盏灯熄灭之后点亮第二盏灯在第二盏灯熄灭之后再去点亮第三盏灯依此类推直到点亮第八盏灯看上去的效果就像亮点从第一盏灯依次流向第八盏灯然后全部熄灭反复循环这一过程
八路彩灯控制器
功能描述:首先点亮第一盏灯,在第一盏灯熄 灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再 去点亮第三盏灯,依此类推,直到点亮第八盏灯, 看上去的效果就像亮点从第一盏灯依次流向第八盏 灯,然后全部熄灭,反复循环这一过程。 用中规模计数器设计该八路彩灯控制电路,要求: (1)每盏灯的点亮时间为100~120ms之间; (2)用555定时器设计时钟脉冲; (3)八路彩灯采用八个发光二极管代替。
A0 A1 A2 S1 S2 S3
P'0 P'1 P'2 P'3 P'4 P'5 P'6 P'7
P'0 P'1 P'2
74HC138
P'3
P'4 P'5
1
P'6
P'7
VCC(+5V) 1 R1 10kΩ
8 4 7 3
CLK
R2 10kΩ
C 22µ F
+
6 2 1 5
0.01µF
0
EP ET CLK D 0 Q0 D 1 Q1 D2 Q2 D3 Q3 C RD LD
74HC161 1
1
T≈ (R1+2R2)C×0.7, T≈462ms,
取R1=R2=10kΩ, C=22µ F
74HC138
1 0 1 0 1 0 1 0
A0 A1 A2 S1 S2 S3
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7

单片机实验之二极管循环点亮

单片机实验之二极管循环点亮

实验一P1口亮灯实验一、实验目的(1)学习P1口的使用方法;(2)学习延时子程序的编写。

二、实验内容P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

三、实验预备知识(1)P1口为准双向口,可定义为输入,也可定义为输出。

(2)本实验中延时子程序采用指令循环来实现,机器周期(12/6MHZ)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。

四、程序框图五、实验步骤1、实验连线P1.0~P1.7用插针连至L1~L82、PC环境在与PC联机状态下,打开桌面图标“MCS-51集成开发环境”,下载PH51\he01.asm,编译、连接、装载,用连续方式运行程序。

3、观察运行结果在连续运行方式下,观察发光二极管闪亮移位情况。

4、终止运行按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。

六、思考修改延时常数,使发光二极管闪亮时间改变。

修改程序,使发光二极管闪亮移位方向改变。

七、实验电路八、实验程序ORG 0790H;----------------------------------------------------------SE18: MOV P1,#0FFH ;送P1口LO34: MOV A,#0FEH ;L1发光二极管点亮LO33: MOV P1,ALCALL SE19 ;延时RL A ;左移位SJMP LO33 ;循环;----------------------------------------------------------SE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35DJNZ R6,LO36 ;延时RET;----------------------------------------------------------END教你如何用W ORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:W ORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。

任务9 用自制的跑马灯电路实现8只LED循环点亮

任务9  用自制的跑马灯电路实现8只LED循环点亮

• 出栈指令格式为:POP direct ;(direct)←(SP) • • ;SP←SP-1 该指令执行时先将SP所指单元数据弹出至direct所指的地址单元, 然后SP减1指向新的栈顶单元地址。
• •
4)子程序调用指令 ) 子程序调用指令的功能调用子程序,执行时先将断点地址(调用 指令的下一条指令的首地址)压入堆栈区,然后将子程序的首地址送 PC,执行子程序。 (1)长调用指令LCALL addr16 ;PC←PC+3 ;SP←SP+1 ;(SP)←PC7-0 ;SP←SP+1 ;(SP)←PC15-8 ; PC←addr16
执行该指令时,先将PC+2得到下一条指令的16位首地址,并将其压入堆栈, 最后子程序标号所在的子程序入口地址送给PC,CPU转入子程序执行。由于短 调用指令中的PC高5位地址不变,所以其转移的范围为2KB。
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮 程序分析讲解
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
9.1.3 跟我学 1)减1不为零循环转移指令 ) 不为零循环转移指令DJNZ 不为零循环转移指令 DJNZ Rn,rel ;PC←PC+2,Rn←(Rn)-1,若(Rn)≠0,则PC←PC+rel DJNZ direct,rel ;PC←PC+2, direct←(direct)-1,若(direct)≠0,则 PC←PC+rel; 每执行一次循环转移指令,第一操作数(Rn或direct中的数)减1,并 保存,若减1后结果不为零,则转移至目的地(标号处);若减1后结果为零, 则程序按顺序执行下一条指令。

Word版可编辑-八路循环彩灯电路设计精心整理.doc

Word版可编辑-八路循环彩灯电路设计精心整理.doc

八路循环彩灯电路设计摘要:灯光的闪烁和流动可以用于各种各样的装饰,例如电子门标、广告装饰等。

灯光的流动总是特别吸引别人的注意力。

在夜晚,在城市的街头,当广告牌上的灯光流动起来时,城市就会马上变得生动起来。

我所设计的彩灯控制电路是原理很简单的一种利用大学所学到的数电知识制成。

只要了解几种集成电路便可轻松明白它的原理。

做好的彩灯可以放在室内,主人会感到温馨;放在餐厅等地方可以增加氛围。

本文基于电子线路CAD常用软件Protel99SE设计了一个简单的循环彩灯电路,各路彩灯由发光二极管模拟代替。

采用555定时器,计数器,移位器,产生控制循环信号,再利用74LF161A计数器和74LS194左右移位寄存器组成驱动电路来依次控制彩灯循环闪烁。

循环彩灯电路由驱动电路、输出电路、时钟电路和电源等为整个系统工作提供所需的能源。

CMOS 电路对电源电压的要求相对比较宽松。

循环彩灯电路是由TTL集成电路做成,并且采用5伏电源供电。

时钟电路是由555多谐自激震荡集成电路制成,与电阻和电容一起构成时钟周期发生器,为电路提供时钟信号,支持整个电路的工作。

驱动电路是由74LF161A计数器和74LS194左右移位寄存器组成,用以驱动发光二极管正常工作,并且在时钟电路的控制下让八个发光二极管循环工作。

关键词:八路彩灯;555定时器;计数器;移位寄存器The Design Of Eight Lines Circulating Lights Abstract: Lights flashing and the flow can be used for a variety of decoration, such as electronic door standard, advertising and decoration. The flow of light is always special to attract people's attention. At night, the streets in the city, when the flow of light on the billboards up, the city will soon get to life. I designed the lights control circuit is a very simple principle learned to use the University made several electrical knowledge. As long as several integrated circuits can easily understand its principles. Do the lights can be placed indoors, the owner will feel warm; on restaurants and other places to increase the atmosphere.Based on the electronic circuits commonly used CAD software Protel99SE designed a simple circuit lights cycle, and the brightest lights from the light-emitting diode simulations instead. Using 555 timers, counters, shifters, resulting in the control loop signal, and then use 74LF161A around the counter and 74LS194 shift registers control drive circuit to turn lights cycling. Cycle lights circuit by the drive circuit, output circuit, clock circuit and power supply for the entire system to provide the necessary energy. CMOS circuits the power supply voltage requirements are relatively relaxed. Cycle lights circuit is made by TTL integrated circuits, and the 5-volt power supply. Clock circuit is more than 555 integrated circuit made of harmonic self-excited oscillation, together with resistors and capacitors constitute the clock generator providing clock signals for the circuit to support the entire circuit. Drive circuit is 74LF161A counter and shift register 74LS194 about the composition, light-emitting diodes to drive to work, and under the control of the clock circuit so that the work cycle of eight light-emitting diodes.Key words:Eight lines circulating lights; 555 timer; Counter; Shift register目录1引言 (1)2 系统组成及工作原理 (1)2.1 基础设计目的 (1)2.2 基础设计要求 (1)2.3 总体设计思路 (2)2.4 电路框图 (2)2.5 PCB板布线 (2)2.5.1 布局规则 (2)2.5.2 布线规则 (2)3 循环彩灯的系统组成 (3)3.1 555定时器电路 (3)3.1.1 定时器电路产生时钟脉冲 (3)3.1.2 555定时器组成的多谐振荡电路 (4)3.2 74F161A及74LS194的功能 (5)3.2.1 74F161A四位二进制同步计数器 (5)3.2.2 74LS194四位双向移位寄存器 (6)3.3 设计彩灯控制电路 (7)3.4 电路图的仿真 (7)3.5 PCB板布线与制做方案的实施 (7)3.5.1 PCB板布线 (7)3.5.2 PCB板制作 (8)4 循环电路的总体设计 (8)4.1 循环彩灯原理图 (8)4.2循环彩灯仿真图 (9)4.3 循环彩灯PCB图 (9)4.4循环彩灯装配图 (10)4.5 循环彩灯实物图 (10)5 实验结果的调试与检验 (11)5.1 调试技巧方法 (11)5.2 调试中出现的原因、故障及排除的方法 (11)6 总结与设计结论 (11)6.1 总体结果 (11)6.2 设计结论 (12)6.3 收获 (12)参考文献 (15)致谢......................................................错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

八路发光二极管轮流点亮的实验
八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦~~~
下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。

ORG 0000H
START:MOV P1,#01111111B;最下面的LED点亮
LCALL DELAY;延时1秒
MOV P1,#10111111B;最下面第二个的LED点亮
LCALL DELAY;延时1秒
MOV P1,#11011111B;最下面第三个的LED点亮(以下省略)
LCALL DELAY
MOV P1,#11101111B
LCALL DELAY
MOV P1,#11110111B
LCALL DELAY
MOV P1,#11111011B
LCALL DELAY
MOV P1,#11111101B
LCALL DELAY
MOV P1,#11111110B
LCALL DELAY
MOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒
AJMP START;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOV R4,#2
L3: MOV R2 ,#250
L1: MOV R3 ,#250
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END
这是上面程序汇编以后获得的编程器烧写文件:201.hex
下载烧写文件的方法:将鼠标移到烧写文件的超级键连处,点击鼠标的右键,选择“目标另存为(A)...”保存文件类型中不要选择“文本文件”,应该选择“所有文件”,这样就能获得*.hex文件了。

如何精确计算延时子程序的执行时间?
汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!
;延时子程序,12M晶振延时约253毫秒
DELAY:
MOV R4,#2------执行1个机器周期,耗时1微秒
L3: MOV R2 ,#250---执行1个机器周期,耗时1微秒
L1: MOV R3 ,#251---执行1个机器周期,耗时1微秒
L2: DJNZ R3 ,L2---执行2个机器周期,反复执行251次(2x251)=502微秒)
DJNZ R2 ,L1-----执行2个机器周期,反复执行250次(1+502+2)*250=126250微秒)
DJNZ R4 ,L3-----执行2个机器周期,反复执行2次(1+1+502+126250+2)*2=253512微秒)
RET
delay 加上第一条总共延时1+253512=253513微秒。

相关文档
最新文档