中南大学单片机.docx

上传人:b****6 文档编号:5024470 上传时间:2022-12-12 格式:DOCX 页数:16 大小:139.85KB
下载 相关 举报
中南大学单片机.docx_第1页
第1页 / 共16页
中南大学单片机.docx_第2页
第2页 / 共16页
中南大学单片机.docx_第3页
第3页 / 共16页
中南大学单片机.docx_第4页
第4页 / 共16页
中南大学单片机.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

中南大学单片机.docx

《中南大学单片机.docx》由会员分享,可在线阅读,更多相关《中南大学单片机.docx(16页珍藏版)》请在冰豆网上搜索。

中南大学单片机.docx

中南大学单片机

单片机实验报告

 

学院:

信息科学与工程学院

专业班级:

姓名:

指导老师:

杨迎泽

实验一单片机I/O口应用实验_P3.3口输入P1口输出

一、实验目的

1、掌握单片机P3口、P1口简单使用。

2、学习延时程序的编写和使用。

二、实验内容

1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。

2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16进制加一的方式点亮发光二极管。

三、实验说明

1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:

当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。

2、延时子程序的延时计算。

对于延时的程序

DELAY:

MOVR6,#00H

DELAY1:

MOVR7,#80H

DJNZR7,$

DJNZR6,DELAY1

查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:

(((128+1)×256)+1)×2×(12÷6000000)=132.1ms。

四、实验原理图

图(1-1)

五、实验程序框图

六、实验步骤

1、P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。

2、调试、运行程序test1中的MCUIO.ASM。

3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。

七、实验程序

#include/*===头文件包含===*/

sbitP3_3=P3^3;

voidtime(void);

main()

{

B=0;

P1=0X00;

while

(1)

{

while

(1)

{

if(P3_3)continue;

time();

if(!

P3_3)break;

}

while

(1)

{

if(!

P3_3)continue;

time();

if(P3_3)break;

}

B++;

ACC=B;

P1=ACC;

}

}

voidtime(void)

{

unsignedinti;

for(i=0;i<0xFFF;i++);

}

实验二单片机I/O口应用实验_工业顺序控制

一、实验目的

掌握工业顺序控制程序的简单编写和中断的使用。

二、实验预备知识

在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:

注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

三、实验内容

8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。

P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。

四、实验说明

实验中用外部中断0,编中断服务程序的关键是:

1、保护进入中断时的状态,并在退出中断之前恢复进入中断前的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EX0位。

一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。

五、实验接线图

图(2-1)

六、实验程序框图

七、实验步骤

1、P3.4连K1,P3.3连K2,P1.0~P1.6分别连到L0~L6,P1.7连SIN(电子音响驱动控制区),其卧式开关打在音乐上,短路片选择左边为蜂鸣器,下边为喇叭。

2、K1开关拨在上面,K2拨在上面。

3、调试、运行程序test2中的GYSX.ASM。

4、K1拨至下面(低电平),各道工序应正常运行。

5、K2拨至下面(低电平),应有声音报警(人为设置故障)。

6、K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。

八.实验程序

ORG0000H

AJMP0030H

ORG0013H

LJMPHA2S3

ORG0030H

HA2S:

MOVP1,#0fFH

ORLP3,#00H

HA2S1:

JBP3.4,HA2S1

ORLIE,#84H

ORLIP,#04H

MOVPSW,#00H

MOVSP,#53H

HA2S2:

MOVP1,#081H

ACALLHA2S7

MOVP1,#082H

ACALLHA2S7

MOVP1,#084H

ACALLHA2S7

MOVP1,#088H

ACALLHA2S7

MOVP1,#090H

ACALLHA2S7

MOVP1,#0A0H

ACALLHA2S7

MOVP1,#0C0H

ACALLHA2S7

SJMPHA2S2

HA2S3:

MOVB,R2

HA2S5:

SETBP1.7

ACALLHA2S6

CLRP1.7

ACALLHA2S6

JNBP3.3,HA2S5

MOVR2,B

RETI

HA2S6:

MOVR2,#06H

ACALLDELAY

RET

HA2S7:

MOVR2,#30H

ACALLDELAY

RET

DELAY:

PUSH02H

DELAY1:

PUSH02H

DELAY2:

PUSH02H

DELAY3:

