单片机课程设计单片机控制系统设计.docx

上传人:b****2 文档编号:2694678 上传时间:2023-05-04 格式:DOCX 页数:14 大小:69.15KB
下载 相关 举报
单片机课程设计单片机控制系统设计.docx_第1页
第1页 / 共14页
单片机课程设计单片机控制系统设计.docx_第2页
第2页 / 共14页
单片机课程设计单片机控制系统设计.docx_第3页
第3页 / 共14页
单片机课程设计单片机控制系统设计.docx_第4页
第4页 / 共14页
单片机课程设计单片机控制系统设计.docx_第5页
第5页 / 共14页
单片机课程设计单片机控制系统设计.docx_第6页
第6页 / 共14页
单片机课程设计单片机控制系统设计.docx_第7页
第7页 / 共14页
单片机课程设计单片机控制系统设计.docx_第8页
第8页 / 共14页
单片机课程设计单片机控制系统设计.docx_第9页
第9页 / 共14页
单片机课程设计单片机控制系统设计.docx_第10页
第10页 / 共14页
单片机课程设计单片机控制系统设计.docx_第11页
第11页 / 共14页
单片机课程设计单片机控制系统设计.docx_第12页
第12页 / 共14页
单片机课程设计单片机控制系统设计.docx_第13页
第13页 / 共14页
单片机课程设计单片机控制系统设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计单片机控制系统设计.docx

《单片机课程设计单片机控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计单片机控制系统设计.docx(14页珍藏版)》请在冰点文库上搜索。

单片机课程设计单片机控制系统设计.docx

单片机课程设计单片机控制系统设计

 

单片机课程设计

 

课题:

单片机控制系统设计

 

系别:

专业:

姓名:

学号:

指导老师:

 

河南城建学院

2011年12月28日

 

成绩评定·

一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。

 

二、评分

评分项目

设计报告评分

答辩评分

平时表现评分

合计

(100分)

任务完成

情况

(20分)

课程设计

报告质量

(40分)

表达情况

(10分)

回答问题

情况

(10分)

工作态度与纪律

(10分)

独立工作

能力

(10分)

得分

 

课程设计成绩评定

班级:

0934091姓名:

关红雷学号:

093409128

成绩:

分(折合等级)

 

指导教师签字年月日

 

一、设计目的

1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;

2、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A、串行口通讯等;

3、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。

二、设计要求

要求用单片机作为控制芯片制作一个遥控器,另一个单片机系统能被遥控操作。

三、总体设计

1、设计思路:

本次课程设计利用单片机来完成一个系统,实现双片单片机之间的控制。

结果用数码管进行显示,数码管采用查表方式显示。

两个单片机之间采用RS232进行双机通信。

在通信过程中,使用通信协议进行通信。

2、设计方案:

本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据由串行口TXD段输出,经过传输线将信号传送到接收端。

接受方接收后,在数码管上显示接收的信息。

为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[10]中的10个数据送给从机,并发送检验和。

从机收到10个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

3、硬件设计:

计算机与外界的信息交换称为通信,常用的通信方式有两种:

并行通信和串行通信。

51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。

串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。

51单片机串行接口的结构如下:

(1)数据缓冲器(SBUF)

接受或发送的数据都要先送到SBUF缓存。

有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;接收时用指令将SBUF中接收到的数据取出。

(2)串行控制寄存器(PCON)

SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:

表1.SCON各位含义

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0,SM1:

串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。

串行接口工作方式特点见下表

表2.串行口工作方式

SM0

SM1

工作方式

功能

波特率

0

0

0

8位同步移位寄存器(用于I/O扩展)

fORC/12

0

1

1

10位异步串行通信(UART)

可变(T1溢出率*2SMOD/32)

1

0

2

11位异步串行通信(UART)

fORC/64或fORC/32

1

1

3

11位异步串行通信(UART)

可变(T1溢出率*2SMOD/32)

SM2:

多机通信控制位。

REN:

接收允许控制位。

软件置1允许接收;软件置0禁止接收。

TB8:

方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。

RB9:

在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:

发送中断标志。

发送完一帧数据后由硬件自动置位,并申请中断。

必须要软件清零后才能继续发送。

RI:

接收中断标志。

接收完一帧数据后由硬件自动置位,并申请中断。

必须要软件清零后才能继续接收。

(3)输入移位寄存器

接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。

(4)波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。

波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

(5)电源控制寄存器PCON

其最高位为SMOD。

(6)波特率计算

当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。

由于是定时方式,T1计数率=fORC/12。

产生溢出所需机器周期数=模M-计数初值X。

四、各部分电路设计

通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

1.串行通信软件实现:

(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。

(2)功能:

将本机ROM中数码表TAB[10]中的10个数发送到从机,并保存在从机内部ROM中,从机收到这10个数据后送到一个数码管循环显示。

(3)通信协议:

主机首先发送连络信号(AAH),从机接收到之后返回一个连络信号(BBH)表示从机已准备好接收。

(4)通信过程使用第九位发送奇偶校验位。

(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

(6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

2.程序流程图:

(1)发送端程序流程图

图1.发送端程序流程图

(2)接收端程序流程图

图2.接收端程序流程图

五、整体电路图

在protues上进行仿真实验。

首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。

图3.电路图

六、设计总结

经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。

虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。

经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信和控制系统的基本知识,对于以后的学习和工作都有很大的益处。

在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。

通过这次课程设计,锻炼了自己独立思考的能力。

参考文献

[1]杨恢先,黄辉先.单片机原理及应用(第一版)[M].北京:

人民邮电出版社,2006:

214-221.

[2]马忠梅.单片机C语言程序设计[M].北京:

北航出版社,2007:

36-48.

[3]田立,田清,代方震.51单片机C语言程序设计快速入门(第一版)[M].北京:

人民邮电出版社,2007:

35-40.

 

附录:

1.发送程序

#include

#defineucharunsignedchar

voidinit(void);

voidsend(void);

ucharTAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchari,sum;

main()

{init();

send();

}

voidinit(void)

{EA=1;

ES=1;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

PCON=0x00;

TR1=1;

SCON=0x50;

}

voidsend(void)

{do

{SBUF=0xaa;

while(!

TI);

TI=0;

while(!

RI);

RI=0;

}

while((SBUF^0xbb)!

=0);

do

{sum=0;

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

{SBUF=TAB[i];

sum+=TAB[i];

while(!

TI);

TI=0;

}

SBUF=sum;

while(!

TI);

TI=0;

while(!

RI);

RI=0;

}

while(SBUF!

=0);

}

2.接收程序

#include

#defineucharunsignedchar

voidinit(void);

voidreceive(void);

voiddelay(int);

ucharTAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchari,sum;

main()

{init();

receive();

}

voidinit(void)

{EA=1;

ES=1;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

PCON=0x00;

TR1=1;

SCON=0x50;

}

voiddelay(intx)

{inti,j;

for(i=0;i

for(j=1;j<150;j++);

}

voidreceive(void)

{ucharTABS[10];

do

{while(!

RI);

RI=0;

}

while((SBUF^0xaa)!

=0);

SBUF=0xbb;

while(!

TI);

TI=0;

while

(1)

{sum=0;

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

{while(!

RI);

RI=0;

TABS[i]=SBUF;

sum+=TABS[i];

}

while(!

RI);

RI=0;

if((SBUF^sum)==0)

{SBUF=0x00;

while(!

TI);

TI=0;

break;

}

else

{SBUF=0xff;

while(!

TI);

TI=0;

}

}

while

(1)

{for(i=0;i<=9;i++)

{P1=TABS[i];

delay(500);

}

}

}

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2