单片机原理及应用实习总结报告.doc

上传人:wj 文档编号:2730485 上传时间:2023-05-04 格式:DOC 页数:17 大小:344KB
下载 相关 举报
单片机原理及应用实习总结报告.doc_第1页
第1页 / 共17页
单片机原理及应用实习总结报告.doc_第2页
第2页 / 共17页
单片机原理及应用实习总结报告.doc_第3页
第3页 / 共17页
单片机原理及应用实习总结报告.doc_第4页
第4页 / 共17页
单片机原理及应用实习总结报告.doc_第5页
第5页 / 共17页
单片机原理及应用实习总结报告.doc_第6页
第6页 / 共17页
单片机原理及应用实习总结报告.doc_第7页
第7页 / 共17页
单片机原理及应用实习总结报告.doc_第8页
第8页 / 共17页
单片机原理及应用实习总结报告.doc_第9页
第9页 / 共17页
单片机原理及应用实习总结报告.doc_第10页
第10页 / 共17页
单片机原理及应用实习总结报告.doc_第11页
第11页 / 共17页
单片机原理及应用实习总结报告.doc_第12页
第12页 / 共17页
单片机原理及应用实习总结报告.doc_第13页
第13页 / 共17页
单片机原理及应用实习总结报告.doc_第14页
第14页 / 共17页
单片机原理及应用实习总结报告.doc_第15页
第15页 / 共17页
单片机原理及应用实习总结报告.doc_第16页
第16页 / 共17页
单片机原理及应用实习总结报告.doc_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及应用实习总结报告.doc

《单片机原理及应用实习总结报告.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用实习总结报告.doc(17页珍藏版)》请在冰点文库上搜索。

单片机原理及应用实习总结报告.doc

单片机实习总结

一实习目的

1.通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;

2.通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;

3.掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘、显示等程序的编制及调试(汇编语言、C语言均可);

4.通过单片机系统的硬件焊接、调试,程序的编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握测控系统的工作原理、开发方法;

5.培养学生解决实际问题的能力,提高对理论知识的感性认识。

二实习意义

通过本实习不但可以单片机的软硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能型的探索精神,提高学生的综合素质,培养学生应用单片机实现工业控制系统的设计、开发与调试的能力。

在制作学习过程中,不但可以掌握软硬件的综合调试方法,而且可以是学生对单片机智能性产生强烈的欲望达到最大限度的掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

三系统基本组成及工作原理

3.1系统基本组成

最小系统包括单片机的晶振、复位、电源、下载电路,以及简单的输入输出等模块,其框图如图1所示。

在基本档完成的前提下设计完成扩展模块,使显示信息更丰富,其框图如图2所示。

图1最小系统框图

电源模块

喇叭

四位LED显示

显示驱动

乐曲演奏琴键模块

STC89C52RC

键盘模块

循环灯模块

复位

串口下载、通讯模块

晶振

图2扩展总框图

3.2系统工作原理

在单片机的P3口接12个发光二极管,通过外部中断、定时中断和位扫描等程序控制实现每个发光二极管指示灯闪烁。

将全部行线至于低电平,检验列线的状态,只要有一列的电平为底,则表示键盘中键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中;若所有列线均为高电平,则表示键盘中无按键按下。

四系统硬件设计

4.1电路设计

利用单片机的P1口扩展一个4×4的矩阵键盘;单片机的P3.0和P3.1连接联机通讯模块;P2.0-P2.3口作四位数码显示接口;P3.2—P3.7口做交通灯和循环灯接口。

电路最小系统原理和模块如图3所示。

电路系统原理图如图附录1所示

图3-1

图3-2

五系统软件设计

5.1主程序设计

开始

初始化

状态号设为默认1

取得状态号n,根据n值,选择程序分支

n=1,执行状态1处理程序

n=2,执行状态2处理程序

n=3,执行状态3处理程序

n=4,执行状态4处理程序

图5主程序流程框图、

