单片机汇编与c语言40例_第1页
单片机汇编与c语言40例_第2页
单片机汇编与c语言40例_第3页
单片机汇编与c语言40例_第4页
单片机汇编与c语言40例_第5页
已阅读5页,还剩389页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.内好.灯

1.实空修务

4©4.1.1的云:aP1.0维口2崔一个族光

二根管L1,使L1杉彳停他一度一双,一度

-双的时向向隔为0.2初飞

2.右路腐理图

3¥M

0fHcA

歌。

11

P12

办2

P1D

P13H

F14徐

P1F7

P1:^

P1E

P1.,7A

P3

P3

P3

P3

P3

P3

P3

P3

…1•

©4.1.1

3.备.佞板£硬件色旗

把“单件机念佞”在臧中的P1.0桀C用身旗

修捷到“八路芨光二根管族5模快”巨域中

的L1桀Q2o

4.恁序《攵耕卤容

(1).延时套序的急耕方法

行为单修机的林金的执行的时向聂很

殖,故重大微秘•低,因此,成的患求的

内摩.时的陶隔为0.2秒,和对孑微勉•来

锡,的差大大,所以或幻杉以行耍一花

令时,漏人延时恁停,来已到成幻的患

求,包恒祥的延城恁序聂,“可侵封呢?

下而奥体会心反腐理:

/口⑥4.1.1所云的石英晶体为12MHz,

因此,1个机器周期为1微物

机器周期微秒

MOVR6,#202个机器周期2

D1:MOVR7,#2482个机器周期2

2+2X248=49820X

DJNZR7,$2个机器周期2X248

498

DJNZR6.D12个机器周期

2X20=4010002

因此,£面的延◎〃星序时向为

10.002mso

④以2可知,当R6=1。、R7=248时,

延时5ms,R6=2。、R7=248时,延时

10ms,以此为基本的刊时单包%本实经

尊求0.2秒•=200ms,10msxR5=

200ms,R5=20,延时孑恁序仝下:

DELAY:MOVR5,#20

D1:MOVR6,#20

D2:MOVR7,#248

DJNZR7,$

DJNZR6.D2

DJNZR5,D1

RET

(2).输出超制

4⑥1的5,当P1.0瑞G输出离也平,

即P1.0=1时,福提成光二根管的单而

导也他可知,这时芨尤二极管L1熄天;

专P1.0线0输出依右斗,即P1.0=。。九

成完二板管L1%;或仍可以使用SETB

P1.0兆公使P1.0端G输出鬲电平,使用

CLRP1.0族金使P1.0第Q输出假电

平。

5.程序框⑥

/口©4.1.2所云

©4.1.2

6.江编滁程序

ORG0

START:CLRP1.0

LCALLDELAY

SETSP1.0

LCALLDELAY

LJMPSTART

DELAY:MOVR5,#20;延时孑程水,延时0.2

D1:MOVR6,#20

D2:MOVR7,#248

DJNZR7,$

DJNZR6.D2

DJNZR5.D1

RET

END

7.C语言法程序

#include<AT89X51.H>

sbitL1=Pr。;

voiddelay02s(void)//延时0.2秘,孑夜序

{

unsignedcharij,k;

for(i=20;i>0;i——)

for(j=20;J>0;j一一)

for(k=248;k>0;k—);

voidmain(void)

while(1)

L1=。;

delay02s();

L1=1;

delay02s();

2.模板号关灯

1.安空修隽

仝®4.2.1所云,监视有关K1(崔在P3.0

器口£),用底完二根管L1(崔在单体机

P1.0绥夕2)罢5行关城心,仝果埠关合

2,L1鹿,丹关河有,L1熄天。

2.电略腐理©

:.<)”-.'4.,,一,JC1,二m(­•:)--■,….VT!«-,J—

•■•­|•'•■'"!■■「,-,•「,---,r-r•./j.-11:「:『),:】.-;::

2smZ二2

cC0Izm▼□9cT68D

