现代电子技术综合实验报告.docx

上传人:b****8 文档编号:11126477 上传时间:2023-02-25 格式:DOCX 页数:18 大小:216.40KB
下载 相关 举报
现代电子技术综合实验报告.docx_第1页
第1页 / 共18页
现代电子技术综合实验报告.docx_第2页
第2页 / 共18页
现代电子技术综合实验报告.docx_第3页
第3页 / 共18页
现代电子技术综合实验报告.docx_第4页
第4页 / 共18页
现代电子技术综合实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

现代电子技术综合实验报告.docx

《现代电子技术综合实验报告.docx》由会员分享,可在线阅读,更多相关《现代电子技术综合实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

现代电子技术综合实验报告.docx

现代电子技术综合实验报告

电子科技大学电子工程学院

 

实验报告

 

实验名称现代电子技术综合实验

 

姓名:

学号:

评分:

教师签字

 

电子科技大学教务处制

电子科技大学

实验报告

学生姓名:

学号:

指导教师:

实验地点:

实验时间:

一、实验室名称:

电子技术综合实验室

二、实验项目名称:

现代电子技术综合实验

三、实验学时:

40

四、实验目的与任务:

1、熟悉系统设计与实现原理

2、掌握KEILC51的基本使用方法

3、熟悉SMARTSOPC实验箱的应用

4、连接电路,编程调试,实现各部分的功能

5、完成系统软件的编写与调试

五、实验器材

1、PC机一台

2、示波器、SMARTSOPC实验箱一套

六、实验原理、步骤及内容

(一)试验要求

1)、程序开始后:

当核心板上LED的D1~D8只有第1个发光二极管亮时,同时第1个数码管显示数字1,其余显示‘-’;持续0.5秒之后,只有第2个发光二极管亮,同时第2个数码管显示数字2,其余显示‘-’;再过0.5秒,只有第3个发光二极管亮,同时第3个数码管显示数字3,其余显示‘-’;……;间隔0.5秒后,只有第8个发光二极管亮,同时第8个数码管显示数字8,其余显示‘-’。

此后进入循环状态。

循环过程中,按按键进入任务2。

2)、停止任务1中发光二极管显示,核心板上数码管的第1、2位显示学号最后二位,第4、5、6位显示‘-’。

第7、8位实现秒表功能,从5.0开始倒计时,计时到0.0后程序自动进入任务3.

3)、核心板上数码管其余不显示,第6、7、8位显示三位电压值(0.00~2.49V),增减调节电压值,LED1亮度跟随变化。

按按键进入任务1。

(二)实验内容

1、硬件设计

 

2、

各部分硬件原理

数码管动态扫描原理:

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

PWM调节LED亮度工作原理:

PWM信号波形是一系列占空比可调的方波脉冲。

该信号经低通滤波器后,可得到一个电压与占空比成正比的直流电压信号,当方波频率达到50Hz以上是,人眼基本无法觉察到闪烁,只能感觉到平均亮度(相当于低通滤波器)。

I2C工作原理:

I2C总线由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL。

I2C总线信号的连接方法如下图所示。

一般具有I2C总线的器件其SDA和SCL引脚都是漏极开路(或集电极开路)输出结构。

因此实际使用时,SDA和SCL信号线都必须接上拉电阻。

上拉电阻一般取值3-10KΩ。

ADC工作原理及应用:

3、软件设计

(三)思考题

程序任务跳转的按键改用外部中断模式,电路如何修改(画示意图)?

程序如何修改,写出中断服务程序。

答:

将KEY1与KEY2键通过跳线分别接到P3.2(INT0)与P3.3(INT1)接口上。

示意图及程序如下。

图7示意图

开启中断:

SysInit()

{

EA=0;//禁止总中断

EX1=1;//使能/INT1中断

EX0=1;//使能/INT0中断

EA=1;//使能总中断

}

中断服务程序:

voidkeypress1()interrupt0

{

if(!

(P3&0x04))

{

delay(10);//稍作延时,用于去抖

if(!

(P3&0x04))

flag_keypress1=1;//P3.2被按下

while(!

(P3&0x04));//等待释放

}

}

voidkeypress2()interrupt2

{

if(!

(P3&0x08))

{

delay(10);//稍作延时,用于去抖

if(!

(P3&0x08))

flag_keypress2=1;//P3.3被按下

while(!

(P3&0x08));//等待释放

}

}

七、总结及心得体会

通过本次实验熟悉了系统设计与实现原理,基本掌握了KEILC51的基本使用方法,熟悉了SMARTSOPC实验箱的应用。

并且实现了各部分的功能完成系统软件的编写与调试。

八、对本实验过程及方法、手段的改进建议

九、附录

#include

#include

#include

#include

#include"VolTab.h"

#definePWM_MAX50

#defineucharunsignedchar

unsignedcharv;

unsignedcharf;

unsignedcharsw;

unsignedcharg;

unsignedcharm;

unsignedcharDispBuf[8];

unsignedcharPwmValue;

sbitKEY2=P2^0;

sbitCS=P1^5;

sbitDAT=P1^7;

sbitCLK=P1^6;

/*

函数:

ReadAdc()

功能:

读取A/D转换结果

*/

unsignedcharReadAdc()

