dickus单片机实验_第1页
dickus单片机实验_第2页
dickus单片机实验_第3页
dickus单片机实验_第4页
dickus单片机实验_第5页
已阅读5页,还剩56页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、数据传送实验 实验项目类型 : 设计型 实验时间: 2012.10.15一、实验目的1、掌握单片机的汇编指令系统及汇编语言程序设计方法。 2 、掌握单片机的存储器体系结构。3 、熟悉 Keil 软件的功能和使用方法。4 、掌握单片机应用程序的调试方法。、设计要求1 、编写程序将OOH-0FH16个数据分别送到单片机内部 RAM30H- 3FH单元 中。2 、编写程序将片内 RAM 30 3FH的内容传送至片内 RAM 4(-4FH单元中。3 、编写程序将片内 RAM 40H-4FH 单元中的内容传送到外部 RAM 4800H- 480FH单元中。4 、编写程序将片外4800H480FH单元内容

2、送到外部RAM 5800 580FH单元中。、编写程序将片外RAM 5800580FH单元内容传送回片内RAM 50H 5FH单元中、实验程序流程框图和程序清单流程图开始II,设賣梢环判Bi数尺M1DHf,叫取数据FW:丄t将A的唯恂这怕总所曲存的輪址鴨元中将FW的值传给尺1的值1将段0中电址与龙甲的世ROR1M_ JL - 一-陞命值倉或井判析昱否为? _.-f堵束结車程序一开諭軾戡搭启。招网所送数甘地址f3班期懒尺1设宣詭环到斷敦氏2=他i J将R1的内5?荐送对过氏给雜善指怦所指内容将田的绝L与做据指针分别自减_jL_尺空的值自績井科斯是否为馨_ 一-YI结束幵始设立融据心卜擀其捂向榊的

3、甘施址讹立为1W* 4放据盘曲的殖龍于禹中最戡擋忻拓向M2地址并旃山罰恒遥入判新尺2的蓿自竝#判圈是杏沟零-皓卑程序三程序四程序二 (开始应立戳据持针務良带向片 外所章内容苜嫌址希奩循坏剤斷蠹R2为JOH将敘据拾的值送给片內14址*同甘将数据指忡所拾内容地址柜片内地址自加U-料断尺2的也片穂并判断星否为车*LL r-F 结東程序五程序清单ORG0000HMAIN:MOVRO,#30HMOVA,#00HT1: MOV R0, AINCR0INCACJNE A, #10H, T1MOVR0,#3FHMOVR2,#10HMOVR1,#4FHT2:MOVA,R0MOVR1,ADECR0DECR1DJN

4、ZR2, T2MOVMOVMOVR2,R1,DPTR,#10H#4FH#480FHT3:MOVA,R1MOVXDPTR,ADECR1DECAMOVDPL,ADJNZR2,T3MOVDPL,#00HMOVR2,#10HT4:MOVDPH,#48HMOVXA,DPTRMOVDPH,#58HMOVXDPTR, AINCDPTRDJNZR2,T4MOVR0,#50HMOVDPTR, #5800HMOVR2,#10HT5:MOVXA,DPTRMOVR0,AINCR0INCAMOVDPL,ADJNZ R2, T5END四、实验总结 通过此次实验,熟悉了 kille 开发软件的使用,对单片机理解更深刻。 学

5、会了设计简单的程序, 把课堂上的理论内容与实践相结合, 学习起来更加有效率。五、实验思考1、说明 MCS-51 系列单片机对片内 RAM 和片外 RAM 存贮器各有哪些寻址方式? 答 : 片内 RAM 存储器的寻址方式: 1、寄存器寻址2、直接寻址3、寄存器间接寻址4、位寻址方式片外只能通过累加器 A 使用间接寻址2、说明指令 MOV A , 20H和MOV C, 20H中的20H含义有什么不同?传送指令中的 助记符 MOV , MOVX , MOVC 各适用于访问哪个存储器空间?答:1、MOV A, 20H 把20H单元中的内容送往累加器 A中,MOV C, 20H 把 20H 位的状态送往

6、进位 CMOV 适用于内部的 RAM 存储空间MOVX 适用于外部的 RAM 存储空间MOVC 适用于程序存储空间实验名称:单片机并行I/O 口的应用实验实验类型:设计型时间:2012年11月6日设计性实验一、实验目的1 、熟悉Proteus软件和Keil软件的使用方法。2 、熟悉单片机应用电路的设计方法。3 、掌握单片机并行I/O 口的直接应用方法。4、掌握单片机应用程序的设计和调试方法二、设计要求1、用Proteus软件画出电路原理图。要求在P1.0至P1.7 口线上分别接LED0至LED7八个发光二极管,在P3.0 口线上接一蜂鸣器。2、编写程序:要求LED0至 LED7以秒速率循环右移

7、。3、编写程序:要求LED0至 LED7以秒速率循环左移。4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警三、电路原理图4、实验程序流程框图和程序清单、循环右移开始MAIN: MOVP1, #OFFHMOVA, #7FHLOOP: MOVP1,ACLRP3.0LCALLDELAYCPLP3.0LCALLDELAYRRALJMPLOOPDELAY:MOVR7,#17HDL1:MOVR6,#98HDL0:MOVR5,#46HDJNZR5,$DJNZR6,DL0DJNZR7,DL1RETEND、循环左移开始ORG00HMAIN:MOVP1,#0FFHMOVA ,#0FEHLOOP:MOVP1,ACL

8、RP3.0LCALLDELAYSETBP3.0LCALLDELAYRLALJMPLOOPDELAY:MOVR7,#17HDL1:MOVR6,#98HDLO:MOVR5,#46HDJNZR5,$DJNZR6,DL0DJNZR7,DL1RETEND四、实验总结通过本次试验,加深了对延时程序的理解,熟练了对keil和protues的使用更加熟悉了单片机实验课的节奏,加强了自己的动手能力,收获很多五、思考题1、编程实现LEDO至LED7以十六进制计数规律亮灯?ORG0000HMOV P1,#0FFHMOV A,#0FFHMOVR7, #16LOOP:MOVP1, ALCALL DELAY1SDEC A

9、DJNZ R7, LOOPLJMP MAINDELAY1S:MOVR7,#0A7HDL1:MOVR6,#0ABHDL0:MOVR5,#10HDJNZR5,$DJNZR6,DL0DJNZR7,DL1NOPRETEND实验三、定时器/计数器应用实验一实验性质、设计性实验一、实验目的1 、掌握中断系统外部中断源的使用方法。2 、掌握延时程序的编程及使用方法。3 、掌握Proteus软件与Keil软件的使用方法。4、掌握单片机系统的硬件和软件设计方法二、设计要求1 、用Proteus软件画出电路原理图,在单片机的 P1.0 口线上接按键K0, 作为外部中断源0使用,用于开启波形,在单片机的P1.1 口

10、线上接按键K1,作 为外部中断源1使用,用于关闭波形。2 、在单片机的P1.2 口线上产生周期50mS的连续方波,在P1.2 口线上接示 波器观察波形。3、电路原理图。三、实验程序流程框图和程序清单町JAM lUJUUL 曲业崩吃述疋ps.kirn piF3j6M1R_R.TflFpzzft-inF7 W iP / S D :PZiSWK niM-J弋一MJ套幣dp情ORG 0000HSTART:LJMP MAINORG 0030HMAIN: MOVMOVMOVMOVSETBLOOP: JNBMOVMOVCLRCPLLJMPENDTMOD, #10H TH1, #0FFH TL1, #9CH

11、IE, #00H TR1TF1, LOOPTH1, #0FFHTL1, #9CHTF1P1.0LOOPSETB EASETB ET1SETB TR1ORG 0000HLJMP MAINORG 001BHLJMP LOOP1ORG 0030HMAIN:MOV SP, #3FHMOV TMOD, #20HMOV TH1 , #88HMOV TL1, #88HHERES: LJMP $LOOP1:CPL P1.1RETIEND四、实验结果(波形图)实验二五、实验总结通过本次实验,对单片机的定时功能有了更加深刻的认识。熟练对keil的使用,收获非常大。六、思考题在pl.O 口线上产生周期为500微妙,

12、占空比为2:5的连续矩形波。ORG0000HSRART:LJMPMAINORG0030HMAIN:MOVSP,#7FHMOVTMOD,#01HMOVIE,#00HSETBTR0LOOP:CLRP1.0CLRTF0MOVTH0,#0FEHMOVTL0,#0D4HLOOP1:JNBTF0, LOOP1CLRTF0CPLP1.0MOV THO, #OFFHMOV TLO,#38HLOOP2: JNBTFO, LOOP2LJMP LOOPEND开始TMOD初始化 I中断初始化计数初值初始化P1.0 口取反关闭定时器0清计数溢出标志ICLREAMOVTMOD,#22HMOVTH0,#9CHMOVTL0,

13、#9CHSETBTR0LOOP1: JNBTF0,LOOP1CLR TF0CLRTR0SETBTR1CPLP1.0MOVTH1,#6AHMOVTL1,#6AHORG 0000HSTART:LJMP MAINORG 0030HMAIN:MOV SP, #2FHLOOP2:JNB TF1, LOOP2启动定时器1I 重置计数初值I计数初值初始化P1.0 口取反清计数溢出标志I 关闭定时器1 启动定时器0 CLRTF1CLRTR1SETBTR0CPLP1.0LJMPLOOP1ENDSTART: LJMPORG 0100HORG 0000HMAINMAIN:MOV SP, #2FHCLREACLRET

14、0MOVTMOD,#02HMOVTH0,#09CHMOVTL0,#09CHMOV A, #00HSETBTR0LOOP0:JNB TF0, LOOP0CLR TF0INC ACJNE A, #02H, LOOP0CPL P1.0LOOP2: JNB TF0,LOOP2CLRTF0INCACJNEA, #05H,LOOP2CPLP1.0CLRALJMPLOOP0END定时器/计数器应用实验二 实验项目类型 : 设计型 实验时间: 2012.11.15、实验目的1 、掌握定时器/计数器计数功能的使用方法。2 、掌握定时器/计数器的中断、查询使用方法。3 、掌握Proteus软件与Keil软件的使用

15、方法。4 、掌握单片机系统的硬件和软件设计方法。二、设计要求1 、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满100个脉冲,则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。2 、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工 作,设定计数功能,对外部连续周期性脉冲信号进行计数,每计满 200个脉冲, 则取反P1.0 口线状态,在P 1.0 口线上接示波器观察波形。三、电路原理图。SS.E InlnlluE禅|声inLE:D辿 mo iniKfr冯两 HijitrKfiA.

16、U!OJID iarai 啊g F说3 mm PD3AC5 ?QEAIIE IIVWmjXT疋ST齢XJWT1丄!lA-n丄K21MI P2M-UU1J3_dl_euPUT:ai2 丸 lilffi.呛P1JPl.L卅P1Pl.lSen 4IF 豕PDJDHDO pd gm P02MD2 HDJAEH PQL 甜 W 曲如朋PaTJOdW町rw 町.加 pjxii PXII P?iAF pzM-n P?A1L 卩二.M Z2LBJl_眄DTS31.VTT2DFU fllJPl*OlJlFMTIiQ ninxj rwim psjminTpj迅丄PT.ffTq-=1一riIglFgN 逶aaHia

17、a四、实验程序流程框图和程序清单汇编程序1ORG0000HLJMPMAINORG0030HMAIN:CLREAMOVTMOD,#06HMOVTH0,#9CHMOVTL0,#9CHSETBTR0LOOP:JNBTF0,LOOPCPLP1.0CLRTF0LJMPLOOPENDC语言程序1#in clude sbit P1_0=P1A0; void mai n()IE=0; TMOD=0X06;TR0=1; for(;)TH0=0X9C;TL0=0X9C; dowhile(!TF0);P1_0=!P1_0;TF0=0;汇编程序2ORGLJMPORGLJMPORGMAIN: MOVMOVMOVMOVS

18、ETB0000HMAIN000BHTP00030HSP, #2FH TMOD, #06H TH0, #38H TL0, #38H EAET0SETBSETBTR0SJMP$TP0:CPLP1.0CLRTF0RETIENDC语言程序2#in elude sbit P1_0=P1A0;void time()in terrupt 1P1_0=!P1_0;void main()EA=1;ET0=1; TMOD=0X06;TR0=1;TL0=0X38;TH0=0X38;while(1);五、实验结果(波形图)实验二 六、实验总结。通过本次实验使我对定时器 / 计数器中的计数工作方式有了更好的掌 握和了解

19、,增强了自己的动手能力。七、思考题。利用定时器 0 在 p1.0 口线上产生周期为 200 微秒的连续方波,利 用定时器 1,对 p1.0 口线上波形进行计数,满五十个,则取反 p1.0 口线状态, 在 p1.0 口线上接示波器观察波形。汇编程序 3ORG 0000HSTART:LJMPMAINORG0030HMAIN:CLREACLRET1MOVTMOD,#62HMOVTH1,#0CEHMOVTL1,#0CEHMOVTL0,#9CHMOVTH0,#9CHSETBTR0SETBTR1LOOP:JNBTF0,LOOPCPLP1.0CLRTF0LOOP1:JNBTF1,LOOPCPLP1.1CLR

20、TF1LJMPLOOPENDC 语言程序 3#includesbit P1_0=P1A0;sbit P1_仁 P1A1;void time() interrupt 1P1_0=!P1_0;void time_()interrupt 3P1_仁!P1_1; void mai n()TMOD=OX62;TH0=0X9C;TL0=0X9C;TH1=0XCE;TL1=0XCE;TR0=1;TR1=1; EA=1;ET0=1;ET1=1; while(1);实验名称:外部中断应用实验实验项目类型:设计型实验时间:2012.11.22一、实验目的1 、掌握中断系统外部中断源的使用方法。2 、掌握延时程序的

21、编程及使用方法。3 、掌握Proteus软件与Keil软件的使用方法。4 、掌握单片机系统的硬件和软件设计方法。二、设计要求1 、用Proteus软件画出电路原理图,在单片机的 P1.0 口线上接按键K0,作为外部中断源0使用,用于开启波形,在单片机的P1.1 口线上接按键K1,作 为外部中断源1使用,用于关闭波形。2、在单片机的P1.2 口线上产生周期50mS的连续方波,在P1.2 口线上接示波器观察波形三、电路原理图四、实验程序流程框图和程序清单 汇编程序ORG0000HAJMPMAINORG0003HAJMPZD0ORG0013HAJMPZD1ORG0030HMAIN: SETBIT0S

22、ETBIT1开始MOVTMOD, #01HMOVIE, #85HLO:MOVTH0, #9EHMOVTL0, #58HLOOP0:JBCTF0, LOOP1AJMPLOOP0LOOP1:CPLP1.2AJMPLOZD0:SETBTR0RETIZD1:CLRTR0RETIENDC语言程序#includesbit K0=P1A0;sbit K仁 P1A1;sbit P1_2=P1A2;void INTT0() interrupt 0 TR0=1;void INTT1() interrupt 2TR0=0;void T0_time() interrupt 1 P1_2=P1_2;TH0=0X9E;T

23、L0=0X58;void main() TMOD=0X01;EA=1;ET0=1;EX0=1;EX1=1;IT0=1;IT1=1;PX1=1;TH0=0X9E;TL0=0X58; for(;);五、实验结果(波形图)六、实验总结。通过本次试验,加深了对延时程序的理解,熟练了对keil和protues的使用。更加熟悉了单片机实验课的节奏,加强了自己的动手能力,收获很多七、思考题1、在P1.2 口线上产生周期为100mS占空比为2: 5的连续矩形波,要求 只采用按键K0来控制其开启和关闭。0000H MAIN0003H ZD0000BHZD10030H1汇编程序ORGLJMPORGLJMPORGL

24、JMPORGMAIN: SETBIT0TMOD,IE,TH0,TL0 ,R0,#01H#83H#0B1H#0E0H#0MOVMOVMOV MOV MOVLOOP1:CJNER0,#2,CPLP1.2CJNER0,#5,$CPLP1.2MOVR0,#0LJMPLOOP1ZD0:CPLTR0RETIZD1:INCR0MOVTH0,#0B1H$#0E0HMOV TLO , RETIEND2. C语言程序#in elude sbit a=P1A2;char t;voidmai n()TMOD=0X01;IE=0X83;TH0=0XB1;TL0=0XE0;IT0=1;while(1)if(t=2) a=

25、0;if(t=5)a=1; t=0;void zd0()in terrupt0TR0=TR0;t=0;void zd1()in terruptlt+;TH0=0XB1;TL0=0XE0;可编程并行接口芯片8255的应用实验实验性质:设计性试验时间:2012年12月3号一、实验目的和要求1、 掌握单片机与可编程并行接口芯片8255的 设计方法2、 掌握Proteus软件与Keil软件的使用方法。3、 熟悉可编程并行接口芯片8255初始化程序设计方法 二、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。2、在8255PA 口或PB 口的

26、某一口线上产生周期为500 yS的连续方波,接示波器观察波形。3、在8255PC 口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现 发光二极管正确指示按键的状态三、实验原理图P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12在P2.5/A13P2.6/A14P2.7/A15P1.0/T2P3.0/RXDP1.1/T2EXP3.1/TXDP1.2P3 2/INT0P1.3P3.

27、3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WP1.7P3.7/RU12123;券4;:7;,D3D4u3O 123 456 7 D D-J-J -J-J-J -JO 123 456 7 Q QQQQQQQD0PA0D1PA1D2PA2D3PA3D4PA4D5PA5D6PA6D7PA7RDPB0WRPB1A0PB2A1PB3RESETPB4PB5CSPB6PB7PC0PC1PC2PC3PC4PC5PC6PC7U2四、实验程序清单和程序流程图产生500us波形的程序及流程图 汇编编写:ORG0000HLJMPMAINORG0200HMAIN: MOVSP,#2FHC

28、LREACLRET1MOVTMOD,#20HMOVTH1,#06HMOVTL1,#06HMOVDPTR,#0003HLOOP:MOV A,#80H开始LCALL DDMOVX DPTR, AMOVA,#90HLCALLDDMOVX DPTR, AAJMP LOOPDD:SETB TR1LOOP1:JNBCLRRETTF1,TF1LOOP1ENDC语言编写:#defi ne uintun sig nedint#defi ne uchar un sig nedchar#in clude #in clude #defi ne A8255 XBYTE0x0003 void dely()TR1=1;wh

29、ile(!TF1);TF1=0;void mai n()TMOD=0x20;TH1=0x06;TL1=0x06;EA=0;for(;)dely();A8255=0x80;dely();A8255=0x90;按键控制LED汇编:开始ORG 0000HLJMP MAINORG 0200HMAIN:MOV DPTR,#0003HMOV A,#81HMOVX DPTR, AMOV DPTR, #0002HLOOP:MOVX A,DPTR8255初始化调延时程序将PC口内容送A累加器A的高低半字节内容交换将A的内容传送给PC 口SWAPAMOVXDPTR, ASJMPLOOPENDC语言编写:intch

30、ar#defi neuintun sig ned#defi neuchar un sig ned#in elude #in clude #defi ne A8255 XBYTE0x0003#defi neB8255 XBYTE0x0002void mai n()A8255=0x81;for(;)uchar i;i=B8255;i=i4;B8255=i;五、实验结果500us 波形按键控制LED实验现象是每按一个按键,所对应的LED就亮,松开按键 LED就灭。六、实验总结1. 通过此次的实验掌握了可编程并行输入输出接口芯片8255的接口原理,熟悉对8255初始化的编程和输入,输出软件的诗句方法。

31、2. 掌握了 MSC-51系列的单片机系统中扩展外围芯片8255的方法。3.由于这次实验的操作,我对protuse的操作及简单电路的设计,知道在protuse软件中进行波形的仿真和误差的调节。4.学会了设计简单的程序,从而似的自己的动手能力得以提高。七、思考题1、在8255PC 口上外接8个发光二极管,利用 8255PC 口的 置位/复位控制字控制其按某种规律变化。实验程序 汇编编写:ORG 0000HLJMP MAINORG 0100HMAIN:MOVSP,#30HMOVDPTR, #0003HMOVA, #80HMOVXDPTR, AMOVA,#00HMOVXDPTR, ALOOP:INC

32、AMOVDPTR, #0003HMOVXDPTR,ALCALLDELYCJNEA,#0FH, LOOPDELY:MOVR3,#20MOVD1:#100D2:DJNZDJNZMOV DJNZ R4, R3, RET ENDR4,R5,R5,#250$D2D1C 语言编写: #include #include #define uchar unsigned char#define COM8255 XBYTE0x0003#define PC8255 XBYTE0x0002 unsigned int i=0; unsigned int j=1;void dely1s()unsigned int m,n;

33、 for(m=400;m0;m-) for(n=300;n0;n-);void main()while(1)PC8255=0xFF;j=1;while(i!=16)COM8255=i;dely1s();i=i+2;i=0;while(j!=17)COM8255=j; dely1s(); j=i+2;实验原理图|1;玉喳主LgnLiWE*!TMi卜 jy FAP巴 E IjW*1!吃Z 2*iD fE3i| f2r-A.1l r:M3 #2fi*-l-imt ii 叩S3 VOfls-TTIRUT1 U的L n wTA/D转换实验实验项目类型:设计型实验时间:2012.12.1、实验目的和要求1

34、、掌握单片机与 ADC0809的接口设计方法 。2、掌握Proteus软件与Keil软件的使用方法 。二、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0809接口。2、在0809的某一模拟量输入通道上接外部模拟量。3、在单片机的外部扩展数码管显示器。4、 分别采用延时和查询的方法编写A/D转换程序。5、启动A/D转换,将输入模拟量的转换结果在显示器上显示。三、实验电路ORG0000HSTART:LJMPMAINMAIN:MOVSP,MOVDPTR,CLREALOOP0:MOVXDPTR,ALOOP:LCALLDELAYMOVXA,MOVB,D

35、IVABMOVR0,MOVA,MOVB,DIVAB#2FH#51A#5四、实验程序和程序流程图延时方法汇编方式:#0FEF8HDPTRMOVMOVMOVMOVMOVCMOVMOVR1,R2,DPTR,A,A,P2,PO,#DKR0 A+DPTR #08HALCALLDELAYMOVA,MOVCA,MOVP2,MOVP0,LCALLDELAYR1A+DPTR#04H80H,MOVA,A,P2,P0,MOVCMOVMOVLCALLDELAYMOVA,MOVCA,MOVP2,MOVP0,LCALLDELAYLJMPMAINDELAY:MOVR7,DL1:MOVR6 ,DL0:MOVR5,DJNZR5

36、,DJNZR6,DJNZR7,RETDK:DB 0C0H, 0F9H,90H, 0FFHENDC 语言方式:#include#include#include#define uchar unsigned char#define uint unsigned int#define ADC0809 XBYTE 0x0000sbit EOC=P3A3;R2 A+DPTR #02H A#10 A+DPTR #01H A#01H#8EH#02H$DL0DL10A4H, 0B0H, 99H, 92H, 82H, 0F8Hchar code dis_code=0xc0,0xf9,0xa4,0xb0,0x99,0

37、x92,0x82,0xf8,0x80,0x90,0xff; char find_code=10,10,10,10;void DelayX1ms(uint count)uint j;while(count-!=0) for(j=0;j80;j+);void display() char i, j=0x02;char k;for(i=0; i4; i+) P2=j; k=find_codei; P0=dis_codek;DelayX1ms(1); j=_crol_(j,1);void main() uint data1; ADC0809=0; while(1) DelayX1ms(1);ADC08

38、09=0;data1=ADC0809;find_code2=data1/51;find_code1=data1%51*10/51;find_code0=data1%51*10%51*10/51;/个位/小数点后第一位/小数点后两位display(); 查询方法 汇编方式:ORG 0000HSTART: LJMP MAINMAIN:MOV SP, #2FHMOV DPTR, #0FEF8H CLR EALOOP0:LOOP:MOVXDPTR, AJBP3.3,LOOPMOVX A,DPTRMOVB,#51DIVABMOVR0,AMOVA,BMOVB,#5DIVABMOVR1,AMOVR2,BMO

39、VDPTR,#DKMOVA,R0MOVCA,A+DPTRMOVP2,#01HMOVP0,ALCALLDELAYMOVA,#10MOVP2,#02HMOVP0,ALCALLDELAYMOVA,R2MOVCA,A+DPTRMOVP2,#04HMOVP0,ALCALLDELAYMOVA,#10MOVCA,A+DPTRMOVP2,#08HMOVP0,ALCALLDELAYLJMPMAINDELAY:MOVR7,#01HDL1:MOVR6,#8EHDL0:MOVR5,#02HDJNZR5,$DJNZR6, DL0DJNZ R7,DL1RET90H,DK: DB 0C0H, 0F9H, 0A4H, 0B0

40、H, 99H, 92H, 82H, 0F8H, 80H, 7FHENDC 语言方式:#include#include#include#define uchar unsigned char#define uint unsigned int#define ADC0809 XBYTE 0x0000sbit EOC=P3A3;char code dis_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;char find_code=10,10,10,10;void DelayX1ms(uint count)uint j;while(

41、count-!=0)for(j=0;j80;j+);void display() char k;P2=0x02;k=find_code2;P0=dis_codek;DelayX1ms(1);P2=0x04;k=find_code1;P0=dis_codek;DelayX1ms(1);P2=0x08;k=find_code0;P0=dis_codek;DelayX1ms(1);void main() uint i, data1;ADC0809=0;while(1) do display(); while(EOC);ADC0809=0;data1=ADC0809;find_code0=data1/51;/个位/小数点后第一位/小数点后两位find_code1=data1%51*10/51; find_code2=data1%51*10%51*10/51; display();五、实验结果六、实验总结通过本次实验,我对 A/D转换的了解更加深刻,A/D转换,把模拟信号转换为数字信号,是单片机外部设备的更好扩展。更加让我认识到A/D转换的电路连接和单片机片外三总线是如何连接。七、思考题1、米用中

温馨提示

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

最新文档

评论

0/150

提交评论