单片机原理及应用实习总结材料报告材料.docx
- 文档编号:6153318
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:31
- 大小:336.27KB
单片机原理及应用实习总结材料报告材料.docx
《单片机原理及应用实习总结材料报告材料.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实习总结材料报告材料.docx(31页珍藏版)》请在冰豆网上搜索。
单片机原理及应用实习总结材料报告材料
单片机实习总结
一实习目的
1.通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;
2.通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;
3.掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘、显示等程序的编制及调试(汇编语言、C语言均可);
4.通过单片机系统的硬件焊接、调试,程序的编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握测控系统的工作原理、开发方法;
5.培养学生解决实际问题的能力,提高对理论知识的感性认识。
二实习意义
通过本实习不但可以单片机的软硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能型的探索精神,提高学生的综合素质,培养学生应用单片机实现工业控制系统的设计、开发与调试的能力。
在制作学习过程中,不但可以掌握软硬件的综合调试方法,而且可以是学生对单片机智能性产生强烈的欲望达到最大限度的掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。
三系统基本组成及工作原理
3.1系统基本组成
最小系统包括单片机的晶振、复位、电源、下载电路,以及简单的输入输出等模块,其框图如图1所示。
在基本档完成的前提下设计完成扩展模块,使显示信息更丰富,其框图如图2所示。
图1最小系统框图
图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主程序设计
主程序包括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源程序清单
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()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]>>8;//reloadtimer1highbyte
TR1=0;//timer1startrunning
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 实习 总结 材料 报告