当前位置:文档之家› 单片机程序设计方法总结

单片机程序设计方法总结

单片机程序设计方法总结
单片机程序设计方法总结

单片机程序设计方法总结

程序设计是单片机开发最重要的工作程序设计就是利用单片机的指令系统根据应用系统即目标产品的要求编写单片机的应用程序其实我们前面已经开始这样做过了这一课我们不是讲如何来设计具体的程序而是教您设计单片机程序的基本方法不过在讲解之前还是有必要先了解一下单片机的程序设计语言这里的语言与我们通常理解的语言是有区别的它指的是为开发单片机而设计的程序语言如果

您没有学过程序设计可能不太明白我给大家简单解释一下您知道微软的VB VC 吗VB VC 就是为

某些工程应用而设计的计算机程序语言通俗地讲它是一种设计工具只不过这种工具是用来设计计

算机程序的要想设计单片机的程序当然也要有这样一种工具说设计语言更确切些单片机的设计

语言基本上有三类:

1 .完全面向机器的机器语言

机器语言就是能被单片机直接识别和执行的语言计算机能识别什么以前我们讲过--是数字0

或1 所以机器语言就是用一连串的0 或1 来表示的数字比如MOV A 40H 用机器语言来表示就是

11100101 0100000 很显然用机器语言来编写单片机的程序不太方便也不好记忆我们必须想办法

用更好的语言来编写单片机的程序于是就有了专门为单片机开发而设计的语言

2. 汇编语言

汇编语言也叫符号化语言它使用助记符来代替二进制的0 和1 比如刚才的MOV A40H 就是汇编语言

指令显然用汇编语言写成的程序比机器语言好学也好记所以单片机的指令普遍采用汇编指令来编写

用汇编语言写成的程序我们就叫它源程序或源代码可是计算机不能识别和执行用汇编语言写成的程

序啊怎么办当然有办法我们可以通过翻译把源代码译成机器语言这个过程就叫做汇编,汇编工作现在

都是由计算机借助汇编程序自动完成的不过在很早以前它是靠手工来做的.

值得注意的是:汇编语言也是面向机器的,它仍是一种低级语言每一类计算机都有它自己的汇

编语言比如51 系列有它的汇编语言;PIC 系列也有它的汇编语言微机也有它自己的汇编语言它

们的指令系统是各不相同的也就是说不同的单片机有不同的指令系统它们之间是不通用的,这就

是为什么世界上有很多单片机类型的缘故了,为了解决这个问题人们想了很多的办法设计了许多的

高级计算机语言而现在最适合单片机编程的要数C 语言.

3 .C 语言—高级单片机语言

C 语言是一种通用的计算机程序设计语言,它既可以用来编写通用计算机的系统程序也可以用

来编写一般的应用程序,由于它具有直接操作计算机硬件的功能所以非常适合用来编写单片机的

程序与其他的计算机高级程序设计语言相比它具有以下的特点:

1 .语言规模小使用简单

在现有的计算机设计程序中C 语言的规模是最小的ANSIC 标准的C 语言一共只有32 个关键字

9 种控制语句然而它的书写形式却比较灵活表达方式简洁使用简单的方法就可以构造出相当复杂

的数据类型和程序结构

2 .可以直接操作计算机硬件

C 语言能够直接访问单片机的物理空间地址KEIL C51 软件中的C51 编译器更具有直接操作51

单片机内部存储器和I/O 口的能力亦可直接访问片内或片外存储器还可以进行各种位操作

3 .表达能力强表达方式灵活

C 语言有丰富的数据结构类型可以采用:整型\实型\字符型\数组类型\指针类型\结构类型

\联合类型\枚举类型等多种数据类型来实现各种复杂数据结构的运算,利用C 语言提供的多种运算符

我们可以组成各种表达式还可以采用多种方法来获得表达式的值从而使程序设计具有更大的灵活性,所以

单片机入门后尽量学习C语言。。。。。

二。单片机程序设计的步骤

单片机的程序设计通常包括根据任务绘制程序流程图编写程序及汇编等几个步骤

绘制流程图

所谓流程图就是用各种符号图形箭头把程序的流向及过程用图形表示出来绘制流程图是

单片机程序编写前最重要的工作通常我们的程序就是根据流程图的指向采用适当的指令来编写的下

面的图形和箭头就是我们绘制流程图用的工具,

绘制流程图时首先画出简单的功能流程图粗框图再对功能流程图进行扩充和具体化即对

存储器标志位等单元做具体的分配和说明把功能图上的每一个粗框图转化为具体的存储器或地址单

元从而绘制出详细的程序流程图即细框图下面举个例子给大家演示一下请看下面的程序主程序

LOOP:SETB P1.0

LCALL DELAY

CLR P1.0

LCALL DELAY

LJMP LOOP

子程序

DELAY MOV R7 #250

D1 MOV R6 #250

D2 DJNZ R6 D2

DJNZ R7 D1

RET END。

下面结合按键在实验板上做一下:

ORG 0000H

LJMP START

ORG 30H

START MOV SP #5FH

MOV P1 #0FFH

MOV P3 #0FFH

L1 JNB P3.2 L2;P3.2

JNB P3.3 L3 ;P3.3

LJMP L1

L2 CLR P1.0

LJMP L1

L3 SETB P1.0

LJMP L1

END

2 。分支结构程序的设计

亮LED1暗LED1

所谓分支结构就是利用条件转移指令使程序执行某一指令后根据所给的条件是否满足来改变

