单片机原理及应用实习总结报告Word下载.docx
《单片机原理及应用实习总结报告Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实习总结报告Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
利用单片机的P1口扩展一个4×
4的矩阵键盘;
单片机的P3.0和P3.1连接联机通讯模块;
P2.0-P2.3口作四位数码显示接口;
P3.2—P3.7口做交通灯和循环灯接口。
电路最小系统原理和模块如图3所示。
电路系统原理图如图附录1所示
图3-1
图3-2
五系统软件设计
5.1主程序设计
主程序包括5个部分,以状态号标识系统所处的状态。
在上电初始化后即进入状态号的轮询扫描,状态号的值决定了子程序的入口。
其中子程序分别为:
循环灯点亮(状态号为1)、四位数码显示倒计时(状态号为2)、交通灯控制(状态号为3)、电子琴演奏(状态号为4)。
PC机(状态号位5)主程序流程框图如图5所示:
5.2功能子程序设计
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.单片机教程网www.51hei./
附件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];