如图,实验现象是6个灯,其中1个灭,5个亮,一直循环。我说下我的理解,自学的,请指正。这个程序是别人给,就我说的实验现象,这个程序是不是有几条程序是没用的?(1)实验只用了P2口,mov p0,#0和setb p1.0这两个指令是不是没用的?(2)为什么p2口有两次置0,有什么用?我觉得一次置0后,因为低电平有效,6个灯就全亮了啊(3)main中的lcall delay是不是控制程序main运行到loop的间隔,而loop中的lcall delay是控制灯亮的间隔?(4)如果我要控制灯亮的间隔,是不是有两种方法,一是改变lcall delay指令的数目 二是改变delay 中的r7的初值?(5)如果改变r7的初值,那么main中的间隔时间也改变,我单纯的只想改变灯亮的间隔时间,最好的方法是不是改变loop的lcall delay指令数目?(6)tt这个程序是不是多余,没用的?因为我感觉没用到(7)做实验时,用示波器测了p2口的其中1个引脚,它是周期的图像,如果我只看程序,怎么算出一个灯的周期,主要是我不太通,delay延迟的时间?(8)p2口有8个引脚,而实验单片机电路板只有6个灯,左移到0100 0000或1000 0000的情况,是不是会出现6个灯全亮的情况,但我感觉实验的时候,没出现这种情况,是真的不会出现,还是我粗心没发现?问题有点多,但请讲解,谢谢了,自己学的有点苦难。
我感觉程序中的一些注释是错的?如每次只亮一个灯的那个注释就是错的,因为是低电平有效,应该是每次有一个灯灭?
80c51单片机120秒延时程序怎么编写
为了编写一个80C51单片机的120秒延时程序,需要遵循以下步骤。首先,我们需要创建一个名为“delay”的函数,用于实现延时功能。该函数接收一个参数“z”,即所需延时的周期数。在函数内部,我们使用两个嵌套的循环结构,分别用变量“x”和“y”作为循环计数器。外层循环的次数由参数“z”决定,即循环“z...
80c51单片机交通灯程序
MOV A,#01H ;赋初值 MOV R0,#08 ;循环变量,循环7次,控制7个灯 LOOP: MOV P1,A ;点亮第一个灯 LCALL DELAY2 ;延迟 RL A ;A的值加1,循环左移 DJNZ R0,LOOP ;RO的值减1不等于1则执行LOOP标号 SETB P3.2 ;P3.2灯亮 LCALL DELAY2 ;延迟 ...
80c51单片机音乐播放器设计
⑸ 每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为0.4秒,1\/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1\/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1\/4拍的DELAY时间,其余的节拍就是它的倍数,如下表...
80c51单片机硬件怎么控制小灯的?
要使用80C51单片机硬件控制小灯,我们需要理解代码逻辑并将其应用到实际硬件中。首先,`#include main( )` 这一行表示我们使用的是单片机的主函数。主函数是单片机程序的入口点,所有程序执行都将从此处开始。然后,`int i,j,LED;` 定义了三个变量,`i` 和 `j` 作为循环计数器,`LED` 用于存储控...
单片机·汇编初学者求教高手:80c51用定时器在p1.0管脚上产生一周期为2...
{ out=0; \/\/ P1.0输出为0 TMOD=0x01; \/\/工作方式1,16位计数 TH0=0x03; \/\/给定时器初值,周期为2ms,则半个周期为1ms TL0=0xe8; \/\/给定时器初值 EA=1; \/\/打开中断 ET0=1; \/\/允许中断 TR0=1; \/\/启动定时器 while(1); \/\/等待 } void Time0(void...
单片机秒表程序 80C51
求一个单片机程序用80C51单片机制作秒表的程序三个按键两个数码管有复位电路外接晶振求一个程序简单介绍一下程序万分感谢会加分... 求一个单片机程序 用80C51单片机制作秒表的程序 三个按键 两个数码管 有复位电路 外接晶振 求一个程序 简单介绍一下程序万分感谢 会加分 展开 ...
求大神解答下单片机80c51,下面程序中的一个能够让万年历调时间的代码...
1,我们可以通过这一位判断时钟在单片机系统掉电后是否还正常运行。剩下的7 位高 3 位是秒的十位,低 4 位是秒的个位,这里再提请注意一次,DS1302 内部是 BCD 码,而秒的十位最大是 5,所以 3 个二进制位就够了。second|0x80后面的这个数据使用 | 符号就是把最高位CH变成1.
单片机80C51的指令系统
MOV A,#00H \/\/把立即数0送给A ,A=#00H MOV @R0,A \/\/A送内部RAM单元,40H=0 MOV A,#3BH \/\/3BH送给A, A=#3BH MOV 41H,A \/\/ (41H)=#3BH MOV 42H,41H \/\/ (42H )=#3BH 程序全部执行完之后,A中内容为0,R0为40H,(40H)=(41H)=(...
80c51单片机让第三个灯常亮,其他灯不变的程序怎么写
那得看你是什么驱动电平:低电平:LED_Port &=~(1<<3);\/\/按单片机第0颗灯开始算;高电平:LED_Port |=1<<3;如果你想让第3颗灯的状态相反(亮↔灭),其他不变:LED_Port ^=1<<3;
用汇编语言编写80c51单片机程序,求内部RAM中50H~59H十个单元内容的平均...
;A=溢出部分的平均值,肯定小于0FF MOV 5AH,A ;第一部分的平均值p1给5AH MOV A,#6H MOV B,5BH MUL AB ;值给5BH,最大值是3CH,所以不用考虑溢出。ADD A,5CH ;MOV B,#10 DIV AB ;6B+s1的平均值p2 ADD A,5AH MOV 5AH,A ;p1+p2 MOV 5BH,B SJMP END ...