程序执行的顺序也就是本条指令执行完后并不是象顺序结构那样执行下一条指令而是看本条指令

所给的条件是否满足如果满足条件就跳转到其他的指令如果不满足就顺序执行当然也可以是满足

条件顺序执行而不满足条件跳转执行看十五课实验程序中的下面两条

L1 JNB P3.2 L2 ;P3.2 上接有一只按键它按下时P3.2=0

JNB P3.3 L3 ;P3.3 上接有一只按键它按下时P3.3=0

这就是分支结构的程序如果P3.2 为0 就转移反之就顺序执行当然也可以改成P3.2=0

顺序执行而P3.2=1 则转移不过此时的程序就要用JB 指令了在51 系列单片机中可以直接用于

分支程序的指令有JB JNB JC JNC JZ JNZ CJNE JBC 等这几条它们可以完成诸如正负判断

大小判断和溢出判断等等在分支结构的指令设计中大家必须注意.执行一条判断指令只可以形成

两路分支如果要形成多路分支就必须进行多次判断也就是多条指令连续判断下面给大家举两个

例子

A 单分支结构的程序实例

假设有两个数在内部RAM 单元的40H 和41H 中现在要求找出其中较大的一个数并将较大的数

存入40H 中而将较小的一个数存入41H 中根据程序的要求我们先画出程序的流程图

再根据流程图写出程序的源代码如下

MOV A 40H

CLR C

SUBB A 41H

JNC WAIT

MOV A 41H

XCH A 41H

MOV 40H A

WAIT SJMP WAIT

END

程序的原理请大家自行分析一下接下来再举一个多分支结构的实例看下面的程序

MOV A 20H

取数

JZ ZERO ;A=0

转移A=1 顺序执行

JB ACC 7 STORE ;A

为负数转移

ADD A #3 ;A

SJMP STORE

ZERO MOV A #20

STORE MOV 21H A

为正数则加3

自己画一下本例的流程图这里有一条指令给大家解释一下JB ACC.3 STORE ;ACC.3 表示累加器A

中的D3 位这条指令的意思就是看一下累加器中的D3 位是正还是负D3 是什么呢,在这里就是0 20H

的二进制10000000

3 循环结构程序的设计

循环程序是最常用的程序结构形式在单片机的程序设计中有时要碰到一段程序需要重复执行

多次的情况此时就要用到循环结构程序比如前面的实验--LED 灯闪烁程序的子程序DELAY MOV R7 #250 ;1

D1 MOV R6 #250 ;2

D2 DJNZ R6 D2 ;3

DJNZ R7 D1 ;4

RET ;5

END

在这段程序中为了延时需要多次执行DJNZ 指令此时若用循环结构程序就可以大大地简化程序

的设计减少程序占用的存储器空间循环结构指令一般有以下四个部分组成

A

初始化部分

初始化部分主要用来设置循环的初始值包括预值数计数器和数据指针的初值比如上例中的#250 就是预值数初值

B

循环处理部分

循环处理部分是程序的主体部分也称为程序体通过它可以完成程序处理的任务

C

循环控制部分

循环控制部分可以控制程序循环的次数并修改预值数或计数器和指针的值检查该循环是否执

行了足够的次数如果到了足够的次数就采用条件转移指令或判断指令来控制循环的结束比如上例

中的3 4 指令就是当R6 或R7 中的值为0 时就转移

C

循环结束部分

循环结束后必须返回一般用RET 或RETI 指令这里注意.以上四个部分中第一和第四部分

只能执行一次而第二和第三部分可以执行多次

在循环程序设计中循环控制部分是程序设计的关键环节常用的循环控制方式有计数器控制和条件控制两种计数器控制就是把要循环的次数即预值数放入计数器中程序每循环一次计数器1 一直到计数器的内容为零时循环结束一般用DJNZ 指令而条件控制方式常预先不知:用计数器控制的单重循环程序:用条件控制的单重循环程序125mS 的延时程序,比较左右两边的

的值就减

道要循环的次数只知道循环的有关条件此时就可以根据给定的条件标志位来判断程序是否继续一

般参照分支结构方法中的条件来判别指令并执行下面举几个例子来分别解释一下希望大家能以此类推

程序一

源程序如下

CLR A

MOV R2 20H

MOV R1 22H

LOOP ADD A @R1

INC R1

DJNZ R2 LOOP

MOV 21H A

这段程序的作用是从22H 单元开始存放一个数据块其长度存放在20H 单元中将数据块求和

要求将和存放入21H 单元中和不超过255 下面再举一个条件控制的循环程序

程序二

设字符串存放在内部RAM 的21H 开始的单元中以结束作标志要求计算出该字符串的长度并

将其存放在20H 单元中

源程序如下

CLR A

MOV R0 #21H

将地址指针指向21H 单元

LOOP CJNZ @R0 #24H NEXT

与SJMP COMP 找到结束

NEXT INC A

INC R0

不为0 计数器加1修改地址指针

SJMP LOOP

COMP MOV 20H A

试试看自己把上面两段程序的流程图画出来下面再看一个例子

存放结果

DELAY MOV R7 #250

D1 MOV R6 #250

D2 DJNZ R6 D2

DJNZ R7 D1

RET

END

这是一段约

DELAY

D1

D2

DJNZ R7 D1

RET

END

:MOV R7 #250 DELAY:MOV R7 #250:MOV R6 #250 D1:MOV R6 #250:DJ NZ R6 D2 D2 :MOV R5 #250 D3:DJNZ R5 D3 DJNZ R6 D2 DJNZ R7 D1

