51单片机编程子程序声明中的参数可以随便写
ROM,EPROM,EEPROM这些存储器对用户来说都是写保护存储区,防止用户误改程序代码。他们是只读的。
汇编是不需要申明的
只是要注意跳转应该是长跳转还是短跳转,短的写jmp
长的写LJMP
为了保险起见,你就都写LJMP好了
对函数的申明要求不高,但是实现是就必须完整了。
编程:使用单片机P1口控制8个LED。显示方式:自上而下逐个点亮,再自下而...
500MS ;延时500ms 可以清晰看到每个LED的亮灭情况 SJMP MAIN ;延时250ms子程序 DLY_250MS:MOV R5,#5 DLY1:MOV R6,#100 DLY0:MOV R7,#250 DLY:DJNZ R7,DLY DJNZ R6,DLY0 DJNZ R5,DLY1 RET ;延时500ms子程序 DLY_500MS:MOV R4,#2 DLY2:LCALL DLY_250MS DJNZ R4,DLY2 RET END ...
51单片机编程题,帮我编个程序。
;采用中断比较好 ORG 0000H LJMP MAIN ORG 001BH ;定时器1中断矢量地址 LJMP T1_ISR ;转到中断子程序处执行 ORG 0030H MAIN: MOV TMOD,#20H ;采用定时器方式2,8位自动重载 MOV TH1,#6 ;由于周期500u,故高低电平均持续250u MOV TL1,#6 ;计算得定时初值,定时250...
单片机编程
;通过查表求平方的子程序 MOV DPTR, #TABLE MOVC A, @A + DPTR RET TABLE: ;平方表 DB 0,1,4,9,16,25,36,49,64,81,100 ;--- END
1、 已知单片机的晶振为12M,请以子函数形式写出10毫秒延时程序。该怎...
HERE:JBC TF0,NEXT1 SJMP HERE NEXT1:MOV TL0,#0B0H MOV TH0,#3CH DJNZ R7,HERE CLR TR0 ;定时器要软件清零 SETB EX0 RET C语言延时程序:10ms延时子程序(12MHZ)void delay10ms(void){ unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)fo...
单片机。用汇编语言编程。 设计一软件延时1s的子程序。设晶振频率为12M...
1 2013-07-02 MCS-51单片机的编程题:已知系统晶振频率为12MHZ,采... 1 2012-03-23 已知单片机的外接晶振频率fosc=12MHz 。请编写汇编语... 3 2015-05-24 51单片机用汇编语言设计0.2S延时子程序,晶振12MHz变... 2011-11-23 已知单片机的外接晶振频率f=12MHZ。请编写汇编语言子程序... 2 更多...
51单片机怎么在主程序中添加多个子程序
直接用ACALL或LCALL调用子程序就可以了。
关于单片机延时子程序流程图的问题
我们知道程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时的功能。例如 在交通灯的控制程序中,需要控制红灯亮的时间持续30秒,就可以通过延时程序来完成。延时程序是如何 实现的呢?下面让我们先来了解一些相关的概念。 一、机器周期和指令周期 1.机器周期是指单片机完成一个基本操作所花费的时间,...
单片机C语言编程问题。怎么实现按键切换两个子程序啊。。(时钟和温度...
应该用一个标志位,如果你这种是普通的按键,即按下时是低电平,松开时是高电平的,大概这样写,在main声明一个变量,作为标志位.char Flag;然后按键按下时,直到弹起按键才改变Flag的状态。if(!Key){ while(!Key);Flag=~Flag;} if(Flag){ time = hour*100 + min;ShowTest(time);delay();...
编程题(单片机)汇编语言
利用定时器中断实现的任务,请编译一下,若有问题欢迎追问。OORG 0000H SJMP MAIN;跳转到主程序 ORG 001BH AJMP Timer1_Interrupt;跳转到定时计数器T1中断子程序 MAIN: CLR P1.2;清P1.2 MOV TMOD,#50H;配置T1为外部16位计数 MOV TH1,#0FE;配置T1寄存器外部计数500个脉冲初值 MOV TH0,...
单片机中,主程序和子程序可以互为调用
主程序可以调用子程序,子程序可以调用子程序,子程序不可调用主程序。中断程序也可以调用子程序。
释风先宏: 因为str的定义为unsigned char型数组,作为变量的str是指向这个数组首地址的指针,所以主程序引用str时是告诉子程序传入数组首地址;对于子程序必须知道这是一个数组首指针,用 unsigned char *修饰传入的参数或写成unsigned char str[]均是可以的.
宾阳县19283339609: 单片机中什么叫全局变量,和局部变量 - ?
释风先宏: 在子程序中声明的变量叫局部变量,退出子程序时释放内存 而在主程序中声明的叫全局变量,在程序运行过程中一致有效. 为了节约内存,能用局部变量就不要用全局量
宾阳县19283339609: 单片机程序有哪几部分组成?头文件的作用是什么? - ?
释风先宏: 头文件,变量声明,函数声明,子函数,主函数这几部分组成,头文件其实就是一种声明,将单片机中的一些常用的符号变量进行定义声明,对一些特殊功能寄存器进行声明,对一些关健字进行定义,比如我们常用的P0口,在写程序的时候你就不用在去定义这个符号,不用把它的字节地址给这个符号了,直接用就可以
宾阳县19283339609: 单片机中如何调用写好的子程序? - ?
释风先宏: 得看是什么语言 c语言中 void zichengxu(); //主程序前先声明子程序 void main() //主程序 {zichengxu(); }void zichengxu() //子程序 { } 如子程序主体在主程序前 可不声明子程序 直接在主程序中调用子程序
宾阳县19283339609: 51单片机编写延时1分钟、1小时的子程序 - ?
释风先宏: 假设石英晶振频率为12mhz,单片机为51 汇编: delay: mov r4, #10 dly0: mov r5, #120 dly1: mov r6, #200 dly2: mov r7, #250 dly3: djnz r7, dly3 djnz r6, dly2 djnz r5, dly1 djnz r4, dly0 ret c51: void delay() { tmod=0x01; unsigned int i=24000; while(i--) { th0=-(50000/256); tl0=-(50000%256); while(tf0==0); tf0=0; } tr0=0; }
宾阳县19283339609: 51单片机编程,汇编子程序需要声明么 - ?
释风先宏: 汇编是不需要申明的 只是要注意跳转应该是长跳转还是短跳转,短的写jmp 长的写LJMP 为了保险起见,你就都写LJMP好了
宾阳县19283339609: 那位有51单片机带参数的汇编延时子程序?(例子即可) - ?
释风先宏: 不明白什么 叫带参数的 设晶振频率12M,延时10ms DELAY: ;误差 0usMOV R7,#01H DL1:MOV R6,#26H DL0:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RET
宾阳县19283339609: 51单片机混合编程 - ?
释风先宏: (1)、C51语言中调用汇编语言程序;C51语言调用汇编语言程序要注意以下几点:1:在文件栏选中File Group和C51程序原文件,在配置文件选项中激活“产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含”三个选项...
宾阳县19283339609: 单片机的程序用51单片机?
释风先宏://用LED数码管显示计数器对INT0的计数值 #include<reg51.h> //包含51单片机寄存器定义的头文件 unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码表 unsigned char x; /***********************************************...
宾阳县19283339609: 51单片机汇编语言如何定义局部变量?高手帮帮忙…… - ?
释风先宏: 51单片机汇编语言如何声明局部变量?--用 EQU 伪指令,即可.51单片机定义或声明一个变量在程序执行时是否需要时间?--伪指令,不占用单片机的时间.或是定义一个变量,这条指令的执行时间是多少?--零秒.--伪指令,不用单片机执行.