C51程序设计结课报告Word文档格式.docx

上传人:b****5 文档编号:20770884 上传时间:2023-01-25 格式:DOCX 页数:18 大小:478.01KB
下载 相关 举报
C51程序设计结课报告Word文档格式.docx_第1页
第1页 / 共18页
C51程序设计结课报告Word文档格式.docx_第2页
第2页 / 共18页
C51程序设计结课报告Word文档格式.docx_第3页
第3页 / 共18页
C51程序设计结课报告Word文档格式.docx_第4页
第4页 / 共18页
C51程序设计结课报告Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C51程序设计结课报告Word文档格式.docx

《C51程序设计结课报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《C51程序设计结课报告Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

C51程序设计结课报告Word文档格式.docx

3.4仿真8

4十字交通灯的设计9

4.1设计任务9

4.2画出原理图9

4.3编辑程序9

4.4生成.hex文件13

4.5仿真13

4.5.1烧入.hex文件13

4.5.2仿真结果14

5结课总结14

1MCS-51系列单片机内部结构和引脚说明

在功能上,MCS-51系列单片机有基本型和增强型两类,以芯片型号的末位数字来区分,“1”为基本型,“2”为增强型。

如8051/8751/8031、80C51/87C51/80C31为基本型,而8052/8752/8032、80C52/87C52/80C32为增强型。

MCS-51系列单片机在片内程序存储器的配置上有3种形式,即掩膜ROM、EPROM和片内无程序存储器。

如在基本型中,8051内有4KB的掩膜ROM,8751内有4KB的EPROM,而8031片内无程序存储器,使用时需在单片机外部扩展程序存储器。

另外,属于MCS-51系列的单片机还有8044/8744/8344,这类单片机增加了串行接口单元(SIU),专门负责串行通信管理,使单片机的组网功能大大增强。

8051单片机功能方框图

1.1MCS-51型单片机存储器

MCS-51型单片机的存储器结构有两个重要的特点:

一是把数据存储器和程序存储器严格分开;

二是存储器有内外之分,其地址空间、存取指令和控制信号均有区别。

MCS-51型单片机的存储器组织结构有4个物理上相互独立的空间:

片内程序存储器和片外程序存储器,内部数据存储器和片外数据存储器。

但从用户的角度看,实际上存在3个独立的空间。

3个不同的空间用不同的指令和控制信号实现读、写功能操作。

1.2MCS-51型单片机并行输入/输出接口

MCS-51单片机有4个8位并行输入/输出(I/O)接口P0~P3,共32根I/O线。

这4个端口既可以并行输入或输出8位数据,又可以按位使用(每一位均可独立用作输入或输出)。

这些并行端口的每1位都由端口锁存器、逻辑控制电路、输出驱动电路和输入缓冲器组成。

为方便起见,常把4个端口和它的锁存器统称为P0~P3。

1.3MCS-51型单片机的时钟电路与时序

单片机本身就是一个复杂的同步时序电路,为了确保同步工作方式的执行,电路应在唯一的时钟信号控制下严格地按时序进行工作。

2KEILC51软件的使用

Keil软件的安装

2.1建立一个新工程

(1)、单击Project菜单,在弹出的下拉菜单中选中NewProject选

(2)、然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为suchao如下图所示,然后点击保存。

(3)、这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.

(4)、完成上一步骤后,屏幕如下图所示

2、编写简单程序

(1)、新建文本文档在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“SaveAs”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。

注意,如果用C语言编写程序,则扩展(.c);

(2)、添加程序文件到工程文件中

回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单

选中Test.c,然后单击“Add”屏幕好下图所示

(3)、编写程序

3、调试程序

4、生成.HEX文件

单击“Project”菜单,再在下拉菜单中单击“OptionsforTarget‘Target1’”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,供下载器软件使用。

把程序下载到AT89S51单片机中。

3Proteus软件使用

3.1进入ProteusISIS

3.2寻找元器件

3.3画出电路图

通过keilC编译并生成.hex文件。

3.4仿真

双击单片机芯片,弹出如图1.2.18所示的对话框,在ProgramFile选项内添加.hex文件。

4十字交通灯的设计

4.1设计任务

设计一个实时控制的十字交通灯

4.2画出原理图

4.3编辑程序

#include<

at89x51.h>

Unsignedcharcodesegdata[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

unsignedcharledcode[]={0x0c,0x0c,0x0a,0x21,0x21,0x11};

//**********************0x21东西红灯,南北绿灯

//**********************0x11东西红灯,南北黄灯

//**********************0x0c东西绿灯,南北红灯

//**********************0x0a东西黄灯,南北红灯

unsignedcharsecond;

unsignedcharred,gre,yell;

//unsignedcharkeycnt;

unsignedinttcnt,flag;

//unsignedintk;

voiddeplay10ms(void)

{

unsignedinti,j;

for(i=0;

i<

4;

i++)

for(j=0;

j<

250;

j++);

}

voids0(void)

P1=0xfe;

P0=segdata[red/10];

P3=segdata[gre/10];

deplay10ms();

P1=0xfd;

P0=segdata[red%10];

P3=segdata[gre%10];

voids1(void)

P3=segdata[yell/10];

P3=segdata[yell%10];

voids2(void)

P3=segdata[red/10];

P0=segdata[gre/10];

P3=segdata[red%10];

P0=segdata[gre%10];

voids3(void)

P0=segdata[yell/10];

P0=segdata[yell%10];

voidsegplay(void)

switch(flag)

{

case0:

case1:

s0();

break;

case2:

s1();

case3:

case4:

s2();

case5:

s3();

}

voidyells(void)

{

unsignedchari;

P2=ledcode[flag];

for(i=0;

10;

segplay();

P2=ledcode[flag]&

0xed;

voidgres(void)

0xdb;

voidmain(void)

TMOD=0x01;

ET0=1;

EA=1;

TH0=0x3c;

TL0=0xb0;

tcnt=0;

TR0=1;

second=30;

flag=0;

while

(1)

red=second;

gre=second-5;

yell=second;

P2=ledcode[flag];

gres();

yells();

voidt0(void)interrupt1using0

tcnt++;

if(tcnt==20)

second--;

if(second==0)

flag++;

if(second==5)

{flag++;

}

if(second==10)

if(flag==6)

{flag=0;

4.4生成.hex文件

4.5仿真

4.5.1烧入.hex文件

4.5.2仿真结果

5结课总结

本学期我们开设了C51这门课程,原本我以为这门课程会是很枯燥的,然而这学期经过老师的精心安排,将许多课本上的知识许多实际中的事情相结合,渐渐地让我对这门课产生了兴趣。

通过一个学期的学习,我才发现C51不仅仅是要学到软件上的知识,还要学到硬件上的知识,于是我认真的学习C51,并在每次做完实验后认真的做实验报告,并且进行了实训,通过实训,让我更熟悉掌握了KeiluVision3,proteusISIS,Protel99SE这些应用程序的运用,让我懂得了如何编写一些简单的程序,还有焊接和程序固化但是在做的过程中还是有不少错误。

这让我认识到以后,要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;

要有一个清晰的思路和一个完整的的软件流程图;

在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;

要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;

在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。

这也让我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

最后感谢赵老师对我门的教导.

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

当前位置:首页 > 医药卫生 > 中医中药

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

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