VCTQao0IVv-wVWW

voo崽

VVv/vVuVuuVeHlO

EA7=E/v©/GZ

0oqxodNdZzZdZ

oCoJoooCddddd

ddddddd

0PI

XEiTo1

1nt1

/Saq/X2

【g

RSTo—zm▽

mcng档gggg

dddddddd

©4.2.1

3.备.佞板上硬仔修俵

(1).把“单库机5佞”在域中的P1.0绥夕用

名旗修搐到“八路底光二依您就5横侯”£

域中的L1端夕2;

(2).把“单降机多佞”8域中的P3.0维G

用导旗修涯到“㈤路施动号关”8域中的

K1绥夕£;

4.程序彳攵耕内宏

(1).埠关煲右的桧部)色彩

单件机对好关煲心的桧恻和对孑单库机耒

锡,聂〃单伟机的P3.。绥G输入借老,而

输入的稔%H右焉右年初依也斗苻科,当成

月有关K1加即输入焉也平,栩当号

关断仔,当施劫行关K1或下去,即输入依

电平,柳专月关闭合。单体机可以采用JB

BIT,REL或者聂JNBBIT,REL族令耒

宏成对埠关煲势的桧部)即可o

(2).输出加制

4图3的三,专P1.0瑞G输出离也斗,印

P1.0=1时,根据威光二根窗的单向导电传可

知,这时成光二根管L1熄双;专P1.0维G

输出徐电斗,即P1.0=。时,底光二机管L1

鹿;或仍可以使用SETBP1.0状令使P1.0

端G输出离电平,彼用CLRP1.0兆公像

P1.0端夕输出依也平。

5.恁序框⑥

©4.2.2

6.兀偏涵套序ORG00H

START:JBP3.QLIG

CLRP1.0

SJMPSTART

LIG:SETSP1.0

SJMPSTART

END

7.C语育渔彳条序

#include<AT89X51.H>

sbitK1=P3"0;

sbitL1=Pro;

voidmain(void)

i

while(1)

1

if(K1==0)

1

L1=0;//打旄

㊀Ise

L1=1;//打火

3.多路号关城心蓝三

1.家哙依为

©4.3.1所三,AT89S51单件机的P1.0

一P1.3搐㈤个底光二根管L1—L4,P1.4

-P1.75㈤个月关K1-K4,偏彩将冷关

的驻心反映到爱犬二根管2。(号关闭合,

对应的打鹿,仔关断有,对应的灯双)。

2.电路腐理⑥

qEZ

gE<--.

rolzm"S9LwG

caaaaaGou

vvvvVv2<Jr

s;/Kw/、LWSWWWW年

z寸99

0OZgsTTcnZzz

dddZZdZdZdZdZddd

1------I12MIZ

a口o-

x1且

&No怛

HX二

//1t冬

mTC

O一SS9

EECcEES

ddddddd30pFGND

IOUF

UI

AT89S51VCC

R]4.7K

GND

R447K

R547K

R6K

220220221GND

VCC

T_J

@4.3.1

3.电佞板2硬台修旗

