8051单片机的数据手册8051的编程问题

单片机有什么区别
80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。 8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用
80C51是在8051的基础上发展起来的,也就是说在的发展过程中是先有8051,然后才有80C51的。 8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在89C51下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。 既然这两种单片机外形及内部结构都一样,那它们之间的主要差别在哪里呢? 单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。 8051系列单片机采用的是HMOS工艺:高速度、高密度; 80C51系列单片机采用的是CHMOS工艺:高速度、高密度、低功耗; 也就是说80C51单片机是一种低功耗单片机。
------分隔线----------------------------
1. 结构 (1) 中央处理单元( 8 位) 数据处理、测试位,置位,复位 位操作 (2) 只读存...
答:由于 I 2 C 总线器件均为 CMOS 器件,因此总线具有足够的电流驱动能力。总线上扩...
8051 单片机是个完整的单片微型计算机。芯片内部包括下列硬件资源: (1) 8 位 CPU ...
问题. MCS-51单片机的I/O口有什么特点? 解答:8051单片机的4个I/O口在结构...
问题. 8051单片机的控制总线信号有哪些?各有何作用? 答案:控制线一共有6条: (1...
单片机内部有一个 8 位的 CPU ,同时知道了 CPU 内部包含了运算器,控制器及若干寄存...豆丁微信公众号
君,已阅读到文档的结尾了呢~~
8051单片机重点,单片机,单片机学习网站,郭天祥十天学会单片机,怎样快速学会单片机,单片机编程入门,avr单片机,pic单片机,单片机最小系统
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
8051单片机重点
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口导读:浙江师范大学单片机原理及应用研究中心,编程将片内RAM的40H~60H单元中内容送到片外RAM以3000H开始的单元中,编程计算片内RAM区30H~37H的8个单元中数的算术平均值,试编程统计其中正数、负数、零的个数,已知8051单片机系统时钟频率为6MHz,试编程实现之,在8051单片机中,请编程使P1.0和P1.1分别输出周期为2ms和500ms的方波,在一个80C51单片机与一片DAC0浙江师范大学 单片机原理及应用研究中心 Zhejiang normal university 编程将片内 RAM 的 40H ~ 60H 单元中内容送到片外 RAM 以 3000H 开始的单元中。ORG 0000H
MOVX @DPTR,A
INC DPTR MAIN: MOV R7,#20H
DJNZ R7,LOOP
MOV R1,#40H
MOV DPTR,#3000H
LOOP:MOV A,@R1 编程计算片内 RAM 区 30H ~ 37H 的 8 个单元中数的算术平均值,结果存放在 3AH 单元中ORG 0000H
DJNZ R3,LP2
MOV R3,#03H
ORG 0030H LP3: CLR C MAIN: MOV R0,#30H
MOV R1,#00H
MOV R2,#00H
MOV R3,#07H
MOV A,R2 LP2: MOV A,@R0
DJNZ R3,LP3
MOV 3AH,R2
END LP1: INC R0 设有 100 个有符号数,连续存放在片外 RAM 以 2000H 为首地址的存储区中,试编程统计其中正数、负数、零的个数。
LJMP MAIN LOOP:
MOV DPTR,#2400H
MOV A,#07H
MOVX @DPTR,A
MOV DPTR,@2450H
MOV A,#06H
MOVX @DPTR,A
MOV 30H,#24H
MOV 31H,#00H
MOV 32H,#25H
MOV 33H,#00H 请写出INT1为低电平触发的中断系统的初始化程序 ORG
MAIN: SETB
已知 8051 单片机系统时钟频率为 6MHz ,请利用定时器 T0 和 P1.2 输出矩形脉冲,其波形如 图 P3.1 所示,试编程实现之。 R2,#51H DPH,30H DPL,31H A,@DPTR DPH,32H DPL,33H @DPTR,A 31H 33H R2,LOOP $ 浙江师范大学 单片机原理及应用研究中心 Zhejiang normal university ORG 0000H
LJMP START
START: MOV SP,#60H
MOV TMOD,#02H
MOV TH0,#0E7H
MOV TL0,#0E7H
SETB TR0 HIGH0: SETB P1.2
HIGH1: JBC TF0,LOW0
AJMP HIGH1
LOW0: MOV R7,#7
LOW1:JBC TF0,LOW2
LOW2:DJNZ R7,LOW1
AJMP HIGH0
在 8051 单片机中,已知时钟频率为 12MHz ,请编程使 P1.0 和 P1.1 分别输出周期为 2ms 和
500 ms 的方波
选择T0工作于方式1定时500μs fosc=12MHz16(2-X)×1μS=500μs
X=CH 程序如下:
ORG 1000H 待 MOV TMOD,#01H MOV TH0,#0FEH MOV TL0,#0CH SETB
;2ms=4×500μs D500: JBC TF0,D2
;500μs到清TF0,转移 AJMP
;50μs未到,等D2: CPL P1.0 MOV TH0,#0FEH
;重装初值 MOV TL0,#0CH
;4次未到,转D500 CPL P1.1 AJMP DEL
;4次到,转DEL SJMP $
END 机器周期T??6s?1?s6fosc12?10 在一个 80C 51 单片机与一片 DAC0832 组成的应用系统中, DAC0832 的地址为 7FFFH , 输出 电压为 0 ~ 5V 。试画出有关逻辑电路图,并编写产生矩形波,其波形占空比为 1:4 ,高电平为 2.5V ,低电平为 1.25V 的转换程序。 图5.19
5.19题逻辑电路图 当VO=2.5V时,D=80H;VO=1.25V时,D=40H。
程序如下:ORG 0000H
MAIN: MOV DPTR,#7FFFH
NEXT: MOV A,#80H
MOVX @DPTR,A
ACALL DELAY
MOV R4,#04H
MOV A,#40H
MOVX @DPTR,A
LOOP: ACALL DELAY
DJNZ R4,LOOP
DELAY: ……
包含总结汇报、专业文献、IT计算机、办公文档、文档下载、应用文书、人文社科、旅游景点、党团工作、资格考试、外语学习以及单片机原理及应用-课后作业-编程题浙江师范大学(电子工业出版社)等内容。
相关内容搜索单片机程序是这样运行的!-嵌入式系统-与非网
从上知道,在上电的那一刻,的程序指针会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows,Linux系统启动了。
如果将操作系统看作是在处理器上跑的一个很大的裸机程序(就是直接在硬件上跑的程序,因为操作系统就是直接跑在CPU上的,这样看待是可以的,不过这个裸机程序功能很多,很强大),那么操作系统的启动很像MCU程序的启动。前者有一个很大的初始化程序完成很复杂的初始化,后者有一段不长的汇编代码完成一些简单的初始化。这一点看,它们在流程上是很相似的。
如果是系统上的程序启动呢?它们是由系统来决定的。Linux上在shell下输入./p后,首先检查是否是一个内建的shell命令;如果不是,则shell假设他是一个可执行文件(Linux上一般是elf格式),然后调用一些相关的函数,将在硬盘上的p文件的内容拷贝到内存(DDR RAM)中,并建立一个它的运行环境(当然这里边还有内存映射,虚拟内存,连接与加载,等一些其他东西),准备执行。
由以上可知,单片机上的程序和平时在系统上运行的程序,在启动时差异是很大的(如果将程序调用main以前的动作,都抽象为初始化的话,程序的启动可以简化为:建立运行环境+调用main函数,这样程序的执行差异是不大的)。因为单片机上跑的程序(裸机程序),是和操作系统一样跑在硬件上的,它们属于一个层次的。过去之所以没有区分出单片机上的程序和PC机上的程序的一些差异,就是没有弄明白这一点。
由此,以前的一些疑惑也就解开了。为什么在单片机上的程序不怎么使用malloc,而PC上经常使用?因为单片机上没有已经写好的内存管理算法的代码,而在PC上操作系统里运行的程序,libc已经把这些都做了,只需要调用就可以了。如果在单片机上想用动态内存,也可以,但是这些代码要自己去实现,并定义一个相应的malloc,有时候一些公司会给提供一些库函数可能会实现malloc,但是因为单片机上RAM内存十分有限,如果不知道它的运行方式,估计会很危险。同样,因为在PC的系统上运行的程序与逻机程序的不同,裸机程序不会有动态链接,有的只是静态链接。
关于程序在执行时,从哪里读取指令,哪里读取数据,也曾因为没有弄清楚系统上的程序和裸机程序之间的区别,而疑惑了很久。虽然在《微型计算机原理》课上知道程序运行时,从内存中读取指令和数据进行执行和回写。但是单片机上只有几K的RAM,而flash一般有几十K甚至1M,这个时候指令和数据都在内存中吗(这里指的内存仅指RAM,因为PC上我们常说的内存就是DDR RAM memory,先入为主以至于认为单片机上也是这样,还没有明白其实RAM和都是内存)?这不可能,因为课上老师只说内存,但是PC上内存一般就是DDR RAM,不会是硬盘,硬盘是保存数据的地方;由此类比时,自己把自己弄晕菜了,单片机的RAM对应于DDR RAM,那Flash是不是就对应于硬盘了呢?在CSAPP上明白了,PC上之所以都在DDR RAM上,是速度的因素。
硬盘的速度太慢,即使是即将到来的SSD比起DDRRAM,还是差着几个数量级,所以拷贝到DDRRAM中。这时,一个程序的代码和数据是连续存放的,其中代码段是只读区域,数据段是可读写区域(这是由操作系统的内存管理机制决定的)。运行时,再将它们拷贝到速度更快的SRAM中,以得到更快的执行速度。而对于,单片机而言工作频率也就几M,几十M,从Flash中与从RAM中读的差异可能并不明显,不会成为程序执行的瓶颈(而对于PC而言,Flash的速度太慢,DDRRAM的速度也是很慢,即使是SRAM也是慢了不少,于是再提高工作频率也提高不了程序的执行速度,所以现在CPU工作频率最快是在2003左右。一个瓶颈出现了。
为了提高CPU的使用率,换个角度想一下,既然不能减少一段程序的执行时间,就在同样的时间执行更多的程序,一个核执行一段程序,两个核就可以执行两段程序,于是多核CPU成为了现在的主流)。所以裸机程序指令就在Flash(Flash memory)中存放,而数据就放在了RAM中(flash的写入次数有限制,同时它的速度和RAM还是差很多)。更广泛说,在单片机上RAM存放data段,bss段,堆栈段;ROM(EPROM,EEPROM,Flash等非易失性存储设备)存放代码,只读数据段。本质上说,这和PC上程序都在RAM中存放是一样的,PC 上是操作系统规定了可读与可写,而单片机上是依靠不同的存储设备区分了可读与可写(当然现在的Flash是可读写的,如果Flash没有写入次数限制,速度又可以和RAM相差不多,单片机上是不是只要Flash就可以了呢(直接相当于PC上的DDRRAM)?这样成本也会比一个RAM,一个Flash低,更节省成本,对于生产商更划算)。
对于单片机的程序执行时指令和数据的存放与读取,理解如下:
对单片机编程后,程序的代码段,data段,bss段,rodata段等都存放在Flash中。当单片机上电后,初始化汇编代码将data段,bss段,复制到RAM中,并建立好堆栈,开始调用程序的main函数。以后,便有了程序存储器,和数据存储器之分,运行时从Flash(即指令存储器,代码存储器)中读取指令 ,从RAM中读取与写入数据。RAM存在的意义就在于速度更快。
无论是单片机也好,PC也罢,存在的存储器金字塔都是一致的,速度的因素,成本的限制导致了一级级更快的存储器的更快速度与更高的成本。应该说,对于它们的理解,就是存储器金字塔的理解。
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
去年7月,ST MCU即将封单的消息一出,引起了业内的普遍关注。如此一来,从小家电、健康量测到车用、物联网等相关市场,企业不得不找到好的替代。
发表于: 06:49:00
对大多数应用来说,人机界面、低功耗和无线连接集成是单片机(MCU)的三大前沿技术。而新型技术的推出都是以一定的应用为背景的。
发表于: 15:53:03
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减
发表于: 15:51:01
对于主电源掉电后需要继续工作一段时间来用于数据保存或者发出报警的产品,我们往往都能够看见产品PCB板上有大电容甚至是超级电容器的身影。大容量的电容虽然能延时系统掉电,使得系统在电源意外关闭时MCU能继续完成相应操作,而如果此时重新上电,却经常遇到系统无法启动的问题。
发表于: 12:01:14
现在大家使用PC时,输出选项都离不开鼠标,而它能全面的被推广,全靠下面这家公司。
发表于: 10:09:56
ARM7系列处理器是英国ARM公司设计的主流嵌入式处理器ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。ARM7没有MMU。
发表于: 16:50:18
X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC(机箱+xx主板+xx电源+xx处理器+(光驱选装)的领域。
发表于: 16:49:39
该设计运用三星公司的S3C2440,结合ICRoute公司的高性能语音识别芯片LD3320,进行了语音识别系统的硬件和软件设计。在嵌入式Linux操作系统下,运用多进程机制完成了对语音识别芯片、超声波测距和云台的控制,并将语音识别技术应用于多角度超声波测距系统中。
发表于: 16:44:14
日,角蜂鸟Horned Sungem嵌入式AI视觉套件在北京正式发布,这是触景无限科技(北京)有限公司基于“Plug and AI”理念打造的一款即插即用人工智能视觉套件,致力于为大众提供学习、使用及创造AI应用,定义AI生活的机会。
发表于: 17:39:47
1. 不要第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
发表于: 13:21:57
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号05-1502-1602-1602-1602-1602-1602-1602-1602-1602-16最新范文01-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-01

我要回帖

更多关于 8051单片机教程 的文章

 

随机推荐