RET

END

从这里可以引出一个概念,程序的嵌套:什么是嵌套比如早上我骑自行车从家里到单位去上班当走到半路上时太太叫我去孩子学校拿点东西到了学校老师又叫我把学校的一台电脑修一下修好电脑一个朋友又打电话叫我去他那里拿了一本单片机与嵌入式系统杂志完了之后再去上班这就是生活中的嵌套在单的程序设计中也有类似的现象有时为了达到某个目的往往要在一段循环程序中再加入另一段循环程序这就是单片机的程序嵌套通常我们把一个循环体中不再包含循环的叫做单重嵌套如果一个循环体中还包括有循环则叫做多重嵌套上面的左边的程序就是单重嵌套而右边的程序则是多重嵌套另外须注意.在多重嵌套中不允许各个循环体互相交叉也不允许从外循环跳入内循环否则编译时会出错了解了结构化程序的设计下面再来看子程序的设计方法

2 子程序的设计方法

什么是子程序,如何设计子程序要解释这个问题让我们先同样从生活中的一个例子说起请

看下面的数学题目28* 33+65 +47* 33+65 +875* 33+65 在这道题中我们一般是怎么算的

也许大家都知道一般总是先把33+65 =98 代出来然后再用28+47+875 *98 来计算最后的结果

为什么会这样这是因为在这道题中我们多次用到了33+65 这个中间结果在单片机的程序设计

中有时也有这样的情况比如下面的程序

主程序

LOOP:SETB P1.0

LCALL DELAY

CLR P1.0

LCALL DELAY

LJMP LOOP

子程序

DELAY:MOV R7,#250

D1:MOV R6,#250

D2:DJNZ R6,D2

DJNZ R7,D1

RET END

这是大家非常熟悉的LED 灯延时程序在这段程序中两次调用到了DELAY 这段程序为了简化程序的设计我们就把DELAY 这段程序单独地列了出来这段列出的程序我们就叫它子程序而调用子程序的程序我们则叫它主程序LOOP 的程序段在主程序执行时每当要用到子程序时我们就用LCALL 指令来调用子程序子程序执行完之后必须返回主程序返回就用RET 指令这我们以前都讲过了这里不再重复

这里有个问题在子程序的执行过程中有时可能要使用到累加器和某些工作寄存器而在调用子程序前这些寄存器中可能已经存放有主程序的中间结果它们在子程序返回后仍要使用这样就需要在进入子程序之前将要使用的累加器和寄存器中的内容预先转移到安全的地方保存起来这叫现场保护当子程序执行完即将返回主程序之前还要将这些内容先取出来送回到累加器和原来的工作寄存器中这个过程叫恢复现场,保护现场和恢复现场通常使用堆栈即在进入子程序之前将需要保护的

数据压入堆栈在返回之前再将压入的数据弹出到原来的工作单元中恢复原来的状态看下面的例子

LOOP PUSH 03H 将03H 单元中的值压入堆栈保护

PUSH ACC 将累加器中的值压入堆栈保护

POP ACC 将ACC 中的值从堆栈弹出

POP 03H 恢复03H 单元中的内容

RET 从子程序返回

由于堆栈的操作是后进先出先进后出所以编写指令时必须把后压入堆栈的数据先弹出来

才能保证恢复到原来的状态在实际的程序设计中由于每个应用程序的不同还必须根据具体的情况来考虑是否需要保护哪些数据需要保护等等这就是单片机的堆栈为什么能够变化的原因关于堆栈的操作先讲这些1 2 3 4 5也算是对以前的总结吧

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇 实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。 单片机课程设计心得体会 在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会: 第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。 第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。 第三:程序不要只是看别人得,一定要自己写过才是自己的。开始

不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。 第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。 第五:在学习初期看别人的代码,学习别人的思路这个很有用。通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。第六:面对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。有的人看到新项目时就去找别人的然后抄一小段,自己在写几句,放在一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。 在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对

西南科技大学单片机原理实实验四及代码

2.1 实验四中断实验 一、实验目的 加深对MCS-51单片机中断系统基础知识的理解。 二、实验设备 Keil C单片机程序开发软件。 Proteus仿真软件 DP51-PROC单片机综合实验仪。 三、实验内容和步骤 内容: 利用外部中断输入引脚(以中断方式)控制步进电机的转动。要求:每产生1次中断,步进电机只能步进1步。 实验程序: 使用INT0的中断服务程序控制步进电机正向步进;使用INT1中断服务程序控制步进电机反向步进。 设计思路: ①主程序在完成对INT0和INT1的设置后,可进入死循环(等待中断请求)。 ②为便于实验观察和操作,设INT0和INT1中断触发方式为边沿。 ③步进电机的转动控制由外部中断的服务程序来实现。 ④当前步进电机的相位通电状态信息可以使用片内RAM中的一个字节单元来存储。 设计参考: ①主程序需要设置的中断控制位如下: IT0和IT1 外部中断触发方式控制 0=电平 1=边沿(下降沿) EX0和EX1 外部中断允许控制0=屏蔽 1=允许 PX0和PX1 中断优先级级别控制0=低级 1=高级 在同级别(PX0=PX1)时INT0的优先级高于INT1 EA 中断允许总控制0=屏蔽 1=允 许 ②外部中断服务程序的入口地址: 0003H 外部中断0 0013H 外部中断1 预习: 1)编写好实验程序。 2)根据编写的程序和实验步骤的要求制定调试仿真的操作方案。