n=5,执行状态5处理程序

主程序包括5个部分,以状态号标识系统所处的状态。

在上电初始化后即进入状态号的轮询扫描,状态号的值决定了子程序的入口。

其中子程序分别为:

循环灯点亮(状态号为1)、四位数码显示倒计时(状态号为2)、交通灯控制(状态号为3)、电子琴演奏(状态号为4)。

PC机(状态号位5)主程序流程框图如图5所示:

5.2功能子程序设计

5.2.1循环灯控制模块

利用查表法,定时器定时实现任意历程跑马灯的控制。

5.2.2四位数码显示模块

编程实现千位数秒倒计时。

5.2.3交通灯控制模块

利用模块1和模块2的硬件电路模拟实现十字路口交通等的管理功能,要求有黄灯闪烁警示功能。

信号灯控制系统:

南北线有红黄绿三只信号灯,东西线有红黄绿三只信号灯。

表1交通灯切换控制顺序表

时间(秒)

南北线

绿黄红

东西线

绿黄红

30

10

亮灭灭

灭闪灭

灭灭亮

灭灭亮

30

10

灭灭亮

灭灭亮

亮灭灭

灭闪灭

5.2.4电子琴模块

该模块的硬件电路,可以利用单片机的1位IO口接一只三极管来驱动蜂鸣器,演奏编好的乐谱;或者实现利用按键模拟电子琴演奏。

利用定时器控制单片机引脚发出一定频率(声波频率20Hz~20000Hz)的方波信号,就可使喇叭发出单调的声音,也可以产生DO,RE,ME,FA,SO,LA,XI等音阶在内的各种频率声音。

乐曲演奏模块

通过编程将乐谱输入输入单片机,由外接扬声器奏出悦耳动听的音乐。

5.2.5PC通讯

六实习总结、体会

   通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真真正自己的东西。

 

首先在做本次实习的过程中,我感触最深的当属查阅大量的设计资料了。

为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

我们是在做单片机实习,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。

 

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

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

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

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

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

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

参考文献

1.彭伟.单片机C语言程序设计实训100例——基于8051+Proteus仿真.北京:

电子工业出版社,2011

2.郭天祥.新概念51单片机C语言教程——入门、提高、开发、拓展全攻略.北京:

电子工业出版社,2009

3.刘建清.轻松玩转51单片机C语言.北京:

北京航空航天大学出版社,2010

4.谭浩强.C程序设计.北京:

清华大学出版社,1991

5.求是科技.单片机典型模块设计实例导航。

北京:

人民邮电出版社,2004

6.潘新民,王燕芳.单片微型计算机实用系统设计.北京:

电子工业出版社,2011

7.胡汉才.单片微机原理及其接口技术.清华大学出版社,2010(推荐教材)

8.宏晶科技STCMicrocontrollerHandbook,2007

9.单片机教程网

附件1单片机实习最小系统原理总图

附件2实习材料清单

附件3实习工作进展及完成记录表

附件4调试通过的源程序清单

附件1原理总图

附件2单片机实习最小系统设计材料清单

材料名称

规格

数量

备注

说明

电阻

10k

1

R1

电阻

1k

7

R2-R8

电阻

200

12

R10-R21

电容

30pf

2

C1C2

电容

1uf

4

C4-C7

电解性电容

220uf

1

C3

电解性电容

10uf

1

C8

芯片

AT89C51

1

芯片

NAX232

1

三极管

5

pnp

Q1-Q5

发光二极管

LED-RED

4

D1D2D9D10

发光二极管

LED-GREEN

4

D3D4D11D12

发光二极管

LED-YELLOW

4

D5D6D13D14

9键插座

CONN-D9F

1

喇叭

SOUNDER

1

多功能电路板

1

管座

40位

1

管座

16位

1

按钮

16

晶振

12M

1

排阻

8*10k

1

RP1

4位液晶数码管

1

共阳极