{

unsignedchard;

unsignedcharn;

CS=0;

n=5;

while(--n!

=0);

n=8;

do

{

d<<=1;

if(DAT)d++;

CLK=1;

CLK=0;

}while(--n!

=0);

CS=1;

returnd;

}

/*

函数:

DispClear()

功能:

清除数码管的所有显示

*/

voidDispClear()

{

unsignedchari;

for(i=0;i<8;i++)

{

DispBuf[i]=0x00;

}

}

/*

函数:

DispChar()

功能:

在数码管上显示字符

*/

voidDispChar(unsignedcharx,unsignedcharc,bitdp)

{

codeunsignedcharTab[]=

{

0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71

};

unsignedchart;

x&=0x07;

x=7-x;

if(c=='-')

{

t=0x40;

}

else

{

t=toint(c);

if(t<16)

{

t=Tab[t];

}

else

{

t=0x00;

}

}

if(dp)

{

t|=0x80;

}

else

{

t&=0x7F;

}

DispBuf[x]=t;

}

/*

函数:

DispStr()

功能:

在数码管上显示字符串

*/

voidDispStr(unsignedcharx,unsignedchar*s)

{

unsignedcharc;

for(;;)

{

c=*s;

if(c=='\0')break;

s++;

DispChar(x,c);

x++;

}

}

/*

函数:

DispDotOn()

功能:

显示指定位的小数点

参数:

x为数码管坐标

*/

voidDispDotOn(unsignedcharx)

{

DispBuf[7-x]|=0x80;

}

/*

函数:

DispInit()

功能:

数码管扫描显示初始化

*/

voidDispInit()

{

DispClear();

EA=0;

TMOD&=0x0F;

TMOD|=0x10;

TH1=0xFC;

TL1=0x66;

TR1=1;

ET1=1;

EA=1;

}

/*

函数:

AdcInit()

功能:

初始化ADC接口

*/

voidAdcInit()

{

CS=1;

CLK=0;

DAT=1;

ReadAdc();

}

/*

函数:

Delay()

功能:

延时tms

*/

voidDelay(unsignedintt)

{

do

{

TH0=0xFA;

TL0=0x24;

TR0=1;

while(!

TF0);

TR0=0;

TF0=0;

}while(--t!

=0);

}

/*

函数:

DispVol()

功能:

将ADC值转换成电压值,并显示

参数:

v:

8位ADC结果

*/

voidDispVol(unsignedcharv)

{

DispStr(5,VolTab[v]);

DispDotOn(5);

}

/*

函数:

T1INTSVC()

功能:

定时器T1的中断服务函数

*/

voidT1INTSVC()interrupt3

{

staticunsignedchartemp=0;

codeunsignedcharcom[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

staticunsignedcharn=0;

TR1=0;

TH1=0xFF;

TL1=0x00;

TR1=1;

XBYTE[0x7800]=0xFF;

XBYTE[0x7801]=~DispBuf[n];

XBYTE[0x7800]=~com[n];

n++;

n&=0x07;

if(f==1)

{

temp++;

if(temp>=PWM_MAX)temp=0;

if(temp<=PwmValue)

{

P0=0x00;

}

else

{

P0=0xff;

}

}

}

/*

函数:

SysInit()

功能:

系统初始化

*/

voidSysInit1()

{

TMOD&=0xF0;

TMOD|=0x01;

DispInit();

}

voidSysInit2()

{

TMOD&=0xF0;

TMOD|=0x01;

DispInit();

DispChar(0,'0',0);

DispChar(1,'9',0);

DispChar(2,'-',0);

DispChar(3,'-',0);

DispChar(4,'-',0);

DispChar(5,'-',0);

}

voidSysInit3()

{

TMOD&=0xF0;

TMOD|=0x01;

TMOD&=0x0F;

TMOD|=0x10;

PwmValue=ReadAdc();

P0=0xff;

TH1=0xFF;

TL1=0x00;

TR1=1;

ET1=1;

EA=1;

DispInit();

AdcInit();

Delay(100);

}

voidmain()

{

for(;;)

{

unsignedchars[]="12345678-";

unsignedchari;

unsignedcharx;

unsignedcharaa;

bitdp;

while(KEY2==0);

SysInit1();

dp=0;

f=0;

aa=0x7f;

for(;;)

{

for(i=0;i<8;i++)

{

P0=aa;

aa=_cror_(aa,1);

for(x=0;x<8;x++)

{

if(x==i)

DispChar(x,s[i],dp);

else

DispChar(x,s[8],dp);

}

if(KEY2==0)break;

Delay(500);

}

if(KEY2==0)break;

}

SysInit2();

for(m=50;m>0;m--)

{

P0=0xFF;

sw=m/10;

g=m%10;

DispChar(6,sw+'0',1);

DispChar(7,g+'0',0);

Delay(100);

}

SysInit3();

for(;;)

{

f=1;

v=ReadAdc();

DispVol(v);

Delay(100);

PwmValue=v/5;

if(KEY2==0)break;

}

}

}

说明:

实验报告和可以运行的程序,都以电子档的形式打包发到我的邮箱(hongfeizhao@)即可。

不交纸质件的报告。

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

当前位置:首页 > PPT模板 > 国外设计风格

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

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