A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )
pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:
(A)=50H;
sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。
(51h)=30h;
(52h)=50h;
因为ret指令返回时,出栈的结果是高地址=(52h)=50h;而低地址=(51h)=30h;故最终结果pc值是5030h;
扩展资料:
51单片机功能特性
1、可以仿真63K程序空间,接近64K 的16位地址空间;
2、可以仿真64Kxdata 空间,全部64K 的16位地址空间;
3、可以真实仿真全部32 条IO脚;
4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作;
5、可以使用C51语言或者ASM汇编语言进行调试 ;
6、可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;
7、可选 使用用户晶振,支持0-40MHZ晶振频率;
8、片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;
9、可以仿真双DPTR 指针;
10、可以仿真去除ALE 信号输出. ;
11、自适应300-38400bps 的所有波特率通讯;
12、体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;
13、仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;
14、仿真时监控和用户代码分离,不可能产生不能仿真的软故障;
15、RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。
参考资料:百度百科-51单片机
如何用c51编写51单片机控制步进电机转动程序
A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次...
步进电机用单片机控制转动
很简单,看你的意思,你应该已经有了与之配套的【步进电机驱动器】,那就可以用单片机I\/O口控制了,一路输出CP脉冲信号,一路输出DIR方向信号,电源接好后,连通电路,就OK了。简单的C51调试程序:一个大的FOR循环里包含:【C P脉冲信号】:可以用一个有限的FOR循环(循环时间可控制在几秒钟左右)...
单片机步进电机控制实验 单片机步进电机控制实验报告
当松开开关时,减速旋转,速度恢复为10转\/分。当按下S2开关时,按照逆时针旋转;当松开时,按照顺时针旋转。本程序要求使用定时器中断来实现,不准使用程序延时的方式。4、实验步骤。预习:参考辅助材料,学习C51编程语言使用和步进电机原理。简单程序录入和调试:关于C51的中断,本程序需要使用定时器定时,...
以AT98c51单片机控制步进电机的正反转
控制送出脉冲的顺序就行了,正转的顺序P1.0-P1.1-P1.2-P1.3,反转P1.3-P1.2-P1.1-P1.0.
请问单片机控制步进电机 脉冲频率如何思路。C51
楼主先说说你的单片机控制步进电机,是怎么控制的?频率是多少?然后才能讨论如何改变频率。--- 上位机发来指令,比如16 代表 10进制20,意思是20步\/s ,就可以定时1\/20秒,即50ms,每到50ms,输出一组脉冲即可。
你好,我有一个57步进电机和C51的学习板,想让电机动起来,该如何做呢...
步进电机只要用直流电源和电机就能动起来 用手把电机线顺序搭接下直流电源 一个线圈得电 就走到它的一步 再同另一个线圈 就又一个一步 不过是一步步走的 只要你顺序对 就能往前往后走。你有学习板 上面应该有对应的驱动装置 所谓驱动就是将收到的脉冲信号等 转换为电机的步序 四相为例a-b-c-...
...您还有用C51驱动两相混合步进电机的程序啊,能给我一份吗?我急需你...
可以加您Q吗?帮我们一下吧 展开 我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览14 次 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 步进电机 c51 驱动 两相 搜索资料 本地图片 图片链接 提交回答 匿名 回答自动保存中为...
c51 单片机 四相五线 步进电机 怎么停止?
\/\/根据你的程序j减到零就会停止,不存在一直转下去的情况。\/\/要做到随时停止的话,可以加一个按键切换启停就OK了 main(){ unsigned char i,flag;unsigned int j;j=512*2; \/\/512转一圈 \/\/\/ P0=0XFF;\/\/关掉数码管的位选信号。阻止数码管受到P0口信号的影响。Delay(500);WELA=1; \/\/...
...最好给个通过串口通信控制步进电机转速转向的c51编程参考。大致相近...
include <reg51.h> unsigned char dat[2]; \/\/接收数据存放处(根据你数据帧自己调整,这里假设2字节)void InitUART(void){ TMOD = 0x20;SCON = 0x50;TH1 = 0xFD;TL1 = TH1;PCON = 0x00;EA = 1;ES = 1;TR1 = 1;} void main(void){ InitUART();\/\/add your code here,about ...
两相四线42步进电机 程序 只有step 和dir 的c51程序 跪求
\/*89C51控制步进电机c程序 使用89C51控制四相六线步进电机,步进电机采用四相六线,步距角1.8度,半步工作0.9度八拍运行。接口如下:P15---启动信号输入 P14---停止信号输入 P13---接光电传感器 P20---输出控制步进电机的A相 P21---输出控制步进电机的B相 P22---输出控制步进电机的C相 P23...