实习工具清单

工具

规格

数量

电烙铁

1

钳子

尖口

1

钳子

圆口

1

附件4源程序清单

17

1.循环灯点亮

#include

#include

#include"led.h"

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeled_table[]=

{

0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,

0xfb,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,

0xfb,0xf3,0xe3,0xc7,0x8f,0x1f,0x3e,0x7f,0xff,0xff,

0xcf,0xb7,0x7b,0xff,0xff,0x7b,0xb7,0xcf,0xff

};

intsu_du=1500;

voidlighting_led()

{

staticuchari;

staticuintm;

m++;

if(i==34)i=0;

if(m==su_du)

{

m=0;

P3=led_table[i++];

}

if(m>su_du)

m=0;

}

2.四位数码显示

(1)#include"daojishi.h"

#include"timer0.h"

bitdaojishi_OK=0;

intjishi=0;

void_Dao_Ji_Shi()

{

staticucharMinute_buf=2;

if(daojishi_OK==1)

{

if(Minute_buf!

=shi_zhong)

{

jishi--;

if(jishi<0)

{ jishi=0;

daojishi_OK=0;

}

}

Minute_buf=shi_zhong;

}

}

(2)#include"REG52.h"

#include"timer0.h"

typedefunsignedcharBYTE;

typedefunsignedintWORD;

//-----------------------------------------------

/*defineconstants*/

#defineFOSC12000000L

#defineT1MS(65536-FOSC/12/1000)//1mstimercalculationmethodin12Tmode

/*defineSFR*/

sbitwe1=P2^3;

sbitwe2=P2^2;

sbitwe3=P2^1;

sbitwe4=P2^0;

/*definevariables*/

BYTEcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x86,0x8e};

WORDcount;//1000timescounter

WORDshi_zhong=0;

WORDbeep_delay_count;

bitseg_flag;

bitsearch_key_flag;

//-----------------------------------------------

voidseg_display(WORDdat)

{

switch(count%4)

{

case0:

P0=0xff;

we1=0;we2=1;we3=1;we4=1;

P0=table[dat/1000];

break;

case1:

P0=0xff;

we1=1;we2=0;we3=1;we4=1;

P0=table[dat%1000/100];

break;

case2:

P0=0xff;

we1=1;we2=1;we3=0;we4=1;

P0=table[dat%100/10];

break;

case3:

P0=0xff;

we1=1;we2=1;we3=1;we4=0;

P0=table[dat%10];

break;

default:

;

}

}

/*Timer0interruptroutine*/

voidtm0_isr()interrupt1

{

TL0=T1MS;//reloadtimer0lowbyte

TH0=T1MS>>8;//reloadtimer0highbyte

if(TR1==1)beep_delay_count++;

if(count++==1000)//1ms*1000->1s

{

count=0; //resetcounter

shi_zhong++;

}

seg_flag=1;

if(count%10==0)

search_key_flag=1;

}

//-----------------------------------------------

voidtm0_int()

{

TMOD=0x01;//settimer0asmode1(16-bit)

TL0=T1MS;//initialtimer0lowbyte

TH0=T1MS>>8;//initialtimer0highbyte

TR0=1;//timer0startrunning

ET0=1;//enabletimer0interrupt

EA=1;//openglobalinterruptswitch

count=0;//initialcounter

}

3.交通灯控制

#include

#include"traffic.h"

#include"timer0.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitRED_A=P3^2;

sbitRED_B=P3^3;

sbitGREEN_A=P3^4;

sbitGREEN_B=P3^5;

sbitYELLOW_A=P3^6;

sbitYELLOW_B=P3^7;

uchardao_ji_shi=0;

ucharOperation_Type=1;

voidTraffic_lignt()

