浅谈单片机软件复位方法-现用一简单的实验说明,实验电路如附图所示。接于仿真插座P1.0的发光二极管LED0用来表示主程序的工作情况,接于P1。1的发光二极管LED1用于表示低级中断子程序的工作情况,接于P1。2的发光二极管LED2用来表示高级中断子程序的工作情况,接于P3。
详解单片机堆栈-如果了解一点汇编编程话,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。通常用来保存CALL指令调用子程序时的返回地址,RET指令从堆栈中获取返回地址。中断指令INT调用中断程序时,将标志寄存器值、代码段寄存器CS值、指令指针寄存器IP值保存在堆栈中。
MCS-51单片机控制转移指令的应用-子程序是为了便于程序编写,减少那些需反复执行的程序占用多余的地址空间而引入的程序分支,从而有了主程序和子程序的概念,需要反复执行的一些程序,我们在编程时一般都把它们编写成子程序,当需要用它们时,就用一个调用命令使程序按调用的地址去执行,这就需要子程序的调用指令和返回指令。
ATMEGA8单片机对步进电机的驱动-constucharmotortb[]={0x11,0x99,0x88,0xCC,0x44,0x66,0x22,0x33};
voiddelay_nms(uintms)//每步延时de子程序
{
uinti;
for(i=0;i_delay_loop_2(8*250);
}
voida_step(uchard,uchart)//步进电机走一步d=0正转d=1反转t越大走得越慢
{
if(d&0x01)
{
AT89C2051单片机智能控制器电路的设计-源程序介绍程序由主程序、定时中断子程序、延时子程序等模块组成。寄存器RO作计时单元,每过6分钟其计数值加1,存储器20H单元用来存储前一天天亮的时间,定时器TO用作定时中断子程序的计时。在智能控制器接通电源后,由于复位电路的作用,程序进入初始状态,这时将定时器TO设置为工作方式1,其定时时间设置为60ms。
51单片机中断服务子程序的设计-由于各中断人口地址是固定的,而程序又必须先从主程序起始地址OOOOH执行。所以,在OOOOH起始地址的几个字节中,要用无条件转移指令,跳转到主程序。另外,各中断人口地址之间依次相差8字节,中断服务子程序稍长就超过8字节,这样中断服务子程序就占用了其他的中断入口地址,影响其他中断源的中断处理。为此,一般在进入中断后,利用一条无条件转移指令,把中断服务子程序跳转到远离其他中断入口的人口地址处。
单片机实现消防车报警声音的设计-两个简单的报警程序,希望能对大家有所启发,让单片机发出更美妙的音响
#include
#include
sbit SPK = P3^4;
unsigned char frq;
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms–)
{
for(i = 0; i 《 120; i++);
}
}