单片机实训课程设计.docx

上传人:b****6 文档编号:3716203 上传时间:2022-11-24 格式:DOCX 页数:18 大小:88.36KB
下载 相关 举报
单片机实训课程设计.docx_第1页
第1页 / 共18页
单片机实训课程设计.docx_第2页
第2页 / 共18页
单片机实训课程设计.docx_第3页
第3页 / 共18页
单片机实训课程设计.docx_第4页
第4页 / 共18页
单片机实训课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机实训课程设计.docx

《单片机实训课程设计.docx》由会员分享,可在线阅读,更多相关《单片机实训课程设计.docx(18页珍藏版)》请在冰豆网上搜索。

单片机实训课程设计.docx

单片机实训课程设计

机电工程系

 

单片机原理与接口技术

实训课程设计

 

专业:

机械设计制造及其自动化

班级:

姓名:

学号:

指导教师:

袁益民

 

(2010年11月19日)

实训一:

单片机实时交通信号灯控制模拟

一实训目的:

1.了解可编程I/O芯片8255的结构功能及编程方法

2.学习掌握用单片机进行交通灯控制的实现方法。

3.掌握用软件编程实现延时的方法。

二设计内容及要求:

1.编程DJ—598KC单片机扩展连接的8255的PA、PB口为输出I/O口,控制DJ—598KC实验箱上的黄、绿、红、三色十二个发光二极管亮灭,并分别用实验箱上的两位七段LED数码倒计时显示两通车道车辆通行时间(即黄、绿、红三色发光二极管亮灭时间),模拟十字路口交通信号灯控制和管理,并完成在DJ—598KC单片机实验箱上的仿真。

2.将8255的PA、PB口输出控制改为用单片机的P1、P3口实现输出控制,再完成控制电路连接设计及控制程序的编制和仿真。

三实训相关图形

18255控制电路逻辑图

2DJ-598KC实验系统LED显示器接口电路连接

3控制程序框图

48255A的逻辑结构和信号引脚

5DJ-5198KC实验箱8255的I/O口地址分配

6用单片机P1和P3口的控制电路逻辑图

四程序清单

ORG0100H

HA4S:

MOVSP,#60H

;8255初始化

MOVDPTR,#0FF2BH

MOVA,#88H

MOVX@DPTR,A

MOVDPTR,#0FF23H

MOVA,#88H

MOVX@DPTR,A

;四个红灯

MOVDPTR,#0FF28H

MOVA,#0B6H

MOVX@DPTR,A

INCDPTR

MOVA,#0DH

MOVX@DPTR,A

;5秒延时

MOV2AH,#05H

LCALLDELAY

;东西绿灯,南北红灯

HA4S3:

MOVDPTR,#0FF28H

MOVA,#75H

MOVX@DPTR,A

INCDPTR

MOVA,#0DH

MOVX@DPTR,A

;80秒延时

MOV2AH,#50H

LCALLDELAY

;东西黄灯,南北红灯

HA4S1:

MOVDPTR,#0FF28H

MOVA,#0F3H

MOVX@DPTR,A

INCDPTR

MOVA,#0CH

MOVX@DPTR,A

;10秒延时

MOV2AH,#0AH

LCALLDELAY

;东西红灯,南北绿灯

MOVDPTR,#0FF28H

MOVA,#0AEH

MOVX@DPTR,A

INCDPTR

MOVA,#0BH

MOVX@DPTR,A

;50秒延时

MOV2AH,#32H

LCALLDELAY

;东西红灯,南北黄灯

HA4S2:

MOVDPTR,#0FF28H

MOVA,#9EH

MOVX@DPTR,A

INCDPTR

MOVA,#07H

MOVX@DPTR,A

;10秒延时

MOV2AH,#0AH

LCALLDELAY

LJMPHA4S3;重复东西通行

DELAY:

LCALLDISP

DJNZ2AH,DELAY

RET

DISP:

MOVA,2AH

MOVB,#0AH

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVR2,A

MOVA,B

MOVCA,@A+DPTR

MOVR3,A

MOVP2,#0FFH

MOVR0,#21H

MOVR1,#20H

MOVR6,#0FAH

;250×((250×8+1)×2×1+1)s

LOOP:

MOVR5,#0FAH

LOOP1:

MOVA,R3

MOVX@R0,A

MOVA,#0FEH

MOVX@R1,A

DJNZR5,LOOP1

MOVR5,#0FAH

LOOP2:

MOVA,R2

MOVX@R0,A

MOVA,#0FDH

MOVX@R1,A

DJNZR5,LOOP2

DJNZR6,LOOP

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

END

五程序小结

