应用电子实训报告1.docx
- 文档编号:18573321
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:18
- 大小:220.14KB
应用电子实训报告1.docx
《应用电子实训报告1.docx》由会员分享,可在线阅读,更多相关《应用电子实训报告1.docx(18页珍藏版)》请在冰点文库上搜索。
应用电子实训报告1
综合实训报告书
专业:
应用电子技术
班级:
学号:
姓名:
指导教师:
实习方向:
单片机系统开发与设计
实习时间:
年月日-年月日
填表日期:
年月日
计算机系
实习题目
单片机数据采集与定时系统
指导教师评语及成绩:
成绩:
教师签名:
职称:
年月日
系审查意见:
审查成绩:
审查人签名:
职称:
系签章:
年月日
教务处终审意见:
终审成绩:
终审人签名:
职称:
公章:
年月日
前言
单片机课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
在生活中,数字电子表的优点受到人们的欢迎,在很多场合得到了广泛的应用。
《单片原理及应用》是一门技术性、应用性很强的学科,实践教学是它的一个极为重要的环节。
不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验教学。
如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。
任随书本上把单片机技术介绍得多么重要、多么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。
本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS—52单片机都种资源应用并具有综合功能的数字电子表的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。
在这次单片机课程设计中,同学们完成了单片机数据采集与定时系统的硬件电路设计。
本次综合实践是在此基础上,完成该系统的软件设计与调试。
待仿真成功后,再将程序烧写入单片机中。
单片机是将CPU、存储器、输入/输出接口、定时/计数器等集成在一块芯片上,是目前销量最大、应用面最广、价格最便宜的微型计算机。
摘要
显示在人们的日常生活中占有重要的地位,随着人们生活质量的不断提高,对显示器质量和性能的要求也越来越高。
LED的出现,使生活的质量得以有效提高,对于电视、广告牌制作等也提供了更大的发展空间。
本系统采用单片机AT89C51为中心器件来设计LED显示牌,系统实用性强、操作简单、扩展性强。
本设计就是采用单片机模拟红外线控制家用电器。
本设计系统由单片机I/O口扩展系统、LED、数码管显示器系统、中断控制系统、复位电路等几大部分组成。
系统除基本16*16点阵显示外,还可以根据实际要求的需要,对其外围显示部分进行扩展。
软件上采用C51编程,主要编写了主程序,数字显示程序,中断程序延时程序等。
经过整机调试,实现了对电器的模拟控制。
关键词:
AT89C51,数码管,LCD602集成块,键盘控制花样
第一章单元电路模块设计
1.1单片机最小应用系统电路设计
选取原则:
传统做法,但能够实现所需,即最简单也最是实用。
电容选取22uF,晶振为11.0592Hz。
注:
该最小系统由按键复位RESET电路、晶体振荡电路以及I/O接口电路组成。
复位的实现通常用2种方式:
开机上电复位和外部手动复位,本设计用的是外部手动复位。
电路图1-1如下:
图1-1最小应用系统电路图
1.2单片机4*4按键
设计硬件上采用AT89C52为单片机的最小系统,单片机的P1口与键盘相连,P1.0—P1.3管脚分别与键盘的四行连接,P1.4—P1.7管脚分别与键盘的四列相连;P0口P1.0—P1.7管脚与数码管1的a—dp相连,P2口P2.0—P2.7管脚分别与数码管2的a—dp相连,数码管的公共端接+5V电源,控制数码管的显示;发光二极管的阴极与单片机的P3.0管脚连接,阳极与+5V电源连接,低电平有效,控制二极管发光;
程序上采用定时扫描方式,利用定时T0产生50ms定时中断,CPU响应中断后进入Scan_Key()子程序对键盘进行扫描,对P1口初值0xf7扫描第一行,进入延时程序消抖动后,进入switch()语句,屏蔽行的低四位,取列的高四位,检测哪一列有键按下,若有键按下,标志位FLAG0=1,发光二极管的到低电平发光;令P1口的初值右移一位后或0x80进行高位补一,扫描第二行,如此循环右移,四行便全都检测到了。
当有键按下时,m!
=0xf0,进入while循环不停地执行m&0xf0语句,使m=0xf0;按键松开后,m=0xf0跳出while循环,执行中断程序,显示按键的值。
图1-2按键原理图
1.3LED及数码管的显示
1.3.1数码管的基本概念
(1)段码
数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。
本次实验使用的是共阴数码管,公共端是1、6,公共端置0,则某段选线置1相应的段就亮。
公共端1控制左面的数码管;公共端6控制右面的数码管。
正面看数码管的引脚、段选线和数据线的对应关系为:
图1-3-1数码管封装图图1-3-2数据线与数码管管脚连接关系
段码是指在数码管显示某一数字或字符时,在数码管各段所对应的引脚上所加的高低电平按顺序排列所组成的一个数字,它与数码管的类型(共阴、共阳)和与数据线的连接顺序有关。
(2)位码
位码也叫位选,用于选中某一位数码管。
在实验图中要使第一个数码管显示数据,应在公共端1上加低电平,即使P2.7口为0,而公共端6上加高电平,即使P2.6口为1。
位码与段码一样和硬件连接有关。
1.3.2多位数码管的动态显示
在多位8段数码管显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个单片机的8位I/O口控制,形成段选线的多路复用。
而各位数码管的共阳极或共阴极分别由单片机独立的I/O口线控制,顺序循环地点亮每位数码管,这样的数码管驱动方式就称为“动态扫描”。
在这种方式中,虽然每一时刻只选通一位数码管,但由于人眼具有一定的“视觉残留”,只要延时时间设置恰当,便会感觉到多位数码管同时被点亮了。
多位8段LED动态显示器电路,其中段选线占用一个8位I/O口,位选线占用一个8位I/O口,由于各位的段选线并联,段线码的输出对各位来说都是相同的。
因此,同一时刻,如果各位位选线都处于选通状态的话,8位LED将显示相同的字符。
若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一位的位选线处于选通状态时,其它各位的位选线处于关闭状态,这样,8位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。
同样,在下一时刻,只让下一位的位选线处于选通状态,而其他的位选线处于关闭状态。
如此循环下去,就可以使各位“同时”显示出将要显示的字符。
由于人眼有视觉暂留现象,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到显示的目的。
1.3.3实验原理图
图1-3-3实验原理图
1.4串口通讯
MCS-51单片机具有一个全双工的串行通信接口,能同时进行发送和接收。
它可以作为UART(通用异步接收和发送器)使用,也可以作为同步的移位寄存器使用。
1.4.1数据缓冲寄存器SBUF
SBUF是可以直接寻址的专用寄存器。
物理上,它对应着两个寄存器,即一个发送寄存器一个接收寄存器,CPU写SBUF就是修改发送寄存器;读SBUF就是读接收寄存器。
接收器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时的响应接收器的中断,没有把上一帧的数据读走而产生两帧数据重叠的问题。
对于发送器,为了保持最大的传输速率,一般不需要双缓冲,因为发送时CPU是主动的,不会产生重叠问题。
1.4.2状态控制寄存器SCON
SCON是一个逐位定义的8位寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。
它的各个位定义如下:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0和SM1是串口的工作方式选择位,2个选择位对应4种工作方式
如下表,其中Fosc是振荡器的频率。
SM0 SM1
工作方式
功能
波特率
0 0
0
8位同步移位寄存器
Fosc/12
0 1
1
10位UART
可变
1 0
2
11位UART
Fosc/64或Fosc/32
1 1
3
11位UART
可变
SM2在工作方式2和3中是多机通信的使能位。
在工作方式0中,SM2必须为0。
在工作方式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。
在工作方式2和3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位
数据(RB8)为1,则RI置位。
此功能可用于多处理机通信。
REN为允许串行接收位,由软件置位或清除。
置位时允许串行接收,清除时禁止串行接收。
TI为发送中断标志位,由硬件置位,软件清除。
工作方式0中在发送第8位末尾由硬件置位;在其他工作方式时,在发送停止位开始时由硬件置位。
TI=1时,申请中断。
CPU响应中断后,发送下一帧数据。
在任何工
作方式中都必须由软件清除TI。
RI为接收中断标志位,由硬件置位,软件清除。
工作方式0中在接收第8位末尾由硬件置位;在其他工作方式时,在接收停止位的中间由硬件置位。
RI=1时,申请中断,要求CPU取走数据。
但在工作方式1中,SM2=1且未接收到有效的停止位时,不会对RI置位。
在任何工作方式中都必须由
软件清除RI。
第二章软件编程设计
2.1数码管的动态显示程序设计
/*01数码管的显示,静态显示,只显示一位数码管*/
#include"reg51.h"
/********************/
unsignedchartable[]=
{0x3f,0x06,0x5b,0x4f,0x6d,0x7d};
//共阴数码管0-9表
/********************/
sbitLHJ_A=P1^0;//管脚定义74HC138(3-8)译码器输入控制信号线
sbitLHJ_B=P1^1;
sbitLHJ_C=P1^2;
/********************///宏定义,定义数码管显示第几位
#defineSMG_1LHJ_C=0;LHJ_B=0;LHJ_A=0//译码器的输入脚,全0选择第一位数码管。
#defineSMG_2LHJ_C=0;LHJ_B=0;LHJ_A=1//译码器的输入脚,001选择第二位数码管。
#defineSMG_3LHJ_C=0;LHJ_B=1;LHJ_A=0//同上类推
#defineSMG_4LHJ_C=0;LHJ_B=1;LHJ_A=1
#defineSMG_5LHJ_C=1;LHJ_B=0;LHJ_A=0
#defineSMG_6LHJ_C=1;LHJ_B=0;LHJ_A=1
#defineSMG_7LHJ_C=1;LHJ_B=1;LHJ_A=0
#defineSMG_8LHJ_C=1;LHJ_B=1;LHJ_A=1
/******************************/
voiddelay(unsignedintd_time);
//延时子函时?
voidmain()
{
while
(1)
{
SMG_1;
P2=table[0];
delay(500);
SMG_2;
P2=table[1];
delay(500);
SMG_3;
P2=table[2];
delay(500);
SMG_4;
P2=table[3];
delay(500);
SMG_5;
P2=table[4];
delay(500);
SMG_6;
P2=table[5];
delay(500);
}
}
voiddelay(unsignedinttmp)//延时子函数,tmp为延时时间长短
{
unsignedchari,j;
i=tmp;
while(i--){
j=255;
while(j--);
}
}
2.2串口通讯程序设计
#include
#include
#include
sbitJDQ=P3^5;//JDQ定义为P3口的第5位,就是驱动继电器的那个脚
sbitSPK=P3^4;//SPK定义为P3口的第4位,驱动蜂鸣器
codeunsignedcharkey_tab[17]={0xed,0x7e,0x7d,0x7b,
0xbe,0xbd,0xbb,0xde,
0xdd,0xdb,0x77,0xb7,
0xee,0xd7,0xeb,0xe7,0XFF};//========================此数组为键盘编码,
//123a0x010x020x030x0a
//456b0x040x050x060x0b
//789e0x070x080x090x0d
//*0#f0x0c0x0d0x0e0x0f
//打个比方,如果你按下0键,P0口读到数据为0xed
//如果你按下2键,P0口读到数据为0x7d,按下9键为0xdb,
//将读到的P0口数据经过查表法就能得到相应的16进制码
//键盘的读取,采用分时扫描
unsignedcharl_key=0x0;//定义变量,存放键值
unsignedcharl_keyold=0xFF;//做为按键松开否的凭证
voidReadKey(void);//扫描键盘获取键值
codeunsignedchartable[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79};
//共阴数码管0-9表
unsignedcharl_tmpdate[4]={0,0,0,0};
voiddisplay(unsignedchar*lp,unsignedcharlc);//显示
unsignedcharn,tmpSbuf;
unsignedintw;//定义变量,存放键值
voiddisplay(unsignedchar*lp,unsignedcharlc);//数字的显示函数;lp为指向数组的地址,lc为显示的个数
voiddelay();//延时子函数,5个空指令
voidReadKey(void)//读键盘值
{
unsignedchari,j,key;
j=0xfe;
key=0xff;//设定初值
for(i=0;i<4;i++){
P0=j;//P0口低4位循环输出0,扫描键盘
if((P0&0xf0)!
=0xf0){//如果有键按下,P0口高4位不会全为1,
key=P0;//读取P0口,退出循环,否则循环下次
break;
}
j=_crol_(j,1);//此函数功能为左循环移位
}
if(key==0xff){//如果读取不到P0口的值,比如是干扰,不做键值处理,返回
l_keyold=0xff;
SPK=1;//按键有松开,停止蜂鸣器响
return;
}
if(l_keyold==key){//检测按键放开否,如果一样表明没放开,
return;
}
SPK=0;//有键按下,驱动蜂鸣器响
l_keyold=key;//获取键码做为放开的凭证
for(i=0;i<17;i++){//查表获得相应的16进制值存放l_key变量中
if(key==key_tab[i]){
l_key=i;
break;
}
}
}
voidsend(unsignedcharz)//发送数据
{ES=0;
SBUF=z;
while(!
TI);
TI=0;
ES=1;
}
voidser()interrupt4//串口中断
{ES=0;
RI=0;
tmpSbuf=SBUF;
l_tmpdate[0]=tmpSbuf/1000;
l_tmpdate[1]=tmpSbuf%1000/100;
l_tmpdate[2]=tmpSbuf%1000%100/10;
l_tmpdate[3]=tmpSbuf%10;
if(w==1)
{
send(tmpSbuf);
}
w=1;
ES=1;
}
voiddisplay(unsignedchar*lp,unsignedcharlc)//显示
{
unsignedchari;//定义变量
P2=0;//端口2为输出
P1=P1&0xF8;//将P1口的前3位输出0,对应138译门输入脚,全0为第一位数码管
for(i=0;i P2=table[lp[i]];//查表法得到要显示数字的数码段 delay();//延时5个空指令 if(i==lc)//检测显示完8位否,完成直接退出,不让P1口再加1,否则进位影响到第四位数据 break; P2=0;//清0端口,准备显示下位 P1++;//下一位数码管 } } voiddelay(void)//空5个指令 { _nop_();_nop_();_nop_();_nop_();_nop_(); } voidmain() {TMOD=0x20; SCON=0x50; EA=1; EX0=1; IT0=1; TL1=0xfd; TH1=0xfd; ES=1; TR1=1; while (1) { ReadKey(); if(l_key! =0xff) { n=l_key; l_key=0xff; SBUF=n; while(! TI); TI=0; l_tmpdate[0]=n; n=0; } display(l_tmpdate,4); } } 总结 通过本次实训,我们初步认识了STC-52系列单片机的基本知识与最小系统的简单运用,学会了编写简单的运用程序,掌握了单片机的内部基本结构与基本的外围电路。 在焊接电路板的过程中,相距模电实验之后,再次熟悉了电子线路的焊接与调试,加强和巩固路了电子线路的故障排查。 达到了相应的目的: 巩固,加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;培养针对课题需要,选择和查阅有关手册,图标及文献资料的自学能力,提高组成系统,编程,调试的动手能力;通过对课题设计方案的分析,选择,比较,熟悉单片机用系统开发,研制的过程,软件硬件设计的方法,内容及步骤。 致谢 在本次设计中,从指导老师身上学到了很多东西,老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。 他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。 另外,在本系统的过程中,老师给了我很大的帮助,帮助我解决了很多的难点,当然还有同学的帮助,在这里我要感谢他们,谢谢他们的帮助。 在这段时间我感觉到了很大的压力,因为真正到了动手操作的时候,同学们水平不一,这让我想到了以后的工作要怎么办,现在对我们来说,没有什么忧愁的,可以后那? 我知道了把自己的专业学好是多么重要。 不过,这次我也学到了很多,比如这次论文,我从来都没有些过这么长的报告,也不怎么懂得排版,现在我明白了怎样写报告,怎样排版,更重要得是我学会了在单片机设计中的实际操作,在实习中我也学会怎样和别人相处,也知道了学习的重要性,所以以后我会更加努力。 参考文献 [1].汪德彪、郭杰.MCS-51单片机原理及接口技术.电子工业出版社,2001 [2].张伟、张杰.单片机原理与应用.机械工业出版社,2008 [3].付晓光.单片机原理与实用技术.北京交通大学出版社,2008 [4].马忠梅.单片机C语言程序设计.北航出版社,2010 [5].倪激烈.单片机原理及应用教程.电子科大出版社,2010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 子实 报告