跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好加上
MAIN: MOV P1, #11111110B ; P1 口 点亮一个发光二极管
ACALL DELAY ; 调用延时子程序
MOV P1, #11111101B ; 从左向右移动 一位
ACALL DELAY
MOV P1, #11111011B
ACALL DELAY
MOV P1, #11110111B
ACALL DELAY
MOV P1, #11101111B
ACALL DELAY
MOV P1, #11011111B
ACALL DELAY
MOV P1, #10111111B
ACALL DELAY
MOV P1, #01111111B
ACALL DELAY
JMP MAIN ; 转移 至 MAIN 循环
DELAY: MOV R5,#250 ; 延时子程序 6.000 M 晶振 约 0.5 秒
D1: MOV R6,#250
D2: DJNZ R6,$
DJNZ R5,D1
RET
51单片机汇编语言编程,流水灯如P1口8个Ⅰ/O依次输出低电平点亮发光二极管,思路可以用定时器中断+计数来定时,可以用位移输出或者用状态表(查表法)输出,如表01111111、10111111、---、11111110,就是查表取状态字节再写入P1口。
#include<iostream>#include <intrins.h>
unsigned int i;
void delay_nms(unsigned int n) //延时n ms
{
n=n+1;
while(--n)
delay_nus(900); //延时 1ms,同时进行补偿
}
void main()
{
unsigned int i;
while(1)
{
for(i=8;i>0;i--)
{
if(i==8)
P1=~0x01;
//P1_0所接二极管亮,下面依次是P1_1到P1_7(电路连接时二极管一端连P1_0,一端连电阻再连5v,低电平的时候亮,因此加取反“~”)
if(i==7)
P1=~0x02;
if(i==6)
P1=~0x04;
if(i==5)
P1=~0x08;
if(i==4)
P1=~0x10;
if(i==3)
P1=~0x20;
if(i==2)
P1=~0x40;
if(i==1)
P1=~0x80;
delay_nms(500);//延时0.5s
}
}
兄弟用C语言不行吗,那样更方便吧
;*****************************************************************************************
;说明:程序预定义
;*****************************************************************************************
LED_CTRL EQU P1.4 ;发光管控制引脚(0:有效,1:无效)
LED_STATUS EQU P0 ;发光管L1至L8状态引脚(0:有效,1:无效)
;*****************************************************************************************
;说明:程序开始
;*****************************************************************************************
ORG 0000H ;程序首地址 PC=0000H
JMP START ;程序跳转至START PC=0030H
ORG 0030H ;程序开始
START:
CLR LED_CTRL ;发光管显示有效
MOV A, #0FEH ;发光管显示码初始值
L1:
MOV LED_STATUS, A ;发光管显示码送发光管状态引脚
RL A ;左移发光管显示码
CALL DELAY ;延时
AJMP L1 ;循环
;*****************************************************************************************
;函数:DELAY
;说明:程序延时
;参数: 无
;返回: 无
;*****************************************************************************************
DELAY:
MOV R6, #0FFH
DELAY_1:
MOV R7, #0FFH
DJNZ R7, $
DJNZ R6, DELAY_1
RET
;*****************************************************************************************
;说明:程序结束
;*****************************************************************************************
END ;程序结束
求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
51单片机汇编语言编程,流水灯如P1口8个Ⅰ\/O依次输出低电平点亮发光二极管,思路可以用定时器中断+计数来定时,可以用位移输出或者用状态表(查表法)输出,如表01111111、10111111、---、11111110,就是查表取状态字节再写入P1口。
51单片机用汇编语言写下这个程序,谢谢!用8颗LED接在P2口,要求:第一颗...
System.out.println( s2==s1.intern() );\/
51单片机,求用汇编语言编写延时1小时的子程序,要精确到秒级别
这个可以做到,如果晶振是12M的话,一下方法可以实现延时1小时,精确度在秒级别。DELAY1H:MOV R7,#180 ;1\/1000000 DLY1H:LCALL DELAY_20S ;180*19.960603s +2*180 DJNZ R7,DLY1H ;2*180\/1000000 RET 2\/1000000 共延时时间:3592.9s误差为7.1秒,如果再精确的话,再加一点延时...
C51单片机用的是C语言还是汇编语言?谢谢
两种语言都可以,因为最后烧写到芯片中的是二进制文件,该二进制文件由编辑器(如KEIL)编译连接C语言源码,或者汇编语言源码获得
51单片机,用汇编语言编写程序,10秒内对外部脉冲进行计数,并数出外部脉...
LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#51H MOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000)MOV TH1,#0 MOV TL1,#0 SETB TR0 SETB TR1 SETB ET0 SETB EA CLR A MOV R2,#0 LOOP:SJMP T0ISR:CLR TR0 MOV TH0,#HIGH(65536-50000)MOV TL0,#LOW(65536-50000)SETB TR0 INC ...
单片机C51程序调用汇编程序时如何传递参数
具体记不清了,比如void fuction(char a)那么变量a是存在寄存器R7里的。在帮助文档里面有详细的介绍。
c51单片机中如何用汇编语言编写流水灯
51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果。以下是程序:;假设晶振12MHZ,P1控制8个LED低电平亮 ;启动入口=== ORG 0000H;复位启动 AJMP START;ORG 001BH;T1中断 AJMP T1INT;...
C51是否可以运行汇编程序?
一、单片机只支持机器码,不管是C51还是汇编,到了单片机里全变成0和1了。二、只要你的烧写程序可以把HEX文件写入单片机,就可以写入汇编程序并运行。三、C51里可以嵌入汇编代码:\/\/...\/\/C51代码 \/\/...pragma asm \/\/汇编代码 \/\/...pragma ENDASM \/\/...\/\/C51代码 \/\/...谢谢玉砚帮忙。
51单片机用汇编语言设计1S延时子程序,晶振为12MHz。 (麻烦附上详细计算...
如果单纯延时,可以用实验的办法,在keilc51里面仿真 void Delay1S(char n){ char i,j;n=n*4;for(;n;n--){ for(i=6;i;i++){ for(j=7;j;j++) \/\/ 一个循环约为1mS ;} } } 看编译后的汇编:C:0x0805 7D01 MOV R5,#0x06;j=1,1时钟 C:0x0807 0D INC ...
第五题51单片机,谁能用c语言写一下?这种题一般用汇编写的,没有用c写...
变量,按照规定地址来定义,然后: if (x < 10) y = x * x - 2;else if (x > 15) y = 86;else y = x * x + 5;即可。
永雪济川: 51单片机汇编语言编程,5261流水灯如P1口8个Ⅰ4102/O依次输出低电平点亮发光二极管,思路可以1653用定时器中断+计数来定时,可以用位移输出或者用状态表(查表版法)输出,如表01111111、10111111、---、11111110,就是查表取状态字节权再写入P1口.
娄烦县13075118206: c51单片机中如何用汇编语言编写流水灯 - ?
永雪济川: 51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果.以下是程序: ;假设晶振12MHZ,P1控制8个LED低电平亮 ;...
娄烦县13075118206: 求一个C51单片机上的20秒延时子程序!用汇编语言 - ?
永雪济川: 1、软件延时方法:DELAY:MOV R7,#0BFH DL1: MOV R6,#0D1H DL0: MOV R5,#0F9H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 MOV R5,#02H DJNZ R5,$ RET2、定时器方法: ORG 0000H LJMP START ORG 000BH LJMP Timer0Interrupt ...
娄烦县13075118206: 用单片机(c51)做跑马灯,求简练的汇编或c程序 - ?
永雪济川: ORG 0000H START: MOV A,#0FEH LOOP: MOV P0,A LCALL DELAY RL A SJMP LOOP DELAY: MOV R2,#100 DELAY1: MOV R3,#250 DJNZ R3,$ DJNZ R2,DELAY1 RET END
娄烦县13075118206: 51单片机混合编程 - ?
永雪济川: (1)、C51语言中调用汇编语言程序;C51语言调用汇编语言程序要注意以下几点:1:在文件栏选中File Group和C51程序原文件,在配置文件选项中激活“产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含”三个选项...
娄烦县13075118206: 单片机汇编实例代码?
永雪济川: ;利用中断的99秒计时器 ,动态扫描两位数码管 ;P0数据端口 ;P2.2表示段码锁存 ;P2.3标志位码锁存 LATCH1 BIT P2.2 LATCH2 BIT P2.3 ORG 00H JMP START ORG 0BH JMP TIM0 START:MOV R3,#00 ;中断循环次数 MOV R4,#0 ;时...
娄烦县13075118206: 单片机怎么用C语言和汇编语言混合写? - ?
永雪济川: C51语言中嵌入汇编程序;在C51语言中嵌套使用汇编语言编写程序要注意以下的几个问题:1:在文件栏选中File Group和C51程序原文件,在配置文件选项中激活“产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含...
娄烦县13075118206: 求C51单片机汇编语言控制两位数码管倒计时程序,最好能说明下思路 - ?
永雪济川: 查询方式:ORG 00H START: MOV R0,#20 MOV R4,#60 LP0: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV DPTR,#TABLE SETB TR0 LP1: JBC TF0,LP2 ACALL DISPAJMP LP1 LP2: DJNZ R0,LP0 CLR TR0 MOV R0,#20 MOV ...
娄烦县13075118206: 求c51单片机点动花样流水灯怎么样编程,以汇编语言写的 - ?
永雪济川: 你好!端口的寄存器,赋予一个初值.每位对应一路灯.然后做移位命令.左移右移都可以,不就可以流水了.如有疑问,请追问.
娄烦县13075118206: 谁能帮帮忙 一简单c51单片机程序 - ?
永雪济川: 汇编我也是刚学一楼写的感觉是对的,对于8086在这个问题上应该是一样的吧我自己理解的,楼住仔细斟酌..