为期一周的单片机课程设计让我们受益匪浅.学到了很多东西,不管怎么样,先感谢学校给我的这么多机会.真正的学到了东西.

在以前的实训中,有接触过用PLC控制交通灯中各个灯泡的点亮顺序,在这周的实训中,用可编程I/O芯片8255控制交通灯,了解可编程I/O芯片8255的结构功能及编程方法,用软件实现延时的方法程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的。

 

实训二:

七段LED数码显示接口与控制设计

一实训目的:

1.熟悉和掌握MCS-51单片机与七段LED显示器接口的方法。

2.掌握七段LED显示器显示字符的控制方法及可编程I/O芯片8255的功能和初始化编程的方法。

二实训内容:

1.熟悉和掌握单片机与LED七段显示器硬件连接电路的设计;

2.设计一字符表演程序,使字符‘0’~‘F’在DJ-598KC实验箱上的6位LED显示器上实现自动顺序逐位循环显示和全显示。

3.编程将片内30H单元的两位16进制数转换成三位十进制数,并用DJ-598KC实验箱上的左边两位LED显示两位16进制数,用右边三位LED上显示转换的三位十进制值。

三七段LED显示器接口介绍:

1七段LED结构及外形图

2七段LED字型码

字型码格式

dp

g

f

e

d

c

b

a

389C51与LED显示器接口连接(DJ-598KC实验系统)

48255A的逻辑结构和信号引脚

5DJ-5198KC实验箱8255的I/O口地址分配

四参考程序清单

ORG0100H

MOVSP,#50H

START:

MOVR7,#0FFH

MEMS:

INCR7

MOVA,R7

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOV20H,A

ACALLSOX0

CJNER7,#0FH,MEMS

MOVR7,#0

MEMS2:

MOVA,R7

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOV20H,A

ACALLSOX1

INCR7

CJNER7,#10H,MEMS2

SJMPSTART

ORG01A0H

SOX0:

MOVP2,#0FFH

MOVDPTR,#0FF23H

MOVA,#88H

MOVX@DPTR,A

MOVA,20H

MOVR0,#21H

MOVR1,#20H

MOVX@R0,A

MOVA,#0C0H

MOVX@R1,A

MOVR2,#20H

LCALLDELY

RET

SOX1:

MOVP2,#0FFH

MOVDPTR,#0FF23H

MOVA,#88H

MOVX@DPTR,A

MOVA,20H

MOVR0,#21H

MOVR1,#20H

MOVX@R0,A

MOVA,#0FEH

SOX2:

MOVX@R1,A

MOVR2,#20H

LCALLDELY

RLA

CJNEA,#0BFH,SOX2

RET

DELY:

PUSH02H

DEL2:

PUSH02H

DEL3:

PUSH02H

DEL4:

DJNZR2,DEL4

POP02H

DJNZR2,DEL3

POP02H

DJNZR2,DEL2

POP02H

DJNZR2,DELY

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

将片内30H单元的两位16进制数转换成三位十进制数参考程序:

ORG0000H

LJMPSTART

ORG0100H

START:

MOVR0,#30H

MOVA,@R0

MOVB,#64H

DIVAB

INCR0

MOV@R0,A

MOVA,B

MOVB,#0AH

DIVAB

INCR0

MOV@R0,A

MOVA,B

INCR0

MOV@R0,A

DISP:

MOVDPTR,#0FF23H

MOVA,#88H

MOVX@DPTR,A

LOOP:

MOVR0,#30H

MOVA,@R0

ANLA,#0F0H

SWAPA

MOVDPTR,#SEG

MOVCA,@A+DPTR

MOVDPTR,#0FF21H

MOVX@DPTR,A

MOVA,#0DFH

MOVDPTR,#0FF20H

MOVX@DPTR,A

ACALLDL

MOVA,@R0

ANLA,#0FH

MOVDPTR,#SEG

MOVCA,@A+DPTR

MOVDPTR,#0FF21H

MOVX@DPTR,A

MOVA,#0EFH

MOVDPTR,#0FF20H

MOVX@DPTR,A

ACALLDL

INCR0

MOVR3,#0FBH

LD0:

MOVA,R3

MOVDPTR,#0FF20H

MOVX@DPTR,A

MOVDPTR,#SEG

MOVA,@R0

DIR0:

MOVCA,@A+DPTR

MOVDPTR,#0FF21H

DIR1:

MOVX@DPTR,A

ACALLDL

INCR0

MOVA,R3

JNBACC.0,LOOP

RRA

MOVR3,A

LJMPLD0

DL:

MOVR6,#01FH

DELAY2:

MOVR7,#018H

