AD实验报告.docx
- 文档编号:16236669
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:15
- 大小:157.92KB
AD实验报告.docx
《AD实验报告.docx》由会员分享,可在线阅读,更多相关《AD实验报告.docx(15页珍藏版)》请在冰点文库上搜索。
AD实验报告
西南科技大学
学生实验报告
实验课程名称计算机工业控制
开课实验室东6D214
学院专业班级
学生姓名学号
开课时间2014至2015学年第1学期
总成绩
教师签名
制造科学与工程学院制
《AD和DA接口技术》实验报告
开课实验室:
东6D2142014年10月14日
学院
制造学院
年级、专业、班
姓名
成绩
课程
名称
计算机工业控制
实验项目
名称
AD和DA接口技术
指导教师
李鹏
一、实验目的
1.了解模/数转换基本原理,掌握ADC0804的使用方法。
2.了解D/A转换的基本原理。
3.了解D/A转换芯片DAC0832的性能及编程方法。
4.了解单片机系统中扩展D/A转换的基本方法。
二、实验内容
(1)A/D实验:
利用实验板上的ADC0804做A/D转换器,利用实验板上的电位器W3提供模拟量输入。
编制程序,将模拟量转换成数字量,用发光二极管显示。
(2)D/A实验:
利用DAC0832控制LED灯的亮度。
三、实验仪器设备
1.单片机实验板一台
2.计算机一台
四、实验步骤
1.打开Keil软件,新建一个工程
2.新建一个文件,在新建文件夹中新建工程
3.选择Atmel中的AT98C51
4.新建一个text文件并保存为C语言格式
5.调整
6.添加刚建好的文本文件
7.输入程序并进行检测是否有错误或警告,直到无错误无警告为止。
8.打开驱动下载程序
9.观察结果,若结果不对,修改程序,再进行第8步,在观察结果。
五、实验程序流程图
六、实验程序(源程序)
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitadrd=P3^7;
sbitadwr=P3^6;
sbitdiola=P2^5;
sbitdula=P2^6;
sbitwela=P2^7;
sbitp0_7=P0^7;
unsignedcharj,k,adval;
voiddelay(unsignedchari)
{for(j=i;j>0;j--)
for(k=125;k>0;k--);}
voidmain()
{while
(1)
{//wela=1;
p0_7=0;//选通ADCS
adwr=0;//AD写入
_nop_();
adwr=1;
P0=0xff;//关闭ADCS
delay(10);
//wela=0;//关闭有AD片选信号锁存器的锁存端以防止在操作数码管时使AD的片选发生变化
delay(500);//需要注意的是ADC0804在写和读之间的时间间隔要足够长否则无法读出数据
//wela=1;//重新打开有AD片选信号锁存器的锁存端
//P1=0xff;//读取P1口之前先给其写全1
P0=0;//选通ADCS
adrd=0;//AD读使能
adval=P1;//AD数据读取赋给P1口
//adrd=1;
//P0=0xff;//关闭ADCS
//adwr=0;
P1=adval;//同时把AD的值送八个发光二极显示
}
}
七、实验结果记录及分析
八、心得体会
《人机交互接口实验》实验报告
开课实验室:
东6D2142014年10月27日
学院
制造学院
年级、专业、班
班
姓名
成绩
课程
名称
计算机工业控制
实验项目
名称
人机交互接口实验
指导教师
李鹏
一、实验目的
1.熟悉单片机与键盘、数码管的接口技术
2.了解单片机人机交互接口技术及其编程方法
二、实验内容
分析单片机与键盘、数码管接口的硬件原理图,掌握其工作原理;
编写程序,实现4x4键盘按键的检测、解码(0~F)并驱动6个数码管显示相应的按键代码(0~F)
三、实验仪器设备
1.单片机实验板一块
2.计算机一台
四、实验步骤
1.检查实验板连线是否正确
2.用USB线连接单片机实验板和PC,利用USB接口对实验板供电
3.用keil软件调试程序,在程序无误的时候编译成hex文件,使用串口线与电脑的串口相连,运行串口下载工具STC-ISP,下载程序到单片机中
4.逐一按下键盘的按键,观察数码管数字显示是否与所按键的键值匹配
具体操作:
1.打开Keil软件,关掉之前的工程,新建一个工程project
2.选择Atmel中的AT89C51
3.新建一个Text文本,并保存为“.c”格式
4.编写程序
5.下载
五、实验程序流程图
六、实验程序(源程序)
#include
#defineuintunsignedint//宏定义
#defineucharunsignedchar
sbitduan=P2^6;//定义段选
sbitwei=P2^7;//定义位选
ucharcodetable[]={//0--F显示代码
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0};
ucharnum,temp,num1;
voiddelay(uintz)//延时函数
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
ucharkeyscan();//声明
voiddisplay(ucharaa);
voidmain()
{
num=17;
duan=1;//开段选
P0=0;//一开始不按键不显示
duan=0;
wei=1;//开位选
P0=0xc0;//打开6个数码管
wei=0;
while
(1)
{
display(keyscan());
}
}
voiddisplay(ucharaa)
{
duan=1;
P0=table[aa-1];
duan=0;
}
ucharkeyscan()//扫描按键
{
P3=0xfe;//扫描第一行是否有键按下
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
delay(5);//延时去抖动
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xee:
num=1;
break;
case0xde:
num=2;
break;
case0xbe:
num=3;
break;
case0x7e:
num=4;
break;
}
while(temp!
=0xf0)//松手检测
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfd;//扫描第二行是否有键按下
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xed:
num=5;
break;
case0xdd:
num=6;
break;
case0xbd:
num=7;
break;
case0x7d:
num=8;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfb;//扫描第三行是否有键按下
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xeb:
num=9;
break;
case0xdb:
num=10;
break;
case0xbb:
num=11;
break;
case0x7b:
num=12;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xf7;//扫描第四行是否有键按下
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
delay(5);
temp=P3;
temp=temp&0xf0;
while(temp!
=0xf0)
{
temp=P3;
switch(temp)
{
case0xe7:
num=13;
break;
case0xd7:
num=14;
break;
case0xb7:
num=15;
break;
case0x77:
num=16;
break;
}
while(temp!
=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
returnnum;/*返回num用数组代码显示出来*/
}
七、实验结果记录及分析
答:
实验程序传入芯片后,按芯片上的不同键,会显示不同的数。
这是因为程序中有扫描程序,扫描各行是否有键按下,若是有键按下,按下的是哪个键,对应着程序中编入了不同的数字结果。
当某个键被按下,那么检测(扫描)就不进行,而是等这个按下的键松开后,继续扫描有哪行的那个键被按下,这样来实现不同的显示结果。
同时程序中还可以编写屏幕显示几个数据,通过给P0赋予不同的值,来控制打开数码管的个数,如P0=0xc0,二进制代码为00001100,即打开6个数码管,P0=0xd0,二进制代码为00001101,打开5个数码管,因为低电平控制数码管开,高电平数码管则不显示。
数码管每一段显示与否都是同样通过编写的程序控制的。
如有图,如果要显示1,应该是f、e亮,即00000110
八、心得体会
答:
在这次实验中,主要遇到的问题还是程序的读写,因为确实没有什么程度功底,所以还是比较困难的一件事情,但是我们多去看,结合课本上学到的相关知识,多去联系和理解,这样就会的到不少这方面的收获。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AD 实验 报告