单片机实验报告总结_第1页
单片机实验报告总结_第2页
单片机实验报告总结_第3页
单片机实验报告总结_第4页
单片机实验报告总结_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 18 单片机实验报告总结 单片机课程设计报告 实验五 系 别 物理与电子工程学院 年 级专 业 班 级学 号学生姓名 指导教师 设计时间 目录 1. 题目 .2 2. 实验要求 .2 实验目的 .2 实验内容 .2 3.总体设计 . 2 硬件设计 . 2 软件设计 . 4 4. 运行结果 . 7 2 / 18 5.总结与体会 . 7 6.参考文献 . 8 1.题目 A/D转换实验 2. 实验要求 :实验目的 1. 2. 3. 了解典型 AD芯片结构与功能; 掌握 ADC0809 与8051接口电路设计; 掌握查询和中断方式的 AD编程。 :实 验内容 1、编写编制程序实现锯齿波、三角波、正弦波输出函数; void wave_rect(void) void wave_stair(void) void wave_sin(void) 其中 wave_sin可采用查表法 2、设计三个独立按键,通过按键实现各波形的输出。 3.总体设计 3 / 18 硬件设计 1. AD 转换器概述 随着数字技术,特别是 计算机技术的飞速发展,在现代控制、通信及检测领域中,为提高系统性能指标,对信号的处理无不广泛地采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量 ,要使计算机或数字仪表能识别、处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量往往需要将其转换为相应的模拟信号才能为执行机构所接收。这样就需要一种能在模拟信号与数字信号之间起桥梁作用的电路模 /数转换器 (A/D:Analog to Digital Converter)和数 /模转换器 (D/A: Digital to Analog Converter)。也就出现了单片机的模 /数转换和数 /模转换的接口问题。 2 A/D 转换器分类 按转换原理可分为:计数式、双积分式、逐次逼近式、并行式。 与典型电路 4. 外部 RAM读写操作 外部 RAM寻址 1_变量绝对寻址 type memory_space variable_name _at_ constant; struct link 4 / 18 struct link idata *next; char code *test; ; struct link list idata _at_ 0x40;/* list at idata 0x40 */ char xdata text256 _at_ 0xE000;/* array at xdata 0xE000 */ unsigned char xdata PA8255 _at_ 0x8000; /* int at xdata 0x8000 */ a=PA8255; /PA输入 PA8255=b; /PA输出 外部 RAM寻址 2_宏定义 提供了下列方便的宏定义 / #define CBYTE (unsigned char volatile code *) 0) #define DBYTE (unsigned char volatile data *) 0) #define PBYTE (unsigned char volatile pdata *) 0) #define XBYTE (unsigned char volatile xdata *) 0) #define CWORD (unsigned int volatile code *) 0) #define DWORD (unsigned int volatile data *) 0) #define PWORD (unsigned int volatile pdata *) 0) #define XWORD (unsigned int volatile xdata *) 0) #include #define PA8255 XBYTE0x7FFF 软件设计 源程序: #include #include #define COUNT 5000 5 / 18 #define AIN0 XBYTE0x0000 sbit EOC=P3 ; unsigned char LED_seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /unsigned char YLED_seg=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0xf7,0xff,0xef; unsigned char LED_bit4=0x01,0x02,0x04,0x08; unsigned char LED_buf3=0; unsigned char LED_S; unsigned char LED_B; /fosc=,9600bps / 串 口 初 始 化 函 数 9600bps void Sbuf_Init(void) SCON=0x50; /10 位方式 /波特率设置 PCON=0x00; /波特率不倍增 TMOD=(TMOD&0x0f)|0x20;/T1 方式 2 TH1=0xfd; /T1 计数初值 TL1=0xfd; /ES=1;EA=1; /串口中断使能 TR1=1; /启动定时器 void T0_ISR(void) interrupt 1 void Timer0_Init(void) TMOD=(TMOD&0xf0)|0x01; 6 / 18 TH0=(65536-COUNT)/256; TL0=(65536-COUNT)%256; ET0=1; EA=1; static unsigned char i=0; TH0=(65536-COUNT)/256; TL0=(65536-COUNT)%256; if(i=2) P2=LED_biti; /先送位码 P1=LED_segLED_bufi|0x80; /再送段码 else P2=LED_biti; /先送位码 P1=LED_segLED_bufi; /再送段码 i+; if(i=3) i=0; void delay(unsigned int n) void main(void) unsigned int i=0,ad,pre_ad=0; Sbuf_Init(); Timer0_Init(); while(1) AIN0=0; i=i; i=i; delay(20); while(EOC=0); /等待 AD转换结束 ad=AIN0; /读 AD转换结果 if(ad!=pre_ad) /ad=ad/51; LED_buf2=(ad*100/51)/100; 7 / 18 LED_buf1=(ad*100/51)/10%10; LED_buf0=(ad*100/51)%10; unsigned int i; for(i=0;i ; /启动转换 pre_ad=ad; 4.运行结果 5.总结与体会 通过本次实验,我们了解了典型 AD 芯片结构与功能;掌握了 ADC0809 与 8051 接口电路设计的方法以及查询和中断方式的 AD 编程,顺利地完成了教学目标。在实验过程 中,遇到了一些困难,比如输出的模拟量有误差,我们排查了很久,发现计算的语句并没有错误,而是由于计算的数值远远超出 了定义类型的范围,所以我们把字符型换成整型,实验结果就正确了。虽然这只是一个很小的错误,发现错误和改正错误的过程却让我们学到了很多,我们没有依赖别人,而是自己一点一点地排查,这样增强了我们的自信心,并且改掉了心理上事事依赖别人的坏习惯。 6.参考文献 8 / 18 单片机的 C语言应用程序设计学出版社 新概念 51单片机 C语言教程 主编 孙娟 马忠梅主编 郭天祥 北京航空航天大 电子工业出版社社 题 目: 单片机组成原理实验报告 学 院: 计算机科学与工程学院专 业: 信息安全姓 名: 学 号: 2016年 12月 8日 实验一、输入输出接口编程 一、实验目的 1、掌握 Keil软件的基本使用。 2、掌握单片机汇编语言基本编程。 二、实验内容 1、学习用 Keil软件进行 51单片机的软件 开发; 学习 Keil软件的一般操作,步骤为:项目建立、程序录入、添加文件、编译生成 HEX文件、仿真调试。 2、霓虹灯控制程序设计 用 P1 口控制 8 个 LED,按 P3 口输入信号的不同模式选择 4 种 16 次循环点亮方式,用软件延时实现 1 秒的扫描周期。将生成的 HEX 文件下载到实验板上验证。 三、实验原理 1、 Keil 软件使用练习 设 =20H, =25H, =80H, =90H, 9 / 18 =0A0H, =0A0H, =6FH, =76H,执行程序后,问程序完成什么功能,写出运行结果。 2、霓虹灯控制程序设计 电路原理图如下,所需元件为: AT89C51、SW-SPST、 LED-RED 图中用单片机的 P1口作输出口接 8 个 LED, 8个LED 按共阳极连接,端口逻辑值为 0 点亮 LED; P3 口作输入口接 2 个 SW-SPST 开关, P3口内含上拉电阻,当开关打开时逻辑值为 1,开关闭合时逻辑值为 0。 本实验中要实现循环输出,最常用的方法是循环计数实现循环次数控制 ,对计数器值进行查表转换得出输出值,输出到 P1口进行显示,灯亮表示输出为 “0” ,灯灭表示输出为 “1” 。 本实验中的延时,用软件延时方法产生,延时时间 =程序总机器周期数 *循环次数 *机器周期。 输出表格确定发光模式,实验中定义表格如下: TAB1:DB 01H,02H,04H,08H,10H,20H,40H,80H TAB2:DB 03H,06H,0CH,18H,30H,60H,0CH,81H TAB3:DB 80H,40H,20H,10H,08H,04H,02H,01H TAB4: DB 用户自己定义 10 / 18 输入信号使用 P3口的 2 个位,如和,可以确定 4种模式。 实验程序框图如下: 图 主程序 图 转换输出子程序 实验二、定时器 /计数器编程 一、实验目的 1、掌握定时器的基本编程方法。 2、掌握计数器的基本编程方法。 二、实验内容 1、编写单片机程序,用 T0作定时器产生周期为1 秒的方波,从,口输出 ,将接到示波器显示该方波波形;用 T1 作计数器对从输出的方波进行计数,计数结果通过 P口输出到发光二极管显示。 2、编写单片机程序,用 T0作定时器产生周期为1 秒的方波,从,口输出,将输出的方波接到口通过 T1作计数器对该方波进行计数,计数值由 LED 显示 ,用存储示波器显示输出的方波。 三、实验原理 当晶振为时 ,一个机器周期为微秒,要实现 500 毫秒的定时,需要 921659 个机器周期,对于 51单片机内部定时器来说,最大只能定时 65536个机器周期,定时毫秒,不11 / 18 能满足 要求,为此必须借助软件循环进行扩展。实现的方法是:用定时器中断定时 10毫秒,再用软件扩展 50倍即可得 到 500毫秒的定时。当到达 500毫秒时,对输出取反,可得到周期为 1秒的方波。 选择模式 1,每个 10ms 中断一次,设初值为 X,根据下面公式,可求得 X 的值。 *机器周期 =定时时间 12?3 (2?X)?10?10 ?106 16 有关定时计数器的特殊功能寄存器,请参考课本。 四、实验步骤: 1、用 KEIL 软件编写、汇编、调试给定内容的有关程序,并生成 HEX文件; 2、用 Proteus对单片机硬件电路图进行仿真; 3、下载到 ZKSYS单片机实验板上验证有关程序。 实验三、外部中断的编程 一、实验目的 1、掌握外部中断的基本编程方法。 2、掌握计数器的扩展编程。 二、实验内容 12 / 18 设计单片机程序实现秒表功能;用一个开关对秒表进行启动和停止控制,用另一个开关对秒表进行清零。 用 T0 定时中断设计秒表计时,秒计数结果通过P1口及 4094芯片送数码管显示。用外部中断 INT0 对秒计数结果进行清零,用对秒计数进行启动和停止控制。 1、在生成 HEX 文件后,用 Proteus 软件对电路图进行计算机仿真; 2、程序下载到单片机实验板上验证; 。 三、实验原理 T0 定时中断 10 毫秒,进行 100 次中断得到 1 秒的定时,秒计数结果送 P1 口进行 LED显示,将外部中断设置成边沿触发方式。 实验四 、模数转换 一、实验目的 1、掌握 A/D 转换与单片机的接口方法; 2、掌握 A/D芯片 TLC549、 TLC1549的编程方法; 3、掌握数据采集程序的设计方法; 二、实验内容 1、在 PROTEUS软件仿真环境下,采用 TLC549做A/D 转换器,对电位器提供的模拟电压信号进行定时采样,结果送数码管模块显示;: 2、利用单片机实验板上的 TLC1549 做 A/D 转换13 / 18 器,对电位器提供的模拟电压信号进行采样,结果送数码管模块进行显示。 三、实验线路 1、 TLC549 实验电路原理图如下: 图 实验电路原理图 2、 TLC549 是 CMOS 8位 A/D转换器。该芯片有一个模拟输入端口, 3 态的数据串行输出接口可以方便的和微处理器或外围设备连接。 TLC549仅仅使用输入输出时钟和芯片选择信号控制数据。最大的输入输出时钟为。 CLK 时钟位 DAT 数据位 CS 选片位 VCC 电源 REF+ 正基准电压输入端 REF- 负基准电压输入端 电位器 RX1 的首位两端分别接 VCC、 GND。 四、实验步骤 1、在 KILL51 软件下编辑 TLC549 的 A/D 转换源程序并汇编,运用 PROTEUS 软件仿真调试。仿真步骤:将TLC549 的 CLK 接、 DAT接、 CS接,将模拟电压输入端连到电位器的电压输出端,并接电压表测量输入电压。 2、调节电位器,电压从 0V到 5V变化,记录数码管的显示数值。记录到表中。 14 / 18 实验五、数模转换 一、实验目的 1、掌握模数转换芯片 TLC5615的接口技术。 2、掌握模数转换芯片 TLC5615的编程方法。 二、实验内容 TLC5615 是一个串行 10 位的 DAC 芯片 ,只需通过3 根串行总线就可以完成 10位数据的串行输入。要求: 1、编写程序实现下列要求:通过 DIP 开关输入03FF 位数值,由 TLC5615 变为模拟电压输出,记录数值与对应的对应关系。 2、 利用 TLC5615 输出一个幅值从 0V 开始逐渐升至 5V 再降至 0V、周期为 1 秒的三角波。用示波器观察 该波形。 三、实验线路 1、 TLC5615引脚排列 : 2、 TLC5615的时序图: 从图中可以看出, TLC5615 的 16位移位寄存器分为高 4 位虚拟位,低 2 位填充位以及 10 位有效位。如果选择 12位数据序列工作方式,则向 16位移位寄存器按先后输入 10位有效位和地 2 位填充位, 2 位填充位数据任意。 15 / 18 四、实验步骤 1、用 Proteus软件仿真,改变输入数据,使 D/A输出电压从 0V到 5V变化,记录数码管的显示数值。记录到表中。 2、将编译好的三角波程序下载到实验板上,用示波器观察波形。 五、与显示编程 一、实验目的 1、掌握数码管显示程序的设计; 2、掌握键盘扫描程序的设计。 二、实验内容 设计单片机程序,读取键盘的按键值 (键值为116),送数码管显示。 三、实验原理 数码管动态扫描显示的基本原理是,单片机依次向每个 数码管发出段选码和对应的位选码,对数码管逐个循环点亮,选择适当的扫描速度,利用人眼的视觉暂留效应,使得虽然每个时刻只有一个数码管在显示,但得看上去好像同时显示,动态扫描在定时中断中调用,以保证准确的扫描速度。需要显示的数字必须先进行译码变成能显示的段码才16 / 18 能进行显示,译码可以通过查表来实现。 键盘扫描的基本原理是,列线逐列输出低电平,同时检测行线的电平,如其中有低电平时,表明当位于前行列位置上的键被按下,然后由行和列确定键值。在按键处理操作中,键被按下再被释放为一次按键操作,另外还进行键盘去 抖动处理,用软件延时方法解决。 四、电路图: 通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践 能力,如何把我们所学的专业基础课理论知识运用到实践中去,我想做类似实习就为我们提供了良好的实践平台 学习单片机没有捷径,不能指望两三天就学会 ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论