‘壹’ mcs-51单片机等待中断怎么写
中断的发生是不受时间限制,只要触发了中断,就可以发生,所以,等待中断可以是:
1、原地等待:SJMP $ 或者 while(1);
2、程序正常运行,中断来时自然进入中断服务。
‘贰’ 关于51单片机的中断嵌套(汇编语言)
51单片机的中断是可以嵌套的。
中断,一般是用来处理“突发”事件,嵌套是自然形成的。
1.除非楼主是想“有意”的构成嵌套,否则不用特意的设置等待。
2.在何处中断的,就返回何处。
‘叁’ 请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。
1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。
‘肆’ 51单片机中的while语句
一般格式是:while(条件或表达式){ 程序段}
如果条件成立,则(表达式)结果为1
所以while(1){ 程序段},是死循环,因结果已经是1了,条件也不用判断了,就一直执行大括号内的程序段,除非有break语句可以跳出
而while(1);是程序停止,同样是一个死循环,但又没有什么事情可做,连跳出的机会就 没有,所以就是停止不动了.
但如果开了中断,中断程序是可以执行的。
‘伍’ 51单片机如何在流水过程中查询其他按键并记录,等待程序运行完后再执行其他程序
看你的程序是什么样的,一般程流水灯程序大部分时间是在延时,完全可以在此时间段内加入按键检测语句
如下面程序,如果检测10个按键,将延时分10个片断,轮流检测各按键,一旦检测到按键,延时消抖的同时将flag赋值,没有按下只是延时
for(i=0;i<8;i++)
{
P0=1<<i;
if(key1==0)
{
delay10_ms;
if(key1==0)
{
flag=1;
}
}
else delay10_ms;
if(key2==0)
{
delay10_ms;
if(key2==0)
{
flag=2;
}
}
else delay10_ms;
..........
}
下一步根据flag的值来进行不同的操作
本例子虽可检测多个按键,但只记忆一个按键,如果想记忆多个按键, flag就不能简单的赋值为1 2 3 4 了,但后续判断也更加复杂
‘陆’ 51单片机中if语句的一个问题
单片机程序在执行完main程序后会跳回到住main程序入口再重新执行的。
把这个程序反汇编以后可以看到在C:0x0018行跳回主函数入口C0003
C:0x0000 02000F LJMP C:000F
4: void main(void)
5: {
6: if(k)
C:0x0003 E508 MOV A,k(0x08)
C:0x0005 6004 JZ C:000B
7: P0=0xff;
8: else
C:0x0007 7580FF MOV P0(0x80),#0xFF
C:0x000A 22 RET
9: P0=0x00;
C:0x000B E4 CLR A
C:0x000C F580 MOV P0(0x80),A
10: }
C:0x000E 22 RET
C:0x000F 787F MOV R0,#0x7F
C:0x0011 E4 CLR A
C:0x0012 F6 MOV @R0,A
C:0x0013 D8FD DJNZ R0,C:0012
C:0x0015 758108 MOV SP(0x81),#k(0x08)
C:0x0018 020003 LJMP main(C:0003)
C:0x001B 00 NOP
C:0x001C 00 NOP
C:0x001D 00 NOP
C:0x001E 00 NOP
‘柒’ 51单片机延时程序
我以2ms为例说明一下:
单片机的晶振周期为12hz,则执行一条代码为一个机器周期,为1微妙(ua),所以2ms=10*200(ua),
对r2赋值200(4位二进制数最大值为256,所以只能取到200)即#c8h。再对r2循环20次就实现了2ms延时。至于100ms、
200ms、
1s等等方法类似,只是调整相应的初值。多设置几次循环就行。
程序代码如下:
delay:
mov
r1,#0ah
;赋值r1为10次
delay1:
mov
r2,#c8h
;赋值r2为200次
delay2:
djnz
r2,$
;r2自减到0,不到0继续等待
djnz
r1,delay1
;r2减到0后r1自减1,重新给r2赋初值后继续循环,直到r1到0为止,延时结束
ret
‘捌’ 51单片机执行一条语句的时间是多久
51单片机执行一条语句的时间与指令条件有关。
假设晶振为12MHz,则指令周期为1uS,51分为1指令周期,2指令周期和4指令周期,1指令周期执行为1uS,2指令周期执行为2uS,4指令周期执行为4uS。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等 。