实验单元电路: 1) 步进电机驱动电路。 步进电机共有4相,当以A →B →C →D →A →B …的顺序依次通电时,电机就会正转,若按相反的顺序依次通电,电机就会反转。每顺序切换一相(1步),电机旋转18°,切换的频率决定电机的转速(切换的频率不能超过电机的最大响应频率)。根据图 2.4中的电路,当BA (插孔)输入为高时,对应的A 相通电。 2) SW 电路 开关SW X 拨在下方时,输出端SWX 输出低电平,开关SW X 拨在上方时,输出端SWX 输出高电平。其中SW1和SW3具备消除抖动电路,这样,SW1或SW3每上下拨动一次,输出端产生单一的正脉冲(上升沿在前,下降沿在后)。 3) LED 和KEY 电路 步骤: 1) 在S : \ STUDY \ Keil 文件夹中新建Ex04文件夹(该文件夹用于保存本次实验的所 有内容),通过网上邻居将服务器上本次实验共享文件夹下的所有文件拷贝到S : \ STUDY \ Keil \ Ex04文件夹中。 2) 在Keil C 中创建一个新工程,新工程保存为S : \ STUDY \ Keil \ Ex04\Ex04.uv2,然 后选择单片机型号为Generic 中的8051。 图2.5 单脉冲电路原理图 +5V +5V 图2.4 步进电机驱动电路原理图 LED1 LED8 +5V 8 图2.6 LED 和KEY 电路 +5V 8

最新单片机重点知识点整理

