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

上传人:doc321 文档编号:13026662 上传时间:2021-12-11 格式:DOC 页数:18 大小:581.50KB
返回 下载 相关 举报
现代电子技术综合实验报告.doc_第1页
第1页 / 共18页
现代电子技术综合实验报告.doc_第2页
第2页 / 共18页
现代电子技术综合实验报告.doc_第3页
第3页 / 共18页
现代电子技术综合实验报告.doc_第4页
第4页 / 共18页
现代电子技术综合实验报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

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

1、优质文本电子科技大学 电子工程 学院实 验 报 告实验名称 现代电子技术综合实验姓名:学号:评分:教师签字电子科技大学教务处制电 子 科 技 大 学实 验 报 告学生姓名: 学号: 指导教师: 实验地点: 实验时间: 一、 实验室名称: 电子技术综合实验室二、 实验工程名称:现代电子技术综合实验三、 实验学时: 40四、 实验目的与任务:1、 熟悉系统设计与实现原理2、 掌握KEIL C51的根本使用方法3、 熟悉SMART SOPC实验箱的应用4、 连接电路,编程调试,实现各局部的功能5、 完成系统软件的编写与调试五、 实验器材1、 PC机一台2、 示波器、SMART SOPC实验箱一套六、

2、 实验原理、步骤及内容 一试验要求1)、程序开始后:当核心板上LED的D1D8只有第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.3)、核心板上数码管其余不显示,第6、7、8位显示三位电压值0.002.49V,增减调节电压值,LED1亮度跟随变化。按按键进入任务1。二实验内容1、 硬件设计2、 各局部硬件原理数码管动态扫描原理:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好似各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。 PWM调节LED亮度工作原理: PWM信号波形是一系列

4、占空比可调的方波脉冲。该信号经低通滤波器后,可得到一个电压与占空比成正比的直流电压信号,当方波频率到达50Hz以上是,人眼根本无法觉察到闪烁,只能感觉到平均亮度相当于低通滤波器。I2C工作原理:I2C总线由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL。I2C总线信号的连接方法如下列图所示。一般具有I2C总线的器件其SDA和SCL引脚都是漏极开路或集电极开路输出结构。因此实际使用时,SDA和SCL信号线都必须接上拉电阻。上拉电阻一般取值3-10K。ADC工作原理及应用:3、 软件设计三思考题程序任务跳转的按键改用外部中断模式,电路如何修改画示意图?程序如何修改,写出中断效劳程

