首页 > 软件 > 设单片机的晶振频率为12MHz,编写一段延时程序约50ms的子程序

设单片机的晶振频率为12MHz,编写一段延时程序约50ms的子程序

软件 2024-05-26

跪求单片机编程

假设为51单片机。 1. 12M的话一个机器周期为1uS,汇编子程序如下1005*50=50250uS=50mS DELAY: MOV R2,#32H D1: MOV R1,#0FAH D2: DEC R1 CJNE R1,#0,D2 DEC R2 CJNE R2,#0,D1 RET 2.START: CLR R7 MOV R1,#30H MOV R2,#14H REDO: MOV A,@R1 JZ RESULT INC R1 DEC R2 CJNE R2,#0,REDO END RESULT: INC R7 RET

单片机汇编语言 编写一个延时50ms的子程序,设晶振主频率为12MHz?

关于单片机延时程序的具体分析 前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句话会被执行62500次,但是执行这么多次需要多长时间呢?是否满足我们的要求呢?我们还不知道,所以下面要来解决这个问题。 关于单片机延时程序的具体分析 先提一个问题:我们学校里什么是最重要的。(铃声)校长可以出差,老师可以休息,但学校一日无铃声必定大乱。整个学校就是在铃声的统一指挥下,步调一致,统一协调地工作着。这个铃是按一定的时间安排来响的,我们可以称之为“时序��时间的顺序”。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。事实上,计算机更象一个大钟,什么时候分针动,

试用循环转移编写延时50ms,晶振12MHZ (单片机程序)的延时子指令

你是想要左移还是右移?还是一直循环就可以了? 如果是左移右移就要调用了"intrins.h"的文件包,如果是一直循环,那么用while循环语句就可以实现了,如下: 左移右右:#include "reg52.h" #include"intrins.h" //包含_crol_函数所在的头文件 #define uint unsigned int // 宏定义 #define uchar unsigned char void delayms(uint); //说明子函数 uchar aa; //定袖个变量,用来给P1口赋值 void main() //主函数 { aa=0xfe; //赋初值11111

1, 设单片机晶振频率为12MHZ,试编写一延时1s的子程序.

//----假设,系统工作于 12MHz/12T的传统51单片机下.#include sbit Test = P1^0; void Delay_50ms(unsigned char Times) { while(Times -- ) { TH0 = 0x3C; //----装入初值,定时器0定时50ms TL0 = 0xB0; TR0 = 1; //-----启动定时器 while(!TF0); //-----等等定时时间到达 TF0 = 0; //-----清零定时到达标志 } } void Delay_1s(unsigned char Times) { while(Ti

如果单片机的晶振频率为12MHz,请用汇编语言编程实现50ms的延时程序?

如果你用的是实际的开发板,你可以抄一个相同配置的开发板延时程序,然后运行测试,如果不精确,就自己修改循环里面的循环次数。这样就能编写出精确的50ms的延时程序。

标签:信息技术 单片机 编程语言 程序 汇编语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18