1单片机内部RAM 256个单元功能划分 通用工作寄存器区:用于存放操作数及中间结果 位寻址区:作为一般RAM单元使用,进行字节操作,也可对单元中每一位进行操作 用户区:供用户一般使用 特殊功能寄存器区:共专用寄存器使用 同步通信,依靠起始位和停止位实现同步 异步通信,依靠同步字符实现同步 1.方式0 串行接口工作方式0为同步移位寄存器方式,多用于I/O口的扩展,其波特率是固定的,为fosc/12。TXD引脚输出同步移位脉冲,RXD引脚串行输入/输出。 2.方式1 在方式l时,串行口被设置为波特率可变的8位异步通信接口。发送/接收1帧数据为10位,其中1位起始位、8位数据位(先低位后高位)和1位停止位。 3.方式2 串行口工作为方式2时,被定义为9位异步通信接口。发送/接收1帧数据为11位,其中1位起始位、8位数据位、1位控制/校验位和1位停止位。控制/校验位为第9位数据。 4.方式3 方式3为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余同方式 3产品设计的步骤 1明确设计任务和性能指标2总体设计3硬件测试4软件设计5产品调试 4指令的寻址方式、分类,会举例 (1)立即数寻址指令本身直接含有所需要的8位或16位的操作数。 将此数称为“立即数”(使用#标明)。 MOV A,#5FH ;将(8位)立即数送累加器A (2)直接寻址指令直接给出了操作数的地址。 MOV A,3AH ;将RAM3AH单元内容送累加器 (3)寄存器寻址当所需要的操作数在内部某一个寄存器Rn中时,将此寄存器名Rn直接写在指令的操作数的位置上。 MOV A,R0 注意:寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7寄存器,所以rrr=111,既指令的机器码为:0EFH (4)寄存器间接寻址指令中含有保存操作数地址的寄存器Ri。 MOV A,@Ri ( i=0、1) 如:MOV R0,#3AH ;立即数送R0寄存器 (5)变址寻址;指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,和作为操作数地址。 MOVX A,@A+PC ;PC内容与A的内容相加得操作数地址并将此操作数送A

测度论基础知识总结

测度论基础知识总结 1.集合论 1.1 集合与基本运算 ·概念:具有一定性质的对象构成的全体(不严格定义)。中间含有的对象叫元素。 全集:要研究的问题涉及到的最大集合。 空集:没有任何元素的集合。 表达方法:{x(集合元素x)|x应该有的性质} ·元素与集合的关系:x A,x?A ·集合之间的关系 只有包含或者不包含 若对于任意元素x A,x B则A包含于B(证明就用这个方法),A是B的子集(A B 则为B的真子集) 包含的特殊情况相等:A=B就是A包含于B同时B包含于A 真子集:A包含于B但A B ·集合的运算 ①单个元素的幂集 对于一个集合X,它的幂集表示所有其子集为元素构成的集合。这种以集合为元素的集合,也叫集合族。 ②两个集合的运算 交:A B={x| x A且x B} 并:A B={x| x A或x B} 差:A\B(或写成A-B)={x| x A且x?B} 补:=U\A(U是问题要研究的全集) 于是有等式A\B=A 积:(直积)A×B={(x,y)| x A且y B }(把A、B中元素构成有序对) ③多个元素的运算 多个交表示所有以λ为角标的集合的并,要求λ,I称为指标集。 类似有多个并 注:可以是无穷个 【例】={x| x>},A={x| x>0},则A= ·集合的分析相关性质 ①上限集:一列集合{},定义上限集为。类似于数列的上极限。

②下限集:一列集合{},定义下限集为。类似于数列的下极限。 ③集合列的极限:当上限集等于下限集时极限存在,就是上限集(或下限集)。 ④单调集合列:若始终有包含于,也就是集合越来越大,则为递增集合列;反之, 若始终有,则为递减列。 若为递增列,则有极限=;若为递减列,则有=。 1.2映射 ·定义:X、Y是两个集合,对任意x X,存在唯一的y=f(x)Y与之对应,则对应法则f 为X到Y的一个映射,记为f:X→Y。 像集:对于X的一个子集A,像集{f(x)| x A}记为f(A),显然包含于Y 原像集:对于Y的一个子集B,原像集{x| x记为 ·满射:f(X)=Y,即Y中所有元素都是像 单射:X中不同元素一定对应Y中不同的像 双射:既是单射又是满射。双射是一一对应的映射。 ·逆映射:对于双射,建立一种Y到X的双射,将像映射到原像上。记为:Y→X ·复合映射:f:X→Y,g:Y→Z,它们的复合g o f:X→Z,写成g(f(X)) ·函数,一个(n维实数向量)到R(实数)上的映射 ·性质(映射与交并运算顺序可交换性) 对于f:X→Y,X若干个子集,Y若干个子集 f(U)=Uf() = f()包含于(只有这一个不一定等于!!!) 不等于的例子:A={1} ,B={-1},f(x)=|x|,则f(A B)f(A)f(B) = 用集合相等定义可证明。 1.3集合的势 ·对等:如果集合A和B之间可以建立双射,则A对等于B。记为A~B 性质:①A到B有单射→A与B子集对等 A到B有满射→B与A子集对等 ②A~B,B~C,则A~C(传递性) ③A~C,B~D,则A×B~C×D

单片机实验总结

单片机实验总结

程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有 1.试编写程序。统计片内RAM 30H~50H单元中FFH的个数,并将统计结果存51H。 mov r0,#30h //把30h赋给R0 mov r1,#00h //把00h赋给R1 loop: cjne @r0,#0ffh,next //把R0所指的地址里的数(地址30h中的数)与0ffh比较 inc r1 //若为0ffh则R1加1(计算0ffh的个数) next: inc r0 //若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址) cjne r0,#51h,loop //比较R0所存的地址与51h,若不等则跳回loop 继续执行 mov 51h,r1 //若相等(R0里的数就为51h,完成30h到50h的计数)将R1里的值赋到地址51h里,即地址51h 中存储着0ffh的个数 sjmp $ //等待 end 2、从片内RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。 mov r0,#30h //把30h赋给R0 mov a,@r0 //把R0所指30H中的数赋给a(a中就是地址30h中的无符号数) mov r1,21h //把21h中的数赋给R1 loop: inc r0 //R0加1(即R0将指向下一个地址) mov 30h,@r0 //把R0所指地址的数给到地址30h中 cjne a,30h,chk //比较a中的数与地址30h中的数的大小,若a中的数>30H中的数,则Cy=0;否则相反 chk: jc lop //判断Cy是否为1,若是,则执行下面程序,否则跳至lop 继续执行 mov a,@r0 //把R0所指地址中的数给a,即把最小数赋给了a lop: djnz r1,loop //R1减一,程序跳至loop继续执行,循环直至R1减到0 mov 20h,a //把a中的数赋到地址20h中 end 3、设片外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。 mov dptr,#2000h //将片外地址2000h给dptr movx a,@dptr //将片外地址2000h中的数赋给a anl a,#0f0h //将a中的数与0f0h与下,屏蔽低四位的数 movx @dptr,a //将屏蔽好的数送回到片外地址2000h中 end

51单片机20个实验-代码详细

第一章单片机系统板说明 一、概述 单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计以及电子设计比赛。 该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“单片机板+外围扩展板”结构,通过更换不同外围扩展板,可实验不同的单片机功能,适应了各院校不同的教学需求。 二、单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。以单片机板为母板,并且有I/O接口引出,可以很方便的完成所有实验。因此构成单片机实验系统。 1、主要技术参数 (1)MSC-51单片机板 板上配有ATMEL公司的STC89C51芯片。 STC89C51资源:32个I/O口;封装DIP40。 STC89C51开发软件:KEIL C51。 2、MSC-51单片机结构 (1)单片机板中央放置一块可插拔的DIP封装的STC89C51芯片。 (2)单片机板左上侧有一个串口,用于下载程序。 (3)单片机板的四周是所有I/O引脚的插孔,旁边标有I/0引脚的脚引。 (4)单片机板与各个模块配合使用时,可形成—个完整的实验系统。 三、母板简介 主要技术参数 (1)实验系统电源 实验系统置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的右上角为电源总开关,当把220V交流电源线插入主板后,打开电源开关,主板

(完整word版)单片机知识点总结

第一部分硬件基础 1、单片机的组成; 2、单片机的并行I/O口在使用时,有哪些注意的地方? 3、单片机的存储器;程序存储器和数据存储器的寻址范围,地址总线和数据总线的位数;数据存储器内存空间的分配;特殊功能寄存器区; 4、时钟及机器周期; 5、单片机的控制总线、地址总线及数据总线等。 例: 一、填空 1.MCS-51单片机有4个存储空间,它们分别是:、、、。 2、MCS-51单片机的一个机器周期包括个状态周期,个振荡周期。设外接12MHz晶振,则一个机器周期为μs。 3.程序状态字PSW由位组成。 4.在MCS-51单片机内部,其RAM高端128个字节的地址空间称 为区,但其中仅有个字节有实际意义。 5. MCS-51 系列单片机为位单片机,其数据总线为位,地址总线为位,可扩展的地址范围为。 6. MCS-51 单片机的4 个并行I/O 口若作为普通I/O 口使用时,输入操作分为读引脚和读锁存器,需要先向端口写“1”的操作是。 7. MCS-51 单片机的特殊功能寄存器分为可位寻址和不可位寻址两种,那么IE 为,TMOD 为。 8.通常MCS-51单片机上电复位时PC= H、SP= H、通用寄存器采用第组,这一组寄存器的地址范围 是 H。 9.MCS-51单片机堆栈遵循的数据存储原则。 10.在MCS-51单片机中,使用P2、P0口传送信号,且使用P0口来传送信号,这里采用的 是技术。 11.MCS-51单片机位地址区的起始字节地址为。

12.对于并行口在读取端口引脚信号时,必须先对端口写。13.PC的内容是。 14、MCS-51 单片机运行出错后需要复位,复位的方法是在复位引脚上加一个持续时间超过个时钟周期的高电平。 15、具有4KBytes 储存容量之存储器,其至少需具有根地址线。 二、问答 1.简述MCS-51 单片机的P0、P1、P2 和P3 口的功能。 2.MCS-51单片机的三总线是由哪些口线构成的。 3.MCS-51单片机的位寻址区的字节地址范围是多少?位地址范围是多少? 4. MCS-51单片机存储器在结构上有什么特点?在物理上和逻辑上各有那几个地址空间? 5.简述MCS-51单片机00H-7FH片内RAM的功能划分,写出它们的名称以及所占用的地址空间,并说明它们的控制方法和应用特性。 6.请写出MCS-51单片机的五个中断源的入口地址。 第二部分 C51程序设计 1、C51的指令规则;C51编程语句及规则; 2、C51表达式和运算符; 3、顺序程序、分支程序及循环程序设计; 4、C51的函数; 5、中断函数。 例: 1.程序的基本结构有。 2.C51的存储器模式有、、。 3.C51中int型变量的长度为,其值域为;unsigned char型变量的长度为位,其值域为。 4.C51中关键字sfr的作用,sbit的作 用。 5.函数定义由和两部分组成。 6.C51的表达式由组成。C51表达式语句由表达式和组成。

外测度的性质与计算小结

外测度的性质与计算 The properties and calculation of the outer measure 姓名: 学号: 学院:数学与信息科学学院 专业:数学与应用数学 指导老师: 完成时间: 外测度的性质与计算 【摘要】Lebesgue外测度是Lebesgue积分的基础,本论文主要论述了它的一些性质及相关的计算.首先,给出了Lebesgue外测度的定义;接着,指出和证明了外测度具有的非负性、单调性、次可数可加性、距离可加性、平移不变性这五大主要性质;同时给出了外测度的介值定理和一些其他的性质,并讨论了在一般情况下,外测度不具备可数可加性;然后讨论了可数集的外测度的性质,着重写出可数

江西师范大学11届学士学位毕业论文 集的外测度具有可数可加性;最后是与外测度计算相关的一些例题.【关键词】Lebesgue外测度,次可数可加性,距离可加性。

The properties and calculation of the outside measure 【abstract 】Lebesgue outer measure is the base of lebesgue integral, this thesis mainly discusses some properties and its related calculation. At first, give the definition of Lebesgue outer measure; then pointed out and proved the outer measure has nonnegative, monotonicity and second countable additive property , distance additive property,translation invariant property ,the five main properties; It also gives the outer measure mean value theorem and some other properties, and discusses the properties under the meaning of general point sets, the outer measure does not have countable additive property. Then discussed the property of outer measure of countable set, and emphatically write that outer measure of countable set has count additive property. And the last is some examples about outer measure computation. 【keywords 】Lebesgue outer measure, Second countable additive property , Distance additive property

单片机实训报告

单片机原理及应用 实训报告 班级: 学号: 姓名: 指导教师: 实训总成绩:

一、节日彩灯设计 题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。 原理图 程序代码: #include #define uchar unsigned char uchar tab[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; sbit S1=P1^4; sbit S2=P1^7; unsigned char i,j; delay(unsigned int x) { for(j=0;j

for(i=0;i<10;i++); } void main() { uchar i,b,d; while(1) {if (S1==0) {delay(50); if(S1==0); S1=b; b=0; {for(i=0;i<8;i++) { P2=tab[i]; delay(50); {if (S2==0) {delay(50); if(S2==0); S1=d; d=1; P2=0xff; }} } } } } } 设计思想总结 用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极

管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片机的ROM 进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯 题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。 原理图 程序代码 #include #include int lamp = 0xfe ; int cnt = 0; main() {P2 = 0xfe; TMOD = 0x01; TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ; ET0 = 1;

51单片机实例(含详细代码说明)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平, 即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

第二章 测度论的知识要点与复习自测

第二章 测度论的知识要点与复习自测 一、Lebesgue 外测度的知识要点: ◇ 熟练掌握Lebesgue 外测度的定义和外测度的基本性质(包括基本性质:非负性、单调性、次可数可加性;Lebesgue 外测度的特有性质:距离分离性); ◇ 会用定义或性质求一些典型集合的外测度(例如:n R 中至多可数集,区间,Cantor (三分)集,黎曼可积函数(特别是连续函数)图象等的外测度); ◇ 特别注意零测集的含义和性质【如n R 中的任何集合并上零测集或减去零测集外侧度不变;零测集的子集仍为零测集;至多可数个零测集的并集仍为零测集】。 自测题: 1、叙述n R 中Lebesgue 外侧度的定义及性质,并用定义和性质解决如下问题: (1)设n n Q R ?为有理点集,计算*n m Q 0=; (2)设n R E ?为至多可数集,计算* m 0E =; (3)设n ,R E F ?,* m 0E =,则()()***m m m \F E F F E ?==。 2、据理说明下面的结论是否成立:设n R E ?, (1)若E 为有界集,则* m E <+∞; (2)若* m E <+∞,则E 为有界集; (3)若*m E =+∞,则E 为无界集; (4)若E 为无界集,则* m E =+∞。 3、设n R I ?为区间,证明:*m I I =,其中I 表示I 的体积(注意I 分有界和无界 两种情况来证明);并利用此结论和外侧度的性质再解决如下问题: (1)设1[0,1]R P ??为三分Cantor 集,则* m 0P =;(注意三分Cantor 集的构造) (2)设()f x 为定义在1[,]R a b ?上的黎曼可积函数, {}2()(,)(),[,]R p G f x y y f x x a b ==∈?, ()f x 在[,]a b 的图像,则*m ()0p G f =;(注意黎曼可积的充要条件的使用) (3)设n R E ?有内点,则* m 0E >; (4)(外侧度的介值性)设1 R E ?为有界集,*m 0E >,则对任意* 0m c E ≤≤,存在1E E ?,使得,*1m E c =;(注意构造适当的连续函数,利用连续函数的介值性) (5)(外侧度的介值性的一般形式)设1 R E ?,*m 0E >,则对任意* 0m c E ≤≤,存在1E E ?,使得,*1m E c =。(注意:此结论要用到后面的等测包定理和单调递增可测集列的测度性质) 二、Lebesgue 可测集的知识要点: ◇ 熟练掌握Lebesgue 可测集的卡氏定义(即C.Caratheodory 定义)及等价 条件(如:余集的可测性;对任意的A E ?和c B E ?,总有()*** m A B m A m B ?=+),会用定义或等价条件来证明一些点集的可测性(例如:零测集,区间等); ◇ 熟练掌握可测集的并、交、差、余运算性质,并会熟练地运用这些性质来判断集合的可测性;

运动控制-M法T法测速单片机程序设计

M法、T法测速单片机程序设计 摘要 本设计为M法、T法测速的单片机程序设计。使用STC89C52单片机作为控制器,使用该单片机的外部中断和定时器对编码器的输出的脉冲进行采样来计算出电机的转速。可以使用按键输入来调整M法、T法测速法中Z、Tc和Tt等参数以及测速方法的选择,以此来增强本设计的适应性。参数选择结果和电机转速计算结果均显示在LCD1602上。 关键字:STC89C52,M法、T法测速,LCD1602,电机转速 Ⅰ

Abstract This design as m, t-law velocity measurement of single-chip computer programming. Using STC89C52 single-chip computer as the controller, using the microcontroller's external interrupts and timers for encoder output pulse is sampled to calculate the speed of the motor. Can be adjusted using touchtone m, t law Velocimetry parameters such as z, Tt and Tc, as well as in speed measurement method of choice, as a way to enhance the adaptability of this design. Parameter selection and calculation of motor speed results are available on LCD1602. Keywords:STC89C52,M、T method, the LCD1602, Motor speed Ⅱ

单片机实验总结

程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有 1.试编写程序。统计片RAM 30H~50H单元中FFH的个数,并将统计结果存51H。 mov r0,#30h //把30h赋给R0 mov r1,#00h //把00h赋给R1 loop: cjne r0,#0ffh,next //把R0所指的地址里的数(地址30h中的数)与0ffh比较 inc r1 //若为0ffh则R1加1(计算0ffh的个数)next: inc r0 //若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址) cjne r0,#51h,loop //比较R0所存的地址与51h,若不等则跳回loop 继续执行 mov 51h,r1 //若相等(R0里的数就为51h,完成30h到50h 的计数)将R1里的值赋到地址51h里,即地址51h中存储着0ffh的个数 sjmp $ //等待 end 2、从片RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。 mov r0,#30h //把30h赋给R0

mov a,r0 //把R0所指30H中的数赋给a(a中就是地址30h中的无符号数) mov r1,21h //把21h中的数赋给R1 loop: inc r0 //R0加1(即R0将指向下一个地址) mov 30h,r0 //把R0所指地址的数给到地址30h中 cjne a,30h,chk //比较a中的数与地址30h中的数的大小,若a 中的数>30H中的数,则Cy=0;否则相反 chk: jc lop //判断Cy是否为1,若是,则执行下面程序,否则跳至lop 继续执行 mov a,r0 //把R0所指地址中的数给a,即把最小数赋给了a lop: djnz r1,loop //R1减一,程序跳至loop继续执行,循环直至R1减到0 mov 20h,a //把a中的数赋到地址20h中 end 3、设片外RAM 2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。 mov dptr,#2000h //将片外地址2000h给dptr movx a,dptr //将片外地址2000h中的数赋给a anl a,#0f0h //将a中的数与0f0h与下,屏蔽低四位的数 movx dptr,a //将屏蔽好的数送回到片外地址2000h中 end 4、试编写程序,求出片RAM20H单元中“1”的个数,并将结果存入21H单

利用单片机AT89C52采用程序设计方法产生锯齿波

1 引言 本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz—10kHz的波形。通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。 2设计方案 2.1系统硬件设计概述 经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。 2.2、设计要求 1)、利用单片机采用软件设计方法产生四种波形 2)、四种波形可通过键盘选择 3)、波形频率可调