5、序。答:将KEY1与KEY2键通过跳线分别接到P3.2(INT0)与P3.3(INT1)接口上。示意图及程序如下。图7 示意图开启中断: SysInit() EA=0; /禁止总中断 EX1=1; /使能/INT1中断 EX0=1; /使能/INT0中断 EA1; /使能总中断 中断效劳程序: void keypress1 () interrupt 0 if (!(P3&0x04)delay(10);/稍作延时,用于去抖if (!(P3&0x04)flag_keypress1=1;/P3.2被按下while(!(P3&0x04);/等待释放 void keypress2

6、 () interrupt 2 if (!(P3&0x08)delay(10);/稍作延时,用于去抖if (!(P3&0x08)flag_keypress2=1;/P3.3被按下while(!(P3&0x08);/等待释放七、 总结及心得体会 通过本次实验熟悉了系统设计与实现原理,根本掌握了KEIL C51的根本使用方法,熟悉了SMART SOPC实验箱的应用。并且实现了各局部的功能完成系统软件的编写与调试。八、 对本实验过程及方法、手段的改良建议九、 附录#include <reg51.h>#include <ctype.h>#include

7、<absacc.h>#include <intrins.h>#include "VolTab.h"#define PWM_MAX 50#define uchar unsigned charunsigned char v;unsigned char f;unsigned char sw;unsigned char g;unsigned char m;unsigned char DispBuf8;unsigned char PwmValue;sbit KEY2 = P20;sbit CS = P15;sbit DAT = P17;sbit CLK = P

8、16;/*函数:ReadAdc()功能:读取A/D转换结果*/unsigned char ReadAdc()unsigned char d;unsigned char n;CS = 0;n = 5;while ( -n != 0 );n = 8;dod <<= 1;if ( DAT ) d+;CLK = 1;CLK = 0;while ( -n != 0 );CS = 1;return d;/*函数:DispClear()功能:去除数码管的所有显示*/void DispClear()unsigned char i;for ( i=0; i<8; i+ )DispBufi =

9、0x00;/*函数:DispChar()功能:在数码管上显示字符*/void DispChar(unsigned char x, unsigned char c, bit dp)code unsigned char Tab =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;unsigned char t;x &= 0x07;x = 7 - x;if ( c = '-' )t = 0x40;elset = toint(c);if ( t < 16 )t =

10、 Tabt;elset = 0x00;if ( dp )t |= 0x80;elset&= 0x7F;DispBufx = t;/*函数:DispStr()功能:在数码管上显示字符串*/void DispStr(unsigned char x, unsigned char *s)unsigned char c;for (;)c = *s;if ( c = '0' ) break;s+;DispChar(x,c);x+;/*函数:DispDotOn()功能:显示指定位的小数点参数:x为数码管坐标*/void DispDotOn(unsigned char x)DispBu

11、f7-x |= 0x80;/*函数:DispInit()功能:数码管扫描显示初始化*/void DispInit()DispClear();EA = 0;TMOD &= 0x0F;TMOD |= 0x10;TH1 = 0xFC;TL1 = 0x66;TR1 = 1;ET1 = 1;EA = 1;/*函数:AdcInit()功能:初始化ADC接口*/void AdcInit()CS = 1;CLK = 0;DAT = 1;ReadAdc();/*函数:Delay()功能:延时 t ms*/void Delay(unsigned int t)doTH0 = 0xFA;TL0 = 0x24;

12、TR0 = 1;while ( !TF0 );TR0 = 0;TF0 = 0; while ( -t != 0 );/*函数:DispVol()功能:将ADC值转换成电压值,并显示参数:v:8位ADC结果*/void DispVol(unsigned char v)DispStr(5,VolTabv);DispDotOn(5);/*函数:T1INTSVC()功能:定时器T1的中断效劳函数*/void T1INTSVC() interrupt 3static unsigned char temp = 0;code unsigned char com = 0x01,0x02,0x04,0x08,0

13、x10,0x20,0x40,0x80;static unsigned char n = 0;TR1 = 0;TH1 = 0xFF;TL1 = 0x00;TR1 = 1;XBYTE0x7800 = 0xFF;XBYTE0x7801 = DispBufn;XBYTE0x7800 = comn;n+;n &= 0x07;if(f=1) temp+; if ( temp >= PWM_MAX ) temp = 0; if ( temp <= PwmValue ) P0 =0x00; else P0= 0xff; /*函数:SysInit()功能:系统初始化*/void SysIni

14、t1()TMOD &= 0xF0;TMOD |= 0x01;DispInit();void SysInit2()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);void SysInit3()TMOD &= 0xF0;TMOD |= 0

15、x01;TMOD &= 0x0F;TMOD |= 0x10;PwmValue = ReadAdc();P0 = 0xff;TH1 = 0xFF;TL1 = 0x00;TR1 = 1;ET1 = 1;EA = 1;DispInit();AdcInit();Delay(100);void main() for(;) unsigned char s = "12345678-"unsigned char i;unsigned char x;unsigned char aa;bit dp; while (KEY2 = 0);SysInit1(); dp = 0;f=0; aa

16、=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,si,dp); else DispChar(x,s8,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; 说明:实验报告和可以运行的程序,都以电子档的形式打包发到我的邮箱即可。不交纸质件的报告。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1