首页编程单片机编程100例 单片机编程软件

单片机编程100例 单片机编程软件

编程之家2026-06-01983次浏览

各位老铁们,大家好,今天由我来为大家分享单片机编程100例,以及单片机编程软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

单片机编程100例 单片机编程软件

急寻单片机制作实验报告

用单片机制作可编程控制器实验

韦志诚

(华东船舶工业学院机械系.江苏镇江212003)

摘要:分析PT.C的运行原理系统程序的安排.以及用户程序的编译方法.少{在此基础上说明如何用

单片机制作可编程逻辑控制器。

关键词:中一片机;可编程逻辑控制器

单片机编程100例 单片机编程软件

中图分类号:T P 273文献标识码:13文章编号:1006 7167( 2003) 01-0056-05

Using Single Chip Computer to Fabricate PLC

l}Fl 77.1-C}7.}1Zba

(Dept.of Mechanical Eng二East China Shipbuilding Tnst二7,henjiang 212003, China)

Abstract: This paper discussed the principle of PT.C and the method to transform PT.C command to CP[丁con

mand, and explained how to fabricate PT.C by using single chip computer.

单片机编程100例 单片机编程软件

Key words: single chip computer, programmable logical controller(PT.C)

在普通高校机械系机床电气控制技术》课程中.

可编程控制器是一项很重要的教学内容.为了配合该

课程的教学一般都开设相应的P1.C实验。

我院机械系实验室也配各了GE公司、二菱公司

等厂商生产的可编程控制器.供学生实验使用。这对学

生掌握可编程控制器的应用技能.起到了很好的作用。

在历届实验教学过程中.不少学生J{不满足少

P1.C的应用.常常提出如卜问题:`}'1.C的硬件是怎样

构成的?"}'1.C的运行程序是怎样编制的?”前一个问

题教课}J中有些简略介绍.后一个问题往往是生产厂

商不公开的技术.因此不好向学生解释。

为了解决这个问题.笔者结合单片机实验.尝试用

51系列单片机8031来实现P1.C的功能.以满足学生

的要求。

用户

图1 PLC硬件组成框图

P1.C运行时.程序执行过程如图2.巡回扫描I

P1.C的基木工作方式。

系统程序用户程序

1 PLC的构成

P1.C的硬件组成框图如图1:

P1.C的软件应包括系统软件和应用软件两部分。

系统软件有以卜功能:(1)系统配置及初始化;

}2)系统自诊断;}3)命令识别与处理;(4)用户程序

编译;(5)模块化r程序及调用管理。

应用软件即用户用P1.C程序语言编写的应用程

序。它是根据预期的控制功能编写的.可随时修改。

图2 PLC不TlY执行流程

如果一个单片机系统可作为P1.C运行.关键碑

该系统能够认识”用P1.C语言编写的命令。其实单)

机系统只认得机器码.因此.若能把P1.C命令编译丈

单片机相应的机器码.此系统就能作P1.C运行了。

2 PLC命令到单片机指令的编译

在机床电气控制中通常都作一些逻辑控制P1.C

在该领域的应用也以逻辑控制居多。卜而仅讨论如何

实现这些逻辑控制功能。

组成简易P1.C的单片机系统如图30

+5V

X000

茎O(i7

XI)日)

XOL7

YIf?I1

vnz}

图3组成PLC的最小单片机系统

用8255的PA口.PR口作为输入端.分别定义为在8031芯片的内部存储器中有一个位寻址区.共

X 000 X 007和X010 X017; PC口作为输出端.定义为有128个可寻址位.地址编号为OOH 7FH.它们正好

Y020 Y027。按P1.C系统惯例.编号为8进制数。木可以用来作为P1.C的输入、输出映像寄存器.以及其

文只讨论简易系统.所以输入部分略去了光电祸合电它P1.C兀件的映像寄存器。为简便起见.定义输入中-

路.输出部分略去了继电器电路。兀X 000 X 007对应的可寻址位为OOH-07H, XO10-

通常P1.C应该有若干内部继电器M.定时器T X017为lOH-17H,输出中一兀Y020 Y027为20H-

和计数器C等。现只定义16个内部继电器M 130- 27H。对」几内部继电器M130 M137,M140 M147.定时

M137.M140 M147.还有4个定时器T 050 T 053和4器T 050 T 053和计数器C 054-(. 057等.也用CPU内

个计数器C 054-(. 057。这里N_把X 000, Y 020等输入、部RAM的可寻址位与之一一对应。

输出中一兀.以及内部继电器M.定时器T.计数器C等列出内部RAM的地址分配表如表to

称为P1.C兀件。

表1 8031内部RAM地址分配表

20H OOH/X000 OIH/X001 02H/X002 03H/X003 04H/X004 OSH/X005 06H/X006 07H/X007

IOH/X010 I IH/X01 I 12H/X012 13H/X013 14H/X014 ISH/X015 16H/X016 17H/X017

20H/Y020 21H/Y021 22H/Y022 23H/Y023 24H/Y024 25H/Y025 26H/Y026 27H/Y027

30H/VI 130

31H/VI 131

32H/VI132 33H/VI133 34H/VI134 35H/VI135 36H/VI136

37H/VI 137

40H/VI 140

41H/VI 141

42H/VI142 43H/VI143 44H/VI144 45H/VI145 46H/VI146

47H/VI 147

SOH/T 050

58H/T 050

S I H/T O51

59H/T OS I

52H/T 052

SA H/T 052

53H/T 053

SBH/T053

54H八:054

SC H/C 054

SSH八

SDH/(

56H八

SEH/(

57H八:057

SF H/C 057

H H H H H H H H H H H H H HH

21 22 23 24 25 26 27 2829叭2B鱿21) ZEZF

SOHT 050常数

58HT050 i1数

SIHTO51}'数

59HT051 i1数

52HT052}'数

SAHT052 i1数

53HT 053常数

SBHT053 i1数

54H C 054常数

SCHC054 i1数

SSHCO55常数

SDHCO55 i1数

56HC056常数

SEHC056 i1数

57HC057常数

SFHC057 i1数

表中每个输入、输出l从.内部继电器分别对应一

个可寻址位。Ifn每个定时器.计数器分别对应两个可寻

址位还对应两个字节存储单兀。

对应」几P1.C的逻辑控制功能.CPU芯片8031一

般是用位操作指令来进行运算的。卜边讨论如何把

P1.C命令编译成8031位操作指令码。

先看一条简中一的P1.C

二菱系列可编程控制器。

X000

程序。程序的编制方法参照

比如:

X000

Xool

丫020

丫020

日一—

日/一一一

这条程序很简龟P1.C命令为1. D X 000, O U T

Y 0200其逻辑关系为:

Y 020=X 000

即直接把输入端的状态送到输出端.无须运算。

再看一条控制电动机起动、停止的P1.C程序:

X000 Xool丫020

第一条PLC命令A031指令A031机器码

LDI X000 M0VC,OOII A200

CPL r. r3

机器码为3字节。

又如定时器回路:

X000 T 050

日一—(>ICloo

一习一/一—

日({2口

P1.C命令为1,D X000, OR Y020, AN1 X001,

OUT Y020.逻辑关系如卜:

Y 020=(X 000+Y 020)*X 001

显然一般单片机系统不能处理这个关系式。

假如输入扫描己将输入端状态扫入其对应的映像

寄存器中.那么上述逻辑关系式可转化为:

(20H)=l(OOH)+(20H)」*(O1H)

输入、输出单兀分别用它们的映像寄存器取代.地

址山表1确定。这样.中一片机系统就能够实现这条逻辑

运算了。

完成这条逻辑运算所需要的8031指令及机器码

与P1.C命令有如卜对应关系:

PLC命令A031指令A031机器码

L P X 000 M0VC, 0011 A2 QQ

O R I 020 O R L C, 2011 72 20

ANI X001 ANL C,/0111 P}0 O1

OLT丫020 M 0V 2011, C 92 2Q

只要把P1.C命令转换成右侧的机器码.输入到图

3的用户存储器6264中.即可执行上边这条程序了。

先山系统程序将输入端状态扫入其对应的映像寄存器

中.然后执行用户程序.再山系统程序把结果扫描到输

出-W},。

当输入X 000接通时.输出Y 020接通.对应的发

光一极管亮;X 000断开.输出仍山Y 020的接l从保持;

只有X 001接通时.输出Y 020才断开。

上边有卜划线的数字是与X,Y,M,T,C等P1.C

兀件号对应的8031内部RAM可寻址位地址.山表1

确定。在这里.它正好与P1.C的兀件号相符。

因此.根据P1.C命令及X,Y,M等兀件的编号.

即可转换成相应的机器码和映像寄存器地址。

分析P1.C命令及相应的8031指令.会发现P1.C

命令多半可转换为2字节机器码.Ifn有的命令则转换

为3字节、4字节、甚至多字节机器码必须区别对待。

PLC命令A031指令A031机器码

L P X 000 M0VC, OOI I A 2 00

OCT 1050 M0V SAIL C 92 5A

K 100 M 0V 50II#(4II 75 50(4

其中与输入时间常数命令对应的机器码为二‘

节。

位58H也是与T 050对应的可寻址位.它用来

记T 050的输入状态.Ifn位50H则表示T 050的输{

状态。还有字节单兀50H用来存放T 050的定时常鲜

#64H是十进制数100转换成的十六进制数。

再看比较复杂的块JI联回路:

X000 Xool丫020

川一仁(’

这条P1.C程序是将上一分支回路的运算结果

卜一分支回路的运算结果相或后送到输出端.因此)

先把上一分支回路的运算结果保存起来.然后才能J

行卜一分支回路的运算.否则就会造成逻辑混乱。所}

简中一地套用前述IJD命令的编译方法就不行了。

根据P1.C编程经验.不管有无分支回路.每档,

形图程序总是以1.D或1.D1命令开始的。我们可以二

1.D,1.D1命令编译程序的开头处加一条8031指令.:

位运算器C的状态(即上一分支回路的运算结果)’

存起来.等遇到块步{联0RT3命令时再取出来和卜

分支回路的运算结果相或.这样就不会造成逻辑混l

了。可以采用指定专用位存储器寄存的办法.也可采)

专用字节存储器移位寄存的办法。参考资料[2],后

种方法较好。这里指定8031的片内存储器1FH中-

为专用移位寄存器.用来暂存位运算器C的状态。

这样一来.对」几有步{联分支回路的P1.C程序.)

需要的8031指令及机器码与P1.C命令有如卜对应

系:

PLC命令A031指令A031机器码

L P X 000 M0VA,1FII I;5 1F

RLC A 33

M()、

M()、

1FII, A

C, OOII

AND X001

T. D X 002

AND X003

()RR

0 T; T丫020

ANL C, OlII

M 0YA, 1FII

RLC A

M 0Y 1FII, A

M 0YC, 02II

ANL C, 03II

M 0YA, 1FII

RR A

M 0Y 1FII, A

ORL C,ACC.

MOY 20II, C

FS 1F

A 2 00

82 O1

DS 1F

33

FS 1F

A 2 02

82 03

DS 1F

03

FS 1F

72 L7

92 20

注意.第一条1.D命令对应的8031指令先把位运

算器C的状态(即上一分支回路的运算结果)存入

1FH中一兀的DO位。待到ORT3命令时.对应的8031指

令则把1FH中一兀的DO位状态存入累加器ACC的D7

位中。山J几该右循环指令不影响位运算器C.此时C的

状态仍为卜一分支回路的运算结果.这样C与ACC.7

相或就是总的运算结果。

为了处理JI联分支回路.1.D命令和ORT3命令对

应的机器码为7字节.If}J 1.D1则更多。

另外.第一条1.D命令对应的左循环指令在这里

无效。但为了编译方便.只要是1.D命令.或1.D1命令.

编译时都作左循环处理.包括前边的例r。

与ORT3命令对应的右循环指令又还原了上一分

支回路的运算结果.以便处理多分支JI联回路。

采用这种移位循环方法最多可以处理8路JI联分

支的P1.C程序。

关」几JI联块与JI联块的串联.这种情况要用到块

串联命令ANT3.可仿照上述办法处理。

通过以上分析.可以看出对J几不同的P1.C命令.

8031都有与之对应的操作码.Ifn随后的操作数则山相

应的P1.C兀件号确定。根据这个规律.把P1.C命令编

译成8031的机器码就不难了。

前边己经提到了定时器的编程.现在对定时器的

运行再作一些说明。

以T 050为例.表1列出了它的两个可寻址位为

50H和58H,前者存放它的输出状态.后者存放它的输

入状态。因为定时器的输出状态不仅仅山其输入状态

决定.还要取决」几计时是否到.所以每个定时器要,片用

两个可寻址位。另外还要有两个字节存储器50H和

58H.前者存放它的预置时间常数.后者用来作它的计

数器。

在系统程序中安排一个定时器中断.时标为0. 1

秒。运行中若检测到可寻址位58H(输入状态)为1.则

在中断程序中把字节存储器58H加to当其中的计数

与字节存储器50H中的预置数相等时则将可寻址位

50H(输出状态)置1。木例中常数为K 100.故T 050的

定时值为10秒。

木文只讨论用中一个存储器来计数.因Ifn定时范围

有限。若要扩大定时范围.则用双存储器来计数。

对J几计数器C 054-(. 057.可用外部中断实现其功

能。编程方法及系统程序的安排与定时器相似。

系统CPU在处理定时器、计数器时.需用字节操

作指令。所以在P1.C系统中.位操作指令和字节操作

指令都要用到。

关」几P1.C的主控命令MC,MCR.其实只是多一

条综合逻辑关系;还有常用的SFT,RST命令.用」几对

计数器置位、复位。这些都不难分析。

至」几FND命令.实际上是安排一条跳转指令.山

用户程序跳转到系统程序输出扫描的入口处去。这条

命令是必不可少的。

不难看出.只要适当安排P1.C的兀件号.步{在编

译时作时号”处理.表1中空白的内部RAM可寻址

位都是可以利用的。这就意味着.只用8031芯片内部

RAM.就可以把P1.C的兀件(X,Y,M,T,C等)做到

100个以上。

3结束语

笔者利用复H过去生产的一块MCS 51通用实验

板和一块24键,8只数码管的键盘显示器一试作了用

51中一片机制作可编程控制器实验。P1.C用户程序到

8031指令的编译在作为编程器的键盘显示器中完成.

对应的机器码顺序存入图3的6264中。Ifn P1.C的主

程序输入扫描、输出扫描、定时器中断、计数器中断等

则固化在2764中。所用的P1.C编程方法参照了二菱

系列产品.符合通用可编程控制器惯例。它的技术指标

女口卜:

输入1(点X000- X007. X010- X017

输出8点1' 000- 1' 007

内部继电器24点M 100- M 107. M 110- M 117

M 120-M 127

定时器4点T 050 T 053时标0. 1 s最人定时伯

25. 5s

i}一数器4点C 054-C 057最人i}一数伯255

编程命令LD LDI

AND ANI

OR ORI

OLT

M C M CR

ORP} ANP}

51;T R5T

nNn

输入程序步数soo

单片机实训总结范文5篇

单片机实训课程,是农业工程类专业非常重要的专业技术课,是后续专业实践课的基础,大家做好实训总结,总结更多的经验。下面是我给大家带来的单片机实训总结范文 _单片机实训工作总结,以供大家参考,我们一起来看看吧!

↓↓更多关于“实训总结”内容推荐↓↓

★单片机实训报告★

★单片机实训心得体会★

★实训总结报告范文★

★实训总结与心得体会★

★实习实训总结报告★

▼单片机实训总结范文篇一:

通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。

踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。

这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。

▼单片机实训总结范文篇二:

通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。了解了一些简单程序的录入,LED显示器、键盘、和显示器的应用和原理。

LED显示器:LED显示器是由发光二管组成显示字段的器件。通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。有段选码和和位选码。当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA电流;位线的电流应选择40-80MA。LED显示器的显示方式有动态和静态两种。7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。7289A的控制指令分为两类:8位宽度的单字节指令和16位宽度双字节指令;还有闪烁指令和消隐指令。7289A采用串行方式SPI总线与微处理器通信;7289A与AT89C52接口电路,在实际电路中无论接不接键盘,电路中连接到其各段上的8个 100千欧的下拉电阻均不可以省去,如果不接键盘而只接显示器可以省去8个10千欧电阻,若仅接键盘而不接显示器,可省去串入DP及SA-SG连线的8个220欧电阻,7289A还需要外接晶体振荡电路。液晶显示器简称LCD,其显示原理是用经过处后的液晶具有能改变光线传输方向的特性,达到显示字符和图形的目的。最简单的笔段式液晶显示器类似于LCD显示器,可以显示简单的字符和数字,而目前大量使用的是点阵式LCD显示器,既可以显示字符和数字也可以显示汉字和图形。如果把LCD显示屏、背光可变电源、接口控制逻辑、驱动集成芯片等部件构成一个整体,是的与CPU接口十分方便。

键盘:键盘是最常见的计算机输入设备,它广泛应用于微型计算机和各种终端设备上。计算机操作者通过键盘向计算机输入各种指令、数据,指挥计算机的工作。按照键盘的工作原理和按键方式的不同,可以划分为四种:机械式键盘采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。塑料薄膜式键盘键盘内部共分四层,实现了无机械磨损。其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。导电橡胶式键盘触点的结构是通过导电橡胶相连。键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。无接点静电电容式键盘使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。特点是无磨损且密封性较好。

按照按键方式的不同键盘可分为接触式和无触点式两类。接触式键盘就是我们通常所说的机械式键盘,它又分为普通触点式和干簧式。普通触点式的两个触点直接接触,从而使电路闭合,产生信号;而干簧式键盘则是在触点间加装磁铁,当键按下时,依靠磁力使触点接触,电路闭合。与普通触点式键盘相比,干簧式键盘具有响应速度快、使用寿命长、触点不易氧化等优点。无触点式键盘又分为电容式、霍尔式和触摸式三种。其中电容式是我们最常用到的键盘类型,它的触点之间并非直接接触,而是当按键按下时,在触点之间形成两个串联的平板电容,从而使脉冲信号通过,其效果与接触式是等同的。电容式键盘击键时无噪声,响应速度快,但是价格很高一些。

显示器:按照显示器的显示管分类CRT、LCD。按显示色彩分类单色显示器、彩色显示器。按大小分类通常有14寸、15寸、17寸和19寸,或者更大。显示管的屏幕上涂有一层荧光粉,电子枪发射出的电子击打在屏幕上,使被击打位置的荧光粉发光,从而产生了图像,每一个发光点又由“红”“绿”“蓝”三个小的发光点组成,这个发光点也就是一个象素。由于电子束是分为三条的,它们分别射向屏幕上的这三种不同的发光小点,从而在屏幕上出现绚丽多彩的画面。显示器显示画面是由显示卡来控制的。若仔细观察显示器上的文本或图像是由点组成的,屏幕上点越多越密,则分辨率越高。

屏幕上相邻两个同色点的距离称为点距,常见点距规格有0.31mm、0.28mm、0.25mm等。显示器点距越小,在高分辨率下越容易取得清晰的显示效果。电子束采用光栅扫描方式,从屏幕左上角一点开始,向右逐点进行扫描,形成一条水平线;到达最右端后,又回到下一条水平线的左端,重复上面的过程;当电子束完成右下角一点的扫描后,形成一帧。此后,电子束又回到左上方起点,开始下一帧的扫描。这种方法也就是常说的逐行扫描显示。而隔行扫描指电子束在扫描时每隔一行扫一线,完成一屏后再返回来扫描剩下的线,这与电视机的原理一样。隔行扫描的显示器比逐行扫描闪烁得更厉害,也会让使用者的眼睛更疲劳。完成一帧所花时间的倒数叫垂直扫描频率,也叫刷新频率,比如60Hz、75Hz等。

通过这几天的单片机的实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。通过实训,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,并且可以在今后的日常生活中灵活运用。

▼单片机实训总结范文篇三:

一实习目的

1.通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;

2.通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;

3.掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);

4.通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。

5.培养学生解决实际问题的能力,提高对理论知识的感性认识。

二实习意义

通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

三系统基本组成及工作原理

1系统基本组成

系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。

流水灯部分由单片机、键盘模块等组成;

四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;

按键功能部分通过按键控制流水灯部分、四位数码显示部分;

电子钟部分由单片机、键盘模块、液晶显示模块等组成;

使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;

模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。

2系统工作原理

本设计采用STC89C52RC单片机作为本系统的控制模块。单片机可把由ADC0809及单片机中的数据利用软件来进行处理,从而把数据传输到显示模块,实现阻值大小的显示。以数码管显示为显示模块,把单片机传来的数据显示出来。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。

对于模数转换部分,单片机89C51通过P0口的I/O线向ADC0809发送锁存地址以及复位、启动转换等信号,并查询转换状态。 ADC0809启动转换后,将0-8个通道一次输入的电压信号转换成相应的数字量,供89c51读取使用,并且将EOC置1供单片机查询转换状态。而滑动变阻器负责将阻值信号转换成电压信号,再送到ADC0809的八个通道。当单片机查询到转换结束后依次读取数据并按照现实的需要进行二进制转BCD码等处理最后控制显示电路显示出数字。其实现方式是:ADC0809转换来自3通道的阻值变化信号。80c51的P2口与ADC0809的输出相连用于读取转换结果,同时P0.0-P0.6作控制总线,向ADC0809发送锁存、启动等控制信息,并查询EOC状态。ALE经分频后给ADC0809提供时钟信号。P3.0和P3.1口用于向显示电路输出段码,P3.2-P3.7用于数码管的位选。

四系统硬件设计

结合本设计的要求和技术指标,通过对系统大致程序量的估计和系统工作的估计,考虑价格因素。选定AT89C51单片机作为系统的主要控制芯片,8位模拟转换器ADC0809进行阻值转换。逐次比较法A/D转换器是目前种类最多、应用最广的A/D转换器,其原理即“逐位比较”,其过程类似于用砝码在天平上称物体重量。它由N位寄存器、A/D转换器、比较器和控制逻辑等部分组成,N位寄存器代表N位二进制码。目前应用最广的逐次比较法A/D转换器有ADC0809。它是一种8路模拟输入8位数字输出的逐次比较法A/D转换器件。其主要性能指标和特性如下:

分表率:8位

转换时间:取决于芯片时钟频率,转换一次时间位64个时钟周期

单一电源:+5v

模拟输入电压范围:单极性0-+5v;双极性-5v-+5v

具有可控三态输出锁存器

启动转换控制位脉冲式,上升沿使内部所有寄存器清零,下降沿使A/D转换开始。

通过以上性能比较,我们不难看出ADC0809满足本设计的要求,所以本设计采用ADC0809作为A/D转换器

1按键电路设计

利用单片机的P1口扩展一个8位键盘。

2晶振与复位电路设计

本设计采用的是上电复位的形式,如图3.3所示,上电顺进RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,只要高电平能保持复位所需要的两个机器周期以上时间,单片机就能实现复位操作。晶振电路为单片机提供工作所需要的时钟信号。震荡频率越高,系统时钟频率也越高,单片机运行的速度就越快。其电路如图3.4所示。89C51的_TAL1和_TAL2两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,就构成了稳定的自激振荡器,本设计的震荡器频率为12MHZ。

3下载电路设计

4流水灯模块设计

5模数转换模块设计

6显示电路设计

本设计采用六位数码管。本系统采用共阳极动态扫描的方式连接。数码管的段码数据由89C51的P3.0-P3.1口送出,89C51的P3.2-P3.7输出位选通信号,只有被选中的那位数码管才会显示段码

7整体电路设计

五系统软件设计

1主程序设计

主程序采用分支结构,以状态号标识系统所处的状态。在上电初始化后即进入状态号的轮询扫描,状态号的值决定了分支程序的入口。其中分支程序分别为:AD转换模块(状态号为0),数字模块状态号为1),倒计时模块(状态号为2),电子钟模块(状态号为3),功能组合模块(状态号为4),流水灯模块(状态号为5)。

2功能子程序设计

2.1流水灯模块

流水灯模块利用单片机的P3口,通过给P3口的各位送低电平,相应的实现流水灯有规律的点亮。

2.2 30秒倒计时模块

30秒倒计时模块利用单片机的P3.0与P3.1口送相应的段控数据,P3.2-P3.7口送相应的位控数据。通过程序实现30秒倒计时。

2.3数字加减模块

利用数码管实现数字显示,通过加一键或者是减一键实现数字变量的加一或者减一,进而实现利用数码管显示加一键、减一键功能。

2.4电子钟模块

利用数码管实现时间显示,通过加一键或者是减一键实现小时变量或者是分钟变量的加一,从而实现调时功能。

2.5模数转换模块

对于模数转换部分,单片机89C51通过P0口的I/O线向ADC0809发送锁存地址以及复位、启动转换等信号,并查询转换状态。 ADC0809启动转换后,将0-8个通道一次输入的电压信号转换成相应的数字量,供89c51读取使用,并且将EOC置1供单片机查询转换状态。而滑动变阻器负责将阻值信号转换成电压信号,再送到ADC0809的八个通道。当单片机查询到转换结束后依次读取数据并按照现实的需要进行二进制转BCD码等处理最后控制显示电路显示出数字。其实现方式是:ADC0809转换来自3通道的阻值变化信号。80c51的P2口与ADC0809的输出相连用于读取转换结果,同时P0.0-P0.6作控制总线,向ADC0809发送锁存、启动等控制信息,并查询EOC状态。ALE经分频后给ADC0809提供时钟信号。P3.0和P3.1口用于向显示电路输出段码,P3.2-P3.7用于数码管的位选。

六实习总结、体会

本次单片机实习我们一共完成了个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。这次实习还使我理解了编写程序的一些技巧。单片机应用系统一般由包含多个模块的主程序和由各种子程序组成。每一模块都要完成一个明确的任务,实现某个具体的功能,如计算、接受、发送、延时、显示等。采用模块化程序设计方法,就是将这些具体功能程序进行独立设计和分别调试,最后将这些模块程序装配成整体程序并进行联合调试。模块化程序设计方法的优点:一个模块可以为多个程序所共享;单个功能明确的程序模块的设计和调试比较方便,容易完成;利用已经编好的成熟模块,将大大缩短开发程序的时间,降低开发成本。采用循环结构和子程序结构可以使程序的容量大大减少,提高程序的效率,节省内存。对于多重循环,要注意各重循环的初值和循环结束的条件,避免出现程序无休止循环的“死循环”现象;通过这次的实习我发现,只有理论水平提高了,才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这次实习十分有意义,这次实习我们知道了理论和实践的距离,也知道了理论和实践相结合的重要性。回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解,尤其是在学习使用proteus软件片编程和仿真时收获良多。通过这次单片机课程设计,还使我懂得了实践的重要性。同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!

▼单片机实训总结范文篇四:

通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正!

首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦!

单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是非常必要的。如:LED显示器、键盘和显示器的应用和原理。

在被刺实训中我们每个人通过一个八位流水灯的制作,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始平台的完善与成熟。只要你有想法,单片机就有可能让他成为现实。这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。这对我以后的工作一定会有帮助的。在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一厅的了解,这是一笔不错的收获。

通过这几天的试训,使我的感触很深,真实“条条大路通罗马”,要达到目的,不同的人就有不同的方法。只要你的方法不错!五花八门都可以,而且是各有特色。走出来的结果都有各自的独到之处。在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。

在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。感觉很欣慰,有一丝丝的甜意,几天的实训使自己的思维逻辑也有了小小的进步。

▼单片机实训总结范文篇五:

这是我第一次做单片机实验,说起来有一些紧张和新奇。在此之前我并没有接触过单片机,我本以为与之前的光学实验及其它实验差不多,可我进到实验室之后,我就改变了这个看法。

单片机实验要求的是一种思维的创新,而不是简单的重复老师所说的实验步骤。因此第一次实验,实验老师向我们讲解了CVAVR编译器的大体情况及使用方法和技巧,并简单的向我们示例——如何在CVAVR中编写一段程序。编完程序之后,知道我们如何使用AVRStudio达到将编好的程序输入到单片机中来使其运行。

之后老师让我们以组为单位合作编写一段程序,并使其运行。我们组想要编写一个跑马灯的程序。在第一次运行CVAVR时,我们组就遇到了一个麻烦,我们在建立一个新project文件那里出现了错误。在保存这个新project文件的时候,我们单击了Save,而不是Generate,SaveandE_it.因此它弹不出我们我们所需要的源程序。之后我们通过询问其他人解决了这个问题。在编程中,我们开始做的是两盏灯的交替闪烁,间隔时间是1000ms。在运用AVRStudio的时候,我们又犯了一个错误。在我们打开编译好的工程文件时,开始调试,在最后一步点击Finish时,弹出一对话框,问我们是否更新,然后我们单击了Yes。这导致了仿真器无法下次使用。这是由于实验室中的仿真器是盗版的,无法进行更新。

经过我们的不断努力,我们终于实现了简单的跑马灯的运行,便是两个灯地交替闪烁。我们感到兴奋极了。但是我们并没有满足于当前,我们又编写了三个灯地交替闪烁,四个及多个。当我们一步步实现我们的目的时,我得到莫大成就感和自信。

在这次实验中,我体会到了合作的重要性。一个人也可能实现这一系列的过程,但是要花费很多精力和时间。群策群力,分工明确,可以使我们更好、更快地完成我们的工作。在此期间,你可以更好知道自己的不足和缺陷,来得到改正。还可以知道自己的优势所在,把握好自己的优势。

单片机实训总结相关文章:

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

★单片机实训总结范文3篇

★单片机实验心得体会范文

★单片机实训报告范文

★单片机实训工作报告范文精选

★单片机实习报告范文

★单片机实验的心得体会

★单片机课程设计心得体会3篇

★实验总结5篇精选

★单片机设计的心得体会

var _hmt= _hmt|| [];(function(){ var hm= document.createElement("script"); hm.src=""; var s= document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();

学单片机步骤

使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。?

第一步:数字I/O的使用

使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

第二步:定时器的使用

学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

第三步:中断

单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。

以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。

第四步:与PC机进行RS232通信

单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。

USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!

第五步:学会A/D转换

MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用A/D转换功能的简单的例子是设计一个电压表。

第六步:学会PCI、I2C接口和液晶显示器接口

这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。

第七步:学会比较、捕捉、PWM功能

这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。

第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计????

学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。

到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了!!

关于单片机编程100例和单片机编程软件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

lol周年庆(LOL2026年周年庆)java使用教程 写代码新手教程