4)、需显示波形的种类及其频率 2.1.2方案设计与论证 1.2.1 信号发生电路方案论证 方案一:通过单片机控制D/A,输出四种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。但此方案成本高,程序复杂度高。 以上三种方案综合考虑,选择方案一。 1.2.2 单片机的选择论证 方案一:AT89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。 方案二:C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有

单片机实验代码总结

单片机实验代码集合(by fangyuan) 1.多字节累加程序: ORG 0000H LJMP MAIN ORG 0030H ;将加数和被加数送到指定地址 MAIN: MOV 20H,#45H MOV 21H,#74H MOV 30H,#67H MOV 31H,#28H ;低位相加 MOV A,21H ADD A,31H DA A MOV 42H,A ;高位相加 MOV A,20H ADDC A,30H DA A MOV 41H,A CLR A ADDC A,#0 MOV 40H,A SJMP $ END 2.数据交换实验 编写程序,实现以下操作: 【功能1】产生数组Hex1:0H、1H、2H、…0FH,存储到片内RAM区中,数组Hex1的首地址为30H。 【功能2】产生数组Hex2:0FH、0EH、0DH、…0H,存储到片外RAM区中,数组Hex2的首地址为3000H。 【功能3】将片内RAM数组Hex1与片外RAM数组Hex2交换内容。 代码: ORG 0000H Hex1 EQU 30H ;定义内部RAM数组首地址 Hex2 EQU 3000H ;定义外部RAM数组首地址