(1.把“单降机名.佞”在域中的P1.0—

P1.3用导旗也涯到“八路底完二根管

旄云般肆“在掇中的L1—L4端匕£;

(2.把“单降机名倭”在域中的尸1.4一

P1.7用导旗修涯到“归路旗劫埠关”

3域中的K1-K4桀Q2;

4.转序42新内容

(1.行关煲心检恻

对孑有关城心检恻,相对单伟机耒锡,聂输

入关多,或仍可能选衿恻&个有关煲态,根

胡容个行关的城心必相应的族光二根管族

三,可以采用JBP1.X,REL或JNB

P1.X,REL兆金耒完成;也可以一泛传检部)

㈤路号关煲右,然后如臭族云,可以采用

MOVA,P1兆合一唬把P1绕口的煲心金

部短人,然石血高4色的煲心耒族三。

(2.输出加制

根据守关的煲右,曲成龙二极管L1一L4耒

就5,或幻可以用SETBP1.X恁CLR

P1.X花金来宓成,也可以采用MOVP1,

#1111XXXXB方注一次蓝三。

5.程序框囹

短夕散游到中

P1Acc

A”内容右彩4唬

Acc内容与FOH和或

Acc内容(M人P1夕

<l[endif]—>

1

,~~;-----

读P1口数据到Acc:

L,_二

Acc内容右移4次

/'i一

Acc内容与FOH相或

L_

Acc内容送入P1口

+----J

©4.3.2

6.方法一(兀偏游程序)

ORGOOH

START:MOVA,P1

ANLA,#OFOH

RRA

RRA

RRA

RRA

ORIA,#OFOH

MOVP1,A

SJMPSTART

END

7.方法一(C语多施卷序)

#include<AT89X51.H>

unsignedchar"temp;

voidmain(void)

while(1)

]

temp=P1»4;

•temp=七㊀mpIOxfO;

P1=temp;

8.方法二(江偏法程序)

ORG00H

START:JBP1.4.NEXT1

CLRP1.0

SJMPNEX1

NEXT1:SETBP1.0

NEX1:JBP1.5,NEXT2

CLRP1.1

SJMPNEX2

NEXT2:SETBP1.1

NEX2:JBP1.6.NEXT3

CLRP1.2

SJMPNEX3

NEXT3:SETBP1.2

NEX3:JBP1.7.NEXT4

CLRP1.3

SJMPNEX4

NEXT4:SETBP1.3

NEX4:SJMPSTART

END

9.方法二(C语言滁程序)

_pQ3iPQPfi一W-<#

A1fLL(Zoi

—-(OO_pdn

x-cn①HPcn①XQo

『L』H

-o5。4Smc

HUQd

UH①

00ni

))(△

vA

T

cQ.

)l

OO9

X

5

1

V

if(P1_6==0)

P1_2=0;

else

P1_2=1;

(

if(P1_7==。)

P1_3=0;

else

P1_3=1;

5

}

(

4./名灯的左皑右

1.成空修务

做单一灯的左彩右移,硬伸电路4.4.1

的5,八个底光二极管L1—L8分别M套

单体机的P1.0-P1.7崔匕2,输出“。”时,

底完二极管挖,号超时P1.0^P1.1->P1.2

—>P1.3~>----->P1.7Tpi.6-.......>P1.0度,重

复循环。

2.电路唐・理⑥

VCC

।{1G-

VCC

lOuF

R3

8

A

PloPOO/ADO

PO1/AD1

PO.2/AD2

Pl.3P0.3/AD3

Pl4PO4/AD4

2206

TPl5PO5/AD5

R6s'Pl6PO6/AD6

Pl7PO7/AD7

220ALE

R7PSEN

10

P3O/RXDP2.7/A15

P31/TXDP2.6/A14

P32ZiNT0P2.5/A13

P33/INTTP24/A12

P34/TOP23/A11

P3srriP22/A1O

P3.6/WRP2.1/A9

P3.7/RD-P2.0/A8

§

£攵

CO16

口二

C2…:12MH2上"

3OpF30*

GND

@4.4.1

3.2佞板2硬件修旗

把“单侨机$佞”在域中的P1.0-P1.7用8

为解旗修涯到“八路底光二极管蓝孑横快”

臣域中的L1—L8绥夕2,尊求:P1.0对应

需L1,P1.1对应需L2,.........,P1.7对应着

L8。

4.转序设计内容

成的可以迄用输出端仁族令MOVP1,A

或MOVP1,#DATA,H尊给累加器面

或常敢便,然区仅打2述的林金,即可如

到筋±怨制的劫6o

名次色出的敢胡聂彳同,奥体的故居仝下

表1的云:

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0锡

L8L7L6L5L4L3L2L1

11111110L1

鹿

11111101L2

鹿

11111011L3

%

11110111L4

鹿

11101111L5

11011111L6

鹿

10111111L7

%

01111111L8

鹿

表1

5.序框⑥

©4.4.2

6.兀偏施彩序

ORG0

START:MOVR2,#8

MOVA,#OFEH

SETBC

LOOP:MOVP1,A

LCALLDELAY

RLCA

DJNZR2,LOOP

MOVR2,#8

LOOP1:MOVP1.A

LCALLDELAY

RRCA

DJNZR2XOOP1

LUMPSTART

DELAY:MOVR5,#20;

D1:MOVR6,#20

D2:MOVR7,#248

DJNZR7,$

DJNZR6,D2

DJNZR5,D1

RHT

END

7.C语言涵程序

#include<AT89X51.H>

unsignedchari;

unsignedchar"temp;

unsign㊀dcho「a,b;

voiddelay(void)

{

unsignedcharm,n,s;

for(m=20;m>0;m—)

for(n=20;n>0;n—)

for(s=248;s>0;s—);

voidmain(void)

whil㊀(1)

"temp=Oxfe;

P1=temp;

delayO;

fo「(i=1;i〈8;i++)

{

。=七㊀mp«i;

b=temp»(8—i);

P1=alb;

delayO;

}

fo「(i=1;i<8;i++)

{

o=temp〉〉i;

b=temp«(8-i);

P1=alb;

delayO;

5.广名灯(利用血表方式)

1.岑•绘备隽

利用取表的方法,使端GP1做单一灯的变

化:左够2唬,右够2次,内越.2次(延时

的时的0.2)o

2.右路授理®

VCC

lOuF

R1

<^-gSQ-

R3

8

220A

R4POO/ADO

••~IPO1/AD1

37

220PO2/AD2

R5PO3/AD3至

35

<»——IPO.4/AD4

6

220PO5/ADS

7

R6PO6/AD6

••I------PO7/AD7

220ALE

R7PSEN

,1—(TT7L6P3O/RXDP27/A15

220P31/TXDP2.6/A14

R8P3.2HNTOP2.5/A13

<>"jP33/INT1P24/A12

220P34/TOP23/A11

R9P3.5TT1P22/A1O

—jP36/WRP2.1/A9

220P37/RD-P2O/A8

LJ

o

OJOYI□二6

C2——*_12MHg=—C3

3OpF______________3OpF

®4.5.1

3.备•倭板£破传色旗

把“单伟机备.倭”在域中的P1.0—P1.7

用8名解旗修堤到“八路底完二极管花

5横供”a6或中的L1-L8绕G2,尊

求:P1.0对应房O1,P1.1对应需

L2,..........,P1.7对一寿L8。

4.转序设计内容

在用表格选行程序径封的时候,患用以下

的是金耒交成

(1).利用MOVDPTR,#DATA16

的建合来位故据花豺离存器找列表的

月女。

(2).利用MOVCA,@A+DPTR的

然令,根漏望加器的脩再加2DPTR

的鱼,就可以俊程停封教器PC花到表

格内的患躯出的敢提。

因此,H患施加到恁建成一个表,而利用

MOVCA,@A+DPTR做躯恁的擦仔,就

可方便地处理一些裒经的加制幼仔,血表也

M室/口下⑥所亍:

5.恁序框⑥

©4.5.2

6.汇编滁程序

ORG0

START:MOVDPTR,#TABLE

LOOP:CLRA

MOVCA,@A+DPTR

CJNEA,#01H,LOOP1

JMPSTART

LOOP1:MOVP1,A

MOVR3,#20

LCALLDELAY

INCDPTR

JMPLOOP

DELAY:MOVR4,#20

D1:MOVR5,#248

DJNZR5,$

DJNNR4,D1

DJNZR3,DELAY

RHT

TABLE:DB0FEH,0FDH,0FBH,0F7H

DB0EFH,0DFH,0BFH,07FH

DB0FEH,0FDH,0FBH,0F7H

DB0EFH,0DFH,0BFH,07FH

DB07FH,0BFH,0DFH,0EF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论