DELAY1:

DJNZR7,DELAY1

DJNZR6,DELAY2

RET

SEG:

DB0C0H,0F9H,0A4H

DB0B0H,99H,92H,82H

DB0F8H,80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

END

五实训小结

在这次课程设计中,我们运用到了以前所学的专业课知识,如:

C语言、模拟和数字电路知识等。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。

但是从中学到的知识会让我受益终身。

发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。

 

实训三:

基于8051单片机的数字电压表的设计与仿真

一、设计目的:

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

2.了解A/D芯片ADC0809、D/A芯片DAC0832的转换性能及编程方法;

3.通过实验了解单片机扩展A/D、D/A转换芯片的方法,学会和掌握用单片机进行数据采集;

二、设计要求

将实验箱DJ598上的ADC0809作为A/D转换器,用实验箱上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,在利用DAC0832D/A数模转换器输出,通过数码管显示出结果,构成一个简易数字电压表。

三、设计内容

使用ADC0809的0通道(IN0),进行0~5V直流电压的A/D转换,并通过DAC0832输出相似的电压值。

0通道的电压输入由实验箱模拟量产生模块的电位器调整,电压测试点为AOUT1。

顺时针旋转,电压增大,最大5V;逆时针旋转电压减小,最小为0V。

将DAC0832得AOUT的输出接数字电压表,使DAC0832的输出电压为0~5V。

实验中采用延时方式或查询方式等待A/D转换结果。

四、实验电路

1.单片机与ADC0809实验接线图

2.单片机与DAC0832实验接线图

五、参考程序

ORG0000H

DAC0832EQU0FF90H

ADC0809_0EQU0FF80H

LJMPSTRAT

ORG0100H

START:

MOVSP,#60H

MOVA,#81H

MOVDPTR,#0FF23H

MOVX@DPTR,A

;初始化显示缓冲区

MOV7EH,#00H

MOV7DH,#08H

MOV7CH,#00H

MOV7BH,#09H

MOV7AH,#10H

MOV79H,#10H

LO18:

LCALLSSEE;显示A/D转换的结果

MOVDPTR,#ADC0809_0

MOVA,#00H

MOVX@DPTR,A;启动A/D转换

MOVR7,#0AH

DELAY:

NOP;延时100µS,等待A/D转换结束

NOP

NOP

DJNZR7,DELAY

NOP;读取A/D转换的结果

MOVXA,@DPTR

NOP;可在此处设置断点,观察累加器A中

MOVDPTR,#DAC0832

MOVX@DPTR,A

NOP;将结果写入DAC0832转换成电压输出,可测量输出点AOUT

;可在此设置断点,比较AOUT1和AOUT得值是否相同

MOVR0,#79H

LCALLPTDS;送累加器A中A/D转换的值到显示缓冲区

SJMPLO18

ORG05D0H

PTDS:

MOVR1,A;拆送累加器A中A/D转换的值显示缓冲区

ACALLPTDS1

MOVA,R1

SWAPA

PTDS1:

ANLA,#0FH

MOV@R0,A

INCR0

RET

ORG0D50H;显示A/D转换的值子程序

SSEE:

SETBRS1;切换工作区

MOVR5,#05H

SSE2:

MOV30H,#20H

MOV31H,#7EH

MOVR7,#06H

SSE1:

MOVR1,#20H

MOVA,30H

CPLA

MOVX@R1,A;字位送入

MOVR0,31H

MOVA,@R0

MOVDPTR,#DDFF

MOVCA,@A+DPTR;取字形代码

MOVR1,#21H

MOVX@R1,A;字形送入

MOVA,30H

RRA;右移

MOV30H,A

DEC31H

MOVA,#0FFH

MOVX@R1,A;关显示

DJNZR7,SSE1;六位显示完了吗?

DJNZR5,SSE2;5次显示完了吗?

CLRRS1

RET

;’0’~’F’字符字型代码表

DDFF:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

END

六、实训小结

经过这次实训,使我得到了一次专业知识,专业技能和解决问题全面的锻炼。

使我在单片机的基本原理,单片机的应用系统的开发过程,以及常用编程设计使用技巧的掌握方面都迈向前一大步。

通过本次实验,了解单片机扩展A/D、D/A转换芯片的方法,学会和掌握用单片机进行数据采集和A/D芯片ADC0809、D/A芯片DAC0832的转换性能及编程方法。

在今后单片机的实际应用方面有了比较不错的铺垫。

在设计过程中,出现一些问题,但都是一些常见的小问题,在调试中出现问题,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利进行,并实现了其功能。

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

当前位置:首页 > 高中教育 > 语文

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

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