LJMP MAIN ORG 0030H MAIN: MOV SP,#4FH ;定义栈顶地址 MOV R7,#16 MOV R0,#Hex1 MOV DPTR,#Hex2 LCALL HEX1DE ;调用内部送数据函数 LCALL HEX2DE ;调用外部送数据函数 LCALL XCHDE ;调用交换函数 SJMP $ ORG 0100H ;内部送数据 HEX1DE: PUSH 00H PUSH 07H MOV A,#0 LOOP1: MOV @R0,A INC A INC R0 DJNZ R7,LOOP1 POP 07H POP 00H RET ;外部送数据 HEX2DE: PUSH 07H PUSH DPL PUSH DPH MOV A,#0FH LOOP2: MOVX @DPTR,A DEC A INC DPTR DJNZ R7,LOOP2 POP DPH POP DPL POP 07H RET ;交换子程序 XCHDE: LOOP3: MOVX A,@DPTR XCH A,@R0

51单片机实验报告

51单片机实验报告

实验一 点亮流水灯 实验现象 Led灯交替亮,间隔大约10ms。实验代码 #include void Delay10ms(unsigned int c); void main() { while(1) { P0 = 0x00; Delay10ms(50); P0 = 0xff; Delay10ms(50); } }

void Delay10ms(unsigned int c) { unsigned char a, b; for (;c>0;c--) { for (b=38;b>0;b--) { for (a=130;a>0;a--); } } } 实验原理 While(1)表示一直循环。 循环体首先将P0的所有位都置于零,然后延时约50*10=500ms,接着P0位全置于1,于是LED全亮了。接着循环,直至关掉电源。延迟函数是通过多个for循环实现的。 实验2 流水灯(不运用库函数) 实验现象 起初led只有最右面的那一个不亮,半秒之后从右数第二个led

