单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx

上传人:b****6 文档编号:19154532 上传时间:2023-01-04 格式:DOCX 页数:31 大小:336.27KB
下载 相关 举报
单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx_第1页
第1页 / 共31页
单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx_第2页
第2页 / 共31页
单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx_第3页
第3页 / 共31页
单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx_第4页
第4页 / 共31页
单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx

《单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。

单片机原理及应用实习总结材料报告材料Word文档下载推荐.docx

5.2.1循环灯控制模块

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

5.2.2四位数码显示模块

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

5.2.3交通灯控制模块

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

信号灯控制系统:

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

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

时间(秒)

南北线

绿黄红

东西线

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.潘新民,王燕芳.单片微型计算机实用系统设计.北京:

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

C3

10uf

C8

芯片

AT89C51

NAX232

三极管

5

pnp

Q1-Q5

发光二极管

LED-RED

D1D2D9D10

LED-GREEN

D3D4D11D12

LED-YELLOW

D5D6D13D14

9键插座

CONN-D9F

喇叭

SOUNDER

多功能电路板

管座

40位

16位

按钮

16

晶振

12M

排阻

8*10k

RP1

4位液晶数码管

共阳极

实习工具清单

工具

电烙铁

钳子

尖口

圆口

附件4源程序清单

1.循环灯点亮

#include<

reg52.h>

intrins.h>

#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"

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"

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:

we1=1;

we2=0;

P0=table[dat%1000/100];

case2:

we3=0;

P0=table[dat%100/10];

case3:

we4=0;

P0=table[dat%10];

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)

//initialtimer0lowbyte

//initialtimer0highbyte

TR0=1;

//timer0startrunning

ET0=1;

//enabletimer0interrupt

EA=1;

//openglobalinterruptswitch

//initialcounter

3.交通灯控制

traffic.h"

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)

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;

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=0;

GREEN_A=1;

//A红灯、B绿灯亮

RED_B=1;

GREEN_B=0;

if(dao_ji_shi<

Operation_Type=4;

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;

//A红灯、B绿灯

Operation_Type=1;

default:

break;

4.电子琴、乐曲演奏

dianziqin.h"

key.h"

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;

case1:

song_Tone_Pointer=song2_Tone;

song_Time_Pointer=song2_Time;

case2:

song_Tone_Pointer=song3_Tone;

song_Time_Pointer=song3_Time;

default:

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++;

voidtm1_isr()interrupt3

if(inter_cont==0)

TH1=Tone_Delay_Table[KeyNo]>

8;

TL1=Tone_Delay_Table[KeyNo];

else//if(inter_cont==0)

TL1=Tone_Delay_Table[Tone_index];

//reloadtimer1lowbyte

TH1=Tone_Delay_Table[Tone_index]>

8;

//reloadtimer1highbyte

beep=~beep;

voidtm1_int()

TMOD=TMOD|0x10;

//settimer1asmode1(16-bit)

TL1=Tone_Delay_Table[Tone_index];

//reloadtimer1lowbyte

TH1=Tone_Delay_Table[Tone_index]>

//reloadtimer1highbyte

TR1=0;

//timer1startrunning

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

当前位置:首页 > 自然科学

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

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