8051单片机的汇编程序编程问题!!!

已知8051单片机的时钟频率为6MHz,用T1定时。试编程由P1.2和P1.3引脚分别输出周期为2ms和7ms的方波。请写出详细的分析过程,谢谢~~~... 已知8051单片机的时钟频率为6MHz,用T1定时。试编程由P1.2和P1.3引脚分别输出周期为2ms和7ms的方波。请写出详细的分析过程,谢谢~~~ 展开
 我来答
意法半导体(中国)投资有限公司 2023-06-12
展开全部
MAIN: MOV SP,#50H MOV DPTR,#TAB;读入字模指针 MOV 30H,DPL; 存起来 ;堆栈低8位 MOV 31H,DPH ;堆栈高8位 MOV 32H,30H;再记录指针,留作移动了多少位的判断 用。 MOV 3H,31H ;3H记录字模数据的高位地址 INC 3H;3H高位地址+5,表示数据有5X256列之多。 ROL: MOV R2,#01H;设扫描次数 INI1: MOV DPL,30H;这段是扫描一次32列 MOV DPH,31H MOV R4,#32 MOV R3,#0 LOP1 P1,R3 CLR A MOVC A,@A+DPTR MOV P0,A INC DPTR CLR A MOVC A,@A+DPTR MOV P2,A INC DPTR CAL DELAY INC R3 DJNZ R4,LOP1 DJNZ R2,INI1;这条预留扫描次数用可以调整速度 MOV DPL,3…
wolf_lhy
2012-12-08 · TA获得超过6611个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:667万
展开全部
既然向我求助,那我就写一下大概的思路和C语言程序,至于汇编语言,兄弟可自己由C语言翻译,我今天的确没太有时间.
周期为2个ms的方波,也就是说半个周期为1ms,也就是说,P1.2每1ms翻转一次;
同理,P1.3每3.5ms翻转一次,因为只能用一个定时器,所以,取1ms和3.5ms的最大公约数,是0.5ms,也就是说,让定时器0.5ms中断一次,然后每两个中断,翻转一次P1.2,每7个中断翻转一次P1.3;
这就是编程思路,那么我们来看具体的编程细节;
6Mhz,也就是指令周期是2us,0.5ms需要250个计数,250<256,为了速度和效率,我们让定时器1工作在自动重载模式下,也就是模式2;

C语言整个程序编程如下;

#include <reg52.h>
bit P1_2_Turn_Cnt = 0; //----用于P1.2的计数翻转,因为只有两次,大可不必用unsigned char类型的
unsigned char P1_3_Turn_Cnt = 0; //----用于P1.3的计数翻转,因为要7次,所以用unsigned char
sbit P1_3 = P1^3;
sbt P1_2 = P1^2;
void main(void)
{
//----初始化定时器,工作在模式2,自动重载,开中断,每0.5ms中断一次
TH1 = 256 - 250; //----设置定时器,250 X 2us = 500us = 0.5ms
TL1 = 256 -250;
TMOD = 0x20; //----定时器/计数器1 工作在模式2下;
ET1 = 1; //----开定时器1中断
TR1 = 1; //-----启动定时器
EA = 1; //----开总中断
while(1); //----定时器初始化完成,方波工作在定时器内部完成;
}

void ISR_Timer1(void) interrupt 3
{
P1_2_Turn_Cnt = ~P1_2_Turn_Cnt;//---P1_2翻转计数,由于初始化为0,所以第1次会翻转为1;
//---由此推论,奇数次翻转后状态为1,偶数次中断会翻转为
//---0,所以当P1_2_Turn_Cnt = 0时,P1_2翻转.
if(P1_2_Turn_Cnt == 0)
{
P1_2 = ~P1_2;
}
P1_3_Turn_Cnt++;
if(P1_3_Turn_Cnt >= 7)
{
P1_3_Turn_Cnt = 0;
P1_3 = ~P1_3;
}
}

以上就是这个程序实现的全部过程,你可以自己手动翻译成汇编语言,也可以用Keil的Debug模式自动翻译,因为我时间有限,所以就不给你翻译了,请见谅!
来自:求助得到的回答
上海实邦电子科技
2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设... 点击进入详情页
本回答由上海实邦电子科技提供
甜前叁
2012-12-08 · TA获得超过174个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:335万
展开全部
汇编忘了哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式