作业:第29题,已知R0中值为n,计算1^2+2^2+3^2+……+n^2并放入30h.(n较小不考虑求和的溢出)
1、先fileànew
建asm文件29.asm
MOV R1,#00H
LOOP:MOV A,R0
MOV B,R0
MUL AB
ADD A,R1
MOV R1,A
DJNZ R0,LOOP
MOV 30H,R1
END
为了调试时看数据,预先在r0中赋值为3,所以程序前加:
MOV R0,#3
所以程序变为:
MOV R0,#3
MOV R1,#00H
LOOP:MOV A,R0
MOV B,R0
MUL AB
ADD A,R1
MOV R1,A
DJNZ R0,LOOP
MOV 30H,R1
END
2、建新工程,Projectànew
project
,选AtemlàAT89C51
,导入文件29.asm。
注意,对初学者,一个工程里只能有本程序29.asm,无关的程序要删除,新试验一个程序最好重新建工程,以保证一个工程里只有你要试验的那一个程序。
3、可见程序
4、编译通过后,点debug下的start/stop开始调试,
step
和step
over都是单步调试,step是遇到子程序或中断也要进入进行单步调试,step
over是遇到子程序或中断当一句一次执行完。本程序物子程序,二者是一样的。我们执行一句得到:
继续执行:
可见A,B值都已改变,下一步:
可见A,B值改变。下一步,
R1此时为0,所以A值不变。下一步:
可见R1值改变,接着执行循环语句:
[page]
可见R0值变为02。下一步:
下一步:
A值变为04H,接着执行:
可见A值变为0dh,下一步:
送到R1中,再执行循环语句:
R1变为0eh,接着执行:
R0值变为0,循环结束。往下执行:
点view
àmemory
windows,再输入D:30h回车,得到:
可见30h处值变为0eh.此时即得到1^2+2^2+3^2的值,并放入了30H中。
关键字:单片机 求和
引用地址:
单片机第六次作业
推荐阅读最新更新时间:2024-03-16 14:37
8051单片机的中断发送
最近使用c8051做开发,串口程序移入工程时,整个程序竟然不跑了,加断点,调试,发现在串口查询发送出了问题,程序在查询发送完毕的时候,竟然死在这,就是while(TI0==0)这地方,用其它型号单片机没有这种情况,c8051F120单片机强大无比,但也复杂,用起来不顺手,下面就搜集了有关串口中断发送的资料,改为中断发送解决程序死的问题。 有关串口发送的程序例子: 假设要发送一组数据 Send 一般采用查询发送(循环发送)方式: unsigned char Send ; //发送量 unsigned char i; //循环量 for(i = 0; i 10; i++
[单片机]
Cortex M0引爆低耗高能MCU市场 NXP食得头啖汤
在广受关注的Cortex M3上没有打头阵的NXP如今卷土重来。在 ARM于2月份发布了号称“面积最小、功耗最低、能效最高的ARM处理器” Cortex M0内核的仅仅几周后,这家老牌欧洲半导体厂商就在不久前美国硅谷举行的嵌入式系统大会上推出了业界首款基于该内核的功能性硅芯片。并表示,将于2010年初推出基于Coretex M0的LPC1100系列产品。LPC1100非常适合那些电池供电、电子计量、消费电子外围设备、远程传感器以及所有的16位应用。 NXP在去年公布了该公司在MCU市场的最新战略。作为ARM公司主要的三家合作伙伴之一,该公司希望到2012年时能够在上述合作的推动下实现250%的销售增长。“我们的目标是
[单片机]
51单片机定时器初值计算方法详解
在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下: 最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。 以proteus仿真为例简单讲解定时器赋初值 用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。 这里使用16位的定时器,那单片机定时器0的最大计数就是65536.晶振为12
[单片机]
51单片机实现直流电机的调速控制
前一段时间一直拿一个开发板练习51,觉得对AD还不是很熟练,就想单独画一块板子,图都做完了一查价钱,小小的一个样板就要上百,实在有点舍不得,就先再proteus上仿真了一下,然后准备在万用板上搭电路。 电路图如下 占空比18%-82%连续可调,通过调节电路中的电位器实现。 做了单定时器控制和双定时器控制两个程序,电路图一样。 单定时器控制程序 #include reg51.h // #include intrins.h int count0=1000; bit A=0; sbit IN1=P3^4; sbit IN2=P3^5; sbit INTR=P3^2; sbit wr=P3^6; sbit rd=P3^7;
[单片机]
基于AVR单片机的三相晶闸管触发电路的研制
0 引 言 用于晶闸管三相全控桥整流装置的触发电路,若仅从触发信号的相位控制方式来看,只有多通道相位控制和单通道相位控制两种。前者的典型电路为锯齿波移相触发电路,它用于三相全控桥式主电路时,移相通道多达6个,由于各个通道中同步电路本身特性的差异,发出的触发脉冲相位对称度很差。另外,传统的晶闸管整流或逆变系统需要3个同步变压器来得到触发脉冲的同步信号,不仅增加了系统的成本,同时给安装调试带来不便。随着新型器件的发展,数字移相技术逐渐开始取代传统的模拟移相技术。AVR单片机具有强大的逻辑分析和计算能力,而且可以在系统编程,可靠性很高。 本文详细介绍了一种以AVR单片机为核心,并且不需同步变压器、具有相序自适应功能的双脉冲序列数字移
[单片机]
Flash单片机自编程技术的探讨
Flash的可自编程性(Self-Programmability)是指,用Flash存储器中的驻留软件或程序对Flash存储器进行擦除/编程,但是,要求运行程序代码的存储区与待编程的存储区不在同一模块中。因此,只有一个片上Flash存储器模块的微处理器,是不能在进行擦除/编程Flash操作的同时执行程序的。目前,有两种途径可以解决:①在擦除/编程Flash的过程中,将CPU置于空闲状态;②将擦除/编程Flash的指令复制到RAM,再由CPU来执行。 TI公司的MSP430系列Flash型单片机内部集成有Flash控制器,可以采用外部编程器进行烧写,也可以利用自己的程序修改Flash的内容,且不用外加编程电压。在进行系统设计时,可以
[单片机]
FIFO芯片和单片机实现的图像采集系统
引言 在单片机应用系统中,由于图像采集速度、程序存储器和数据存储器的寻址空间的限制,要完整存储30 fps、640×480像素大小的一幅图像是相当困难的。本文运用较高性能的16位飞思卡尔单片机在超高频的情况下直接采集图像,也只能采集到每行320个像素,丢失图像,无法获得一幅完整的图像。本文通过在图像采集过程中增加FIFO芯片AL422B较好地解决了这一问题,相对于采用昂贵的DSP而言,降低了图像采集系统的成本。 1 单目点光源测距原理 野外作业时,需要在运动中知道前方标杆和观察点之间的距离。本文将标杆制成等间距红外点光源标杆,满足了基于单帧静态图像的小孔成像原理测距模型要求,减少了图像处理量,提高了测量的实时性、全天候性。H
[单片机]
单片机的单CPU仿真器的设计
摘要:本文基于对8051单片机存储空间结构的深层次分析,提出了一种基于单片机的单CPU仿真器设计方案。该方案实用廉价,工程实践性强,可用于设计新的教学设备。 引言 单片机以它的廉价、体积小、可塑性强、稳定性高的特性,有着广阔的市场前景。 在用单片机开发产品时,虽然许多厂家设计了可编程ISP单片机,但是从安全与便捷方面考虑,单片机仿真器仍然是开发人员不可或缺的工具。单片机仿真器在产品开发阶段可用来替代单片机进行软硬件调试,从而迅速发现、纠正程序中的错误,大大缩短单片机开发的周期。但实际中仿真器过于昂贵,因此,设计制作出一款廉价且实用的仿真器有着广泛的市场。 传统的单片机仿真器硬件系统一般有三种实现方法。一、采用专用仿真的单片机
[工业控制]