{ dao_ji_shi=29-shi_zhong%30;

switch(Operation_Type)

{

case1:

RED_A=1;YELLOW_A=1;GREEN_A=0;//A绿灯、B红灯亮

RED_B=0;YELLOW_B=1;GREEN_B=1;

if(dao_ji_shi<11)//十秒

{

Operation_Type=2;

}

break;

case2:

if(dao_ji_shi==10||dao_ji_shi==8||dao_ji_shi==6||dao_ji_shi==4||dao_ji_shi==2||dao_ji_shi==0)

{

YELLOW_A=0;

}else

YELLOW_A=1; //A黄灯闪烁5s

if(dao_ji_shi==29)

Operation_Type=3;

RED_A=1;GREEN_A=0;//A绿灯、B红灯亮

RED_B=0;GREEN_B=1;

break;

case3:

RED_A=0;YELLOW_A=1;GREEN_A=1;//A红灯、B绿灯亮

RED_B=1;YELLOW_B=1;GREEN_B=0;

if(dao_ji_shi<11)//十秒

{

Operation_Type=4;

}

break;

case4:

//B黄灯闪烁5s

if(dao_ji_shi==10||dao_ji_shi==8||dao_ji_shi==6||dao_ji_shi==4||dao_ji_shi==2||dao_ji_shi==0)

{

YELLOW_B=0;

}else

YELLOW_B=1;

RED_A=0;GREEN_A=1;//A红灯、B绿灯

RED_B=1;GREEN_B=0;

if(dao_ji_shi==29)

Operation_Type=1;

break;

default:

break;

}

}

4.电子琴、乐曲演奏

#include

#include"dianziqin.h"

#include"timer0.h"

#include"key.h"

#defineucharunsignedchar

#defineuintunsignedint

sbitbeep=P2^4;

uintcodeTone_Delay_Table[]= //音符延时

{64021,64103,64260,64400,64524,64580,64684,64777,

64820,64898,64968,65030,65058,65110,65157,65178};

ucharcodeDSY_Table[]= //数码管

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,

0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF};

//第一段

ucharcodesong1_Tone[]={0,1,2,3,4,5,5,6,7,8,9,10,11,12,13,14,15,15,14,13,

12,11,10,9,8,7,6,5,4,3,2,1,0xff};

ucharcodesong1_Time[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xff};

//第二段

ucharcodesong2_Tone[]={3,5,5,3,2,1,2,3,5,3,2,3,5,5,3,2,1,2,3,2,1,1,0xff};

ucharcodesong2_Time[]={2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,0xff};

//第三段

ucharcodesong3_Tone[]={1,3,3,3,3,5,4,2,5,3,7,6,5,5,7,4,4,3,6,7,2,1,0xff};

ucharcodesong3_Time[]={2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,0xff};

//音乐片段引索,音符引索

ucharsong_index=0,Tone_index=0;

//指针

uchar*song_Tone_Pointer,*song_Time_Pointer;

//取音符位置

uchari=0;

ucharKeyNo;//按键

ucharinter_cont=0;

voidDian_zi_qin()

{

if(Key_value!

=0)

{

TR1=1;

KeyNo=Key_value;

beep_delay_count=0;

}

elseif(beep_delay_count>=200)

{

beep=1;

TR1=0;

}

if(inter_cont>0)

{

switch(inter_cont-1)

{

case0:

song_Tone_Pointer=song1_Tone;

song_Time_Pointer=song1_Time;

break;

case1:

song_Tone_Pointer=song2_Tone;

song_Time_Pointer=song2_Time;

break;

case2:

song_Tone_Pointer=song3_Tone;

song_Time_Pointer=song3_Time;

break;

default:

break;

}

Tone_index=song_Tone_Pointer[i];

if(Tone_index==0xff)

{

TR1=0;

i=0;

}

else

{ TR1=1;

}

if(beep_delay_count>=song_Time_Pointer[i]*200)

{

beep=1;

beep_delay_count=0;

i++;

}

}

}

/*Timer0interruptroutine*/

voidtm1_isr()in

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

当前位置:首页 > 表格模板 > 合同协议

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

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