实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYMBOL: _DISPCHAR
MODULE: Main.obj (MAIN)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _DISPCHAR
MODULE: Main.obj (MAIN)
ADDRESS:03A8H
Program Size: data=54.3 xdata=0 code=2168
second = 0 ;
m_s = 0 ;
miao_flag = 0 ;
break;
case 3:
key_flag = 3 ;
cnt = 0 ;
break;
case 4:
key_flag = 4 ;
break;
case 5:
key_flag = 5 ;
DispClear();
ShuDu_SysInit();
(3)按下key3键时,基于TLC549 A/D转换器进行电压测量(输入电压来自电位器,调节范围0~2.49V,单位:V),并将电压值显示在8位数码管的后3位。
(4)在上面(3)要求基础上,调节电位器,若输入电压超过2.00V,则声光报警,即用发光二极管指示灯(如LED1)闪烁(亮0.5s、灭0.5s);蜂鸣器响(用500Hz方波驱动);若输入电压低于2.00V后,则撤销声光报警。
(8)将班级学号、开机时间(时:分:秒)、电压值、温度值、转速等同时在LCD液晶显示屏上进行显示。
(二)实验内容
硬件设计
(原理框图)
各部分硬件原理
数码管动态扫描原理
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
三、实验学时:16
四、实验目的与任务:
1、熟悉系统设计与实现原理
2、掌握KEIL C51的基本使用方法
3、熟悉SMART SOPC实验箱的应用
4、连接电路,编程调试,实现各部分的功能
5、完成系统软件的编写与调试
五、实验器材
1、PC机一台
2、SMART SOPC实验箱一套
六、实验原理、步骤及内容
(一)试验要求(以课件要求为准)
DispVol(v);
Delay(1000);//显示成电压值
}
if( key_flag == 4 )
{
t = LM75A_GetTemp();
wendu() ;
}
if( key_flag == 5 )
{
spd = MeasureSpeed();
shudu();
}
Delay(50);//延时50ms
蜂鸣器工作原理
无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。蜂鸣器的理想信号源是方波,多少赫兹的信号源就发出多少赫兹的声音。
I2C工作原理
飞利浦(Phil ips)于20多年前发明了一种简单的双向二线制串行通信总线,这个总线,被称为Inter–I2C或者I2C总线。目前I2C总线已经成为业界嵌入式应用的标准解决方案,被广泛地应用在各式各样基于微控器的专业、消费与电信产品中,作为控制、诊断与电源管理总线。多个符合I2C总线的器件都可以通过同一条I2C总线进行通信,而不需要额外的地址译码器。由于I2C是一种两线式的串行总线,因此简单的操作特性成为它快速崛起成为业界标准的关键因素。
SEGMENT: ?PR?_I2C_PUT?I2C
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_I2C_GET?I2C
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
break;
default:
break;
}
for (;;)
{
Delay(50);//延时50ms
if ( KeyScan() == 0 )
break ;//如果按键抬起,退出循环
}
}
}
{
unsigned char k;//定义键值变量
SysInit();
for (;;)
{
for (;;)
{
if( key_flag == 1 )
DiplayNO() ;
if( key_flag == 2 )
Diplaymiaobiao();
if( key_flag == 3 )
{
v = ReadAdc();//读取ADC值
k = KeyScan();//键盘扫描
if ( k != 0 ) break;//如果有键按下,退出循环
}
switch ( k )//判断键值,执行具体功能
{
case 1:
key_flag = 1 ;
break;
case 2:
key_flag = 2 ;
hour = 0 ;
minute = 0 ;
creating hex file from "VolMess"...
Baidu Nhomakorabea"VolMess" - 0 Error(s), 6 Warning(s).
分析:warning出现在I2C中,但不影响结果。
并进行必要的数据分析:
误差分析,由于只保留了小数点后有限位,以及机器本身的问题所以存在误差。
七、总结及心得体会
电子科技大学电子工程学院
实验报告
实验名称现代电子技术综合实验
姓名:
学号:
评分:
教师签字
电子科技大学教务处制
电 子 科 技 大 学
实 验 报 告
学生姓名:学号:指导教师:习友宝
实验地点:331实验时间:(5—8周)周一5,6,7,8节
一、实验室名称:电子技术综合实验室
二、实验项目名称:基于单片机的多任务的控制系统的实现
扩展要求:
(5)按下key4键,基于LM75A数字温度传感器,完成温度的测量,显示温度值保留到小数点后1位,整数部分最高位为零时不显示出来(高位零消影)。
(6)按下key5键,完成基于直流电机的转速测量。
(7)对电压测量值进行简单的数据处理,如去除尖峰干扰的平均滤波:每12个测量值数据为一组,去掉最大值和最小值后的10个测量值进行算术平均后,作为显示值。
TLC549:
电机驱动原理:
一台直流电机原则上既可以作为电动机运行,也可以作为发电机运行,这种原理在电机理论中称为可逆原理。当原动机驱动电枢绕组在主磁极N、S之间旋转时,电枢绕组上感生出电动势,经电刷、换向器装置整流为直流后,引向外部负载(或电网),对外供电,此时电机作直流发电机运行。如用外部直流电源,经电刷换向器装置将直流电流引向电枢绕组,则此电流与主磁极N.S.产生的磁场互相作用,产生转矩,驱动转子与连接于其上的机械负载工作,此时电机作直流电动机运行。
LM75A:
软件设计
调试与测试
MAIN.C(458): warning C209: '_shudu': too few actual parameters
compiling I2C.c...
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
单片机的编程过程是一个不断自我完善程序的过程。
编程之前对要写的东西有一个系统的规划有利于程序编写,可以避免走弯路。
系统的成功运行是要在硬件不出错的情况下实现的,任何一个地方出问题,就得不出结果。
八、对本实验过程及方法、手段的改进建议
(没有可以不写)
九、附录
基于单片机的多任务的控制系统的实现
void main()
基本要求:
(1)程序运行后,在8位数码管上显示自己的班级学号(后8位),如2902002001,显示为“02002001”。
(2)定义5个按键(key1、key2、key3、key4、key5)作为功能选择键。每次按下key2时,为“秒表计时器”(定时中断实现),显示从“00.00.00.00”开始,即00时00分00秒00(1/100秒,即10ms)。当按下key1时,返回到显示班级学号;按下其他功能键时,进入其他功能。
相关文档
最新文档