也不亮了,直到最后一个也熄灭,然后led除最后一个都亮,接着上述过程 #include #include void Delay10ms(unsigned int c); main() { unsigned char LED; LED = 0xfe; while (1) { P0 = LED; Delay10ms(50); LED = LED << 1; if (P0 == 0x00) { LED = 0xfe; } } } void Delay10ms(unsigned int c)

(完整版)单片机原理及应用考试复习知识点

单片机原理及应用考试复习知识点 第1章计算机基础知识 考试知识点: 1、各种进制之间的转换 (1)各种进制转换为十进制数 方法:各位按权展开相加即可。 (2)十进制数转换为各种进制 方法:整数部分采用“除基取余法”,小数部分采用“乘基取整法”。 (3)二进制数与十六进制数之间的相互转换 方法:每四位二进制转换为一位十六进制数。 2、带符号数的三种表示方法 (1)原码:机器数的原始表示,最高位为符号位(0‘+’1‘-’),其余各位为数值位。 (2)反码:正数的反码与原码相同。负数的反码把原码的最高位不变,其余各位求反。 (3)补码:正数的补码与原码相同。负数的补码为反码加1。 原码、反码的表示范围:-127~+127,补码的表示范围:-128~+127。 3、计算机中使用的编码 (1)BCD码:每4位二进制数对应1位十进制数。 (2)ASCII码:7位二进制数表示字符。0~9的ASCII码30H~39H,A的ASCII码41H,a的ASCII码61H。 第2章80C51单片机的硬件结构 考试知识点: 1、80C51单片机的内部逻辑结构 单片机是把CPU、存储器、输入输出接口、定时/计数器和时钟电路集成到一块芯片上的微型计算机,主要由以下几个部分组成。 (1)中央处理器CPU 包括运算器和控制器。 运算电路以ALU为核心,完成算术运算和逻辑运算,运算结果存放于ACC中,运算结果的特征存放于PSW中。 控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。程序计数器PC是一个16位寄存器,PC的内容为将要执行的下一条指令地址,具有自动加1功能,以实现程序的顺序执行。 (2)存储器 分类: 随机存取存储器RAM:能读能写,信息在关机后消失。可分为静态RAM(SRAM)和动态RAM(DRAM)两种。 只读存储器:信息在关机后不会消失。 掩膜ROM:信息在出厂时由厂家一次性写入。 可编程PROM:信息由用户一次性写入。

相关主题
文本预览
相关文档 最新文档