DJNZR2,DELAY3

POP02H

DJNZR2,DELAY2

POP02H

DJNZR2,DELAY1

POP02H

DJNZR2,DELAY

RET

END

实验五A/D转换实验

一、实验目的

1、掌握A/D转换与单片机的接口方法。

2、了解A/D芯片0809转换性能及编程方法。

3、通过实验了解单片机如何进行数据采集。

二、实验内容

利用实验仪上的0809做A/D转换实验,实验仪上的电位器提供模拟量输入。

编制程序,将模拟量转换成数字量,通过显示接口芯片8279在七段数码管上显示。

三、实验说明

A/D转换器大致分有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用ADC0809属第二类,是8位A/D转换器。

每采集一次一般需100μs。

由于ADC0809A/D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/D转换结果。

四、实验接线图

显示部分原理图参考键盘显示控制器8279应用实验。

图(5-1)

五、实验程序框图

六、实验步骤

1、把0809的0通道IN0用插针线接至电位器模拟电压产生区Vout插孔(0~5V)。

2、0809的时钟CLK_0809插孔与固定脉冲输出端500KHz相连。

3、0809的片选CS_0809连接至系统译码Y0。

4、将8279键盘接口显示部分的DU(a-h)用8芯线连接至数码管显示区的DU(a-h),BIT(BIT0-BIT7)连接至数码管显示区的BIT(BIT0-BIT7);将8279CS连接到系统译码Y6,8279CLK连接到固定脉冲的1MHZ。

5、调试、运行程序test5中AD0809.ASM,在数码管上显示当前采集的电压值转换后的数字量,调节模拟电压的电位器,数码管显示将随着电压变化而相应变化,

典型值为:

0V—00H,2.5V—80H,5V—FFH。

七、实验步骤

ORG0000H

AJMPSTART

ORG0030H;?

START:

LCALLFORMAT

MOVA,#00H

MOVDPTR,#8000H

MOVX@DPTR,A

LCALLDY1

MOVXA,@DPTR

LCALLCONVER

LCALLDISP8279

LCALLDELAY

AJMPSTART

FORMAT:

MOV78H,#0H;;

MOV79H,#8H;

MOV7AH,#0H;

MOV7BH,#9H;

MOV7CH,#12H;-

MOV7DH,#12H;-

MOV7EH,#0H;0

MOV7FH,#0H;0

RET

CONVER:

MOVR0,A

ANLA,#0FH

MOV7FH,A

MOVA,R0

SWAPA

ANLA,#0FH

MOV7EH,A

RET

DISP8279:

;显示子程序,缓冲区为78H-7FH

C8279EQU0E001H;)7fffH

D8279EQU0E000H;7FFEH

MOVDPTR,#C8279

MOVA,#0H

MOVX@DPTR,A;写8279方式字

MOVA,#2aH

MOVX@DPTR,A;写分频系数

MOVA,#0D0H

MOVX@DPTR,A;清显示

MOVA,#90H

MOVX@DPTR,A;设置从左边开始写入数据

DISP1:

MOVXA,@DPTR

JBACC.7,DISP1;读8279工作是否正常

MOVR0,#78H;显示缓冲首址

MOVR1,#08H

DISP2:

MOVA,@R0

MOVDPTR,#TAB

MOVCA,@A+DPTR;查字型

MOVDPTR,#D8279

cpla

MOVX@DPTR,A;送字型到8279显示

INCR0

DJNZR1,DISP2

RET

;字型代码

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7

DB80H,90H,88H,83H,0C6H,0A1H,86H,08EH;8,9,A,B,C,D,E,F

DB08CH,0C1H,0BFH,91H,89H,0C7H,0FFH,07FH;P(10),U(11),-(12),Y(13),H(14),L(15),关(16),.(17)

CLEAR8279:

MOVDPTR,#C8279;清显示子程序

MOVA,#0D0H

MOVX@DPTR,A

RET

DY:

PUSH02H;延时子程序

DELAY1:

PUSH02H

DELAY2:

PUSH02H

DELAY3:

DJNZR2,DELAY3

POP02H

DJNZR2,DELAY2

POP02H

DJNZR2,DELAY1

POP02H

DJNZR2,DY

RET

DY1:

MOVR7,#0FFh

DJNZR7,$

RET

DELAY:

MOVR6,#0FFh

DELY2:

MOVR7,#0FFh

DELY1:

DJNZR7,DELY1

DJNZR6,DELY2

RET

END

实验十电子音响实验

一、实验目的

了解计算机发出不同音调声音的编程方法。

二、实验内容

用定时器产生不同频率的方法,组成的乐谱由单片机进行信息处理,经过放大后用8031的P1.0口输出音乐。

三、预备知识

1、要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用计时器计时(此半周期时间),计时到后即反向输出,重复此过程即得到此频率的脉冲。

2、让定时器工作在计数方式,改变计数值TH0及TL0,以产生不同的频率。

3、每个音符使用一个字节,字节的高四位代表音符的高低,低四位代表音符的节拍。

4、低音1至高音1所对应的频率(Hz)依次是:

131、147、165、175、196、220、247、262、294、330、349、392、440、494、523。

乘以二就提升该声音一个八度音阶,减半则降一个八度。

四、实验线路图

图(10-1)

五、实验步骤

1、把P1.0用插针连至SIN插孔上(电子音响驱动区的短路片连到右边LB,选喇叭,开关SWT1拔在音乐上,如果是DVCC-51JB机型没有这个开关)。

2、调试、运行程序test10中的MUSIC.ASM。

将播放“新年好”歌曲。

六、实验程序

org0000h

SjmpMAIN

org000bh

movtl0,r0

cplp1.0

RETI

MAIN:

MOVTMOD,#01H

MOVIE,#82H

MOVDPTR,#TAB

LOOP:

CLRA

MOVCA,@A+DPTR

MOVR1,A

INCDPTR

CLRA

MOVCA,@A+DPTR

MOVR0,A

ORLA,R1

JZNEXT0

MOVA,R0

ANLA,R1

CJNEA,#0FFH,NEXT

SJMPMAIN

NEXT:

MOVTH0,R1

MOVTL0,R0

SETBTR0

SJMPNEXT1

NEXT0:

CLRTR0

NEXT1:

CLRA

INCDPTR

MOVCA,@A+DPTR

MOVR2,A

LOOP1:

ACALLD200C

DJNZR2,LOOP1

INCDPTR

AJMPLOOP

D200C:

MOVR3,#81H

D200B:

MOVA,#0FFH

D200A:

DECA

JNZD200A

DECR3

CJNER3,#00H,D200B

RET

TAB:

DB0FEH,25H,04H,0FEH,25H,02H;1115

DB0FEH,25H,02H,0FDH,80H,04H

DB0FEH,84H,02H,0FEH,84H,02H;3331

DB0FEH,84H,04H,0FEH,25H,04H

DB0FEH,25H,02H,0FEH,84H,02H;1355

DB0FEH,0C0H,04H,0FEH,84H,02H

DB0FEH,98H,02H,0FEH,84H,02H;432-

DB0FEH,57H,08H,00H,00H,04H

DB0FFH,0FFH

END

;1=1312625231047

;2=1472945871175

;3=1653306591319

;4=1753496981397

;5=1963927841568

;6=2204408801760

;7=2474949881976

1收获体会

本次微控制器综合设计基本上使用了所选微控制器的所有资源,进一步熟悉和加深了对中断、定时器和串行通信的理解和使用。

我觉得软件实验就是让我们初学者熟悉keil的使用,然后复习下汇编的思想和掌握程序的流程,所以软件实验可以很快的完成,并且慢慢熟悉调试的强大功能。

硬件设计中,仿真让我很有感触,感觉蛮好玩的,可以摒弃麻烦的实验硬件自己在寝室玩而且不受硬件状态的限制,即便出错了也不会损坏。

当然更重要的是这种好习惯,仿真完后再去在实验板上验证会比直接要来的确切而且便捷,至少不要老是去插拔线。

而且再做一个程序前腰先用protus把硬件都设计好采取做软件才对。

在做实验中在同学指导下我试用C语言来编写程序,确实发现比汇编语言容易编写也容易理解,以前的实验还是有参考资料的习惯,现在什么都开始自己写感觉还是很有成就感的,当然这是基于程序本身就那么几行很容易编写,也不是说参考不好。

总而言之,这学期的单片机实验还是收获颇丰的。

相信在以后的实验学习实践工作中都会有个潜移默化的作用的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1