ImageVerifierCode 换一换
格式:DOCX , 页数:81 ,大小:3.04MB ,
资源ID:23579803      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23579803.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北科大单片机实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北科大单片机实验报告.docx

1、北科大单片机实验报告北京科技大学微机原理及应用实验报告 实验内容:单片机及应用 班 级:智能12 姓 名: 2015年1月5日实验一 AVR单片机硬件开发平台一、实验目的1了解ATmega16单片机的组成。2认识AVR_StudyV1.1实验板的功能模块。二、实验内容1了解AVR系列单片机。2认识AVR_StudyV1.1实验板的组成模块。三、实验所用仪表及设备硬件:PC机一台、AVR_StudyV1.1实验板四、实验步骤了解AVR系列单片机 AVR单片机是Atmel公司1997年推出的RISC单片机。RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC优先选取

2、使用频率最高的简单指令,避免复杂指令;并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于AVR采用了RISC指令,使AVR系列单片机具备1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。AVR单片机吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。AVR单片机具有良好的集成性能。AVR 系列的单片机都具备在线编程接口,其中的 Mega 系列还具备JTAG仿真和下载功能;都含有片内看门狗电路、片内程序 Flash、同步串行接口 SPI;多数 AVR

3、 单片机还内嵌了 AD 转换器、EEPROM、摸拟比较器、定时计数器等多种功能;AVR 片机的 I/O 接口具有很强的驱动能力,灌电流可直接驱动继电器、LED等器件,从而省去驱动电路,节约系统成本。AVR单片机还支持 Basic、C 等高级语言编程。采用高级语言是单片机开发的发展趋势。对单片机用高级语言编程可很容易地实现系统移植,更加灵活并加快软件的开发进程。AVR 单片机具有多个系列,包括 ATtiny、AT90、ATmega。每个系列又包括多个产品,它们在功能和存储器容量等方面有很大的不同,但基本结构和原理都类似,而且编程方也相同。认识AVR_StudyV1.1实验板的组成模块A区电源A区

4、采用AMS1117-5.0低压降三端线性稳压器,输入电压范围为6.512V,输出为5V,为整个实验板的其它模块供电。为方便做实验,将+5V和GND用排针分别引出。B区LCD1602B区为字符型液晶1602接口模块,只需要将1602液晶插到J12孔内,使用杜邦线从J10处将相关接口与单片机端口相连即可。注意,使用液晶时应将J11短路,为液晶供电。C区八段数码管C区为八段共阴型数码管模块,J1为数码管的八段,高电平点亮。J2和J3为八个数码管的位选,低电平使能。D区LED发光二极管D区为8个LED发光二极管,采用共阳接法,即低电平点亮。其中电阻为保护LED的限流电阻。使用时只需从J7处使用杜邦线引

5、出即可。E区按键按键采用外部上拉电阻,平时J4为高电平,当按键按下时,输出低电平。其中,电容为滤波电容,滤除按键按下时产生的尖峰毛刺。F区DS18B20DS18B20是DALLAS公司生产的单总线数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B

6、20非常适用于远距离多点温度检测系统。G区ADC区G区通过一个滑动变阻器改变J14输出电压,可通过单片机片内AD进行采集。H区E2PROMAT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,采用I2C总线通信,内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。I区蜂鸣器I区为一个无源蜂鸣器。无源蜂鸣器与有源蜂鸣器相比,没有内部驱动电路,如果直接加直流电压,蜂鸣器不会发声。它的理想工作信号为方波信号,且随着频率不同发出不同的声调。大约1K2K,蜂鸣器最响。J区串口J区位串口通信模块,采用Maxim公司的MA

7、X232实现电平转换,以满足RS232标准电平与PC机标准串口连接。其中,两个LED为状态指示灯。ATmega16最小系统主要包括复位电路、外部晶振、ISP下载接口、ADC外部参考电压。五、思考题1总结ATMega16的特点和性能。AVR单片机吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和数据存储器进行独立的寻址。1)先进的RISC 结构,131 条指令,大多数指令执行时间为单个时钟周期,32个8 位通用工作寄存器;采用CMOS技术,实现高速(50ns)、低功耗(A)、具有SLEEP(休眠)功能;2)非易失性

8、程序和数据存储器,16K 字节的系统内可编程Flash,擦写寿命: 10,000 次真正的同时读写操作,512 字节的EEPROM,擦写寿命: 100,000 次,1K字节的片内SRAM,可以对锁定位进行编程以实现用户程序的加密,高度保密。3)工业级产品。具有大电流1020mA(输出电流)或40mA(吸电流)的特点,可直接驱动LED、SSR或继电器。有看门狗定时器(WDT)安全保护,可防止程序走飞,提高产品的抗干扰能力;4)超功能精简指令,具有32个通用工作寄存器,克服了单一累加器数据处理造成的瓶颈现象;5)程序写入器件时,可以使用并行方式写入,也可使用串行在线下载(ISP)、在应用下载(IA

9、P)方法下载写入;6)通用数字I/O口的输入输出特性与PIC的HI/LOW输出及三态高阻抗HI-Z输入类同,同时可设定类同与8051结构内部有上拉电阻的输入端功能,便于作为各种应用特性所需(多功能I/O口),AVR的I/O口是真正的I/O口,能正确反映I/O口的输入/输出的真实情况;7)许多AVR单片机具有内部的RC振荡器,提供1/2/4/8MHz的工作时钟,使该类单片机无需外加时钟电路元器件即可工作,非常简单和方便;8)有多个带预分频器的8位和16位功能强大的计数器/定时器(C/T),除了实现普通的定时和计数功能外,还具有输入捕获、产生PWM输出等更多的功能;2AVR单片机存储器有哪几种类型

10、?有何作用?Flash可编程存储,主要用来存放程序。SRAM,即随机存储器RAM,SRAM数据存储器是以8位(字节)为一个存储单元,编址方式采用与工作寄存器组、I/O寄存器和SRAM统一寻址的方式。EEPROM即电可擦除可编程存储器,EEPROM的寿命大于10万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改。EEPROM数据存储器也是以8位(字节)为一个存储单元,对其的读写操作都以字节为单位。SRAM存储单片机运行过程中产生的了临时数据;EEPROM视用户的需要而定,EEPROM存储器一般用于存放一些永久或比较固定的系统参数。3AVR单片机是如何实现高达1MIPS/MHz的处理能

11、力的?先进的RISC 结构131 条指令大多数指令执行时间为单个时钟周期,AVR 采用了Harvard 结构,具有独立的数据和程序总线。程序存储器里的指令通过一级流水线运行。CPU 在执行一条指令的同时读取下一条指令。4分析A区电容种类和作用。区电容分为有极性和无极性电容,分别对电源起稳压和滤波的作用。六、心得体会通过本次实验我了解了AVR的单片机的基本情况,学习了AVR的基本特性。对实验中使用的开发板有了基本的认识,了解了使用的电路板中有哪些外围设备,可以实现什么功能。为今后的单片机学习打下了基础。实验二 AVR单片机软件开发环境一、实验目的1熟悉CodeVision AVR集成开发环境2掌

12、握单片机C语言开发二、实验内容1在CodeVision AVR软件开发平台下创建一个工程并编译下载。三、实验所用仪表及设备硬件:PC机一台、AVR_StudyV1.1实验板软件:CodeVision AVR集成开发软件、SLISP下载软件四、实验步骤使用CodeVision AVR软件的CodeWizardAVR功能,创建一个简单的工程,编译并下载。新建项目(1)打开CodeVision AVR(版本V2.03.4),打开File-New,选择Project-OK,弹出一个Confirm对话框,选择Yes。如图2.1所示。图2.1(2)在弹出的CodeWizardAVR窗口中进行选择。在Chi

13、p选项卡中:Chip-ATmega16,Clock-4MHz。在Port选项卡中:选择PortA,修改Bit0为Out,Output Value改为1。如图2.2所示。图2.2(3)在CodeWizardAVR窗口中,File-Generate,Save and Exit,创建新工程。如图2.3所示。图2.3将新生成的源程序(.c),工程文件(.prj),CodeWizardAVR文件(.cwp),保存在一个新建文件夹下。如图2.4所示新生成的源程序。图2.4(4)修改源程序在源程序在开始处添加 #include 。在while(1)处添加四句语句。如图2.5所示。图2.5(5)保存。编译项目

14、选择Project-Build All(Ctrl + F9),弹出Information窗口,其中No errors,No warnings表示编译成功。如果出现错误,根据错误提示修改源程序。下载程序由于CodeVision AVR自带的下载软件Code Programmer修改熔丝位不够灵活,我们选用双龙公司的SLISP进行程序下载。(1)打开SLISP,在通信参数设置及器件选择项目中,按照图2.7进行设置。图2.7(2)点击Flash选项,在工程文件夹下找到Exe文件夹,选择xx.hex文件。在弹出的空闲存贮器填充对话框,点击确定。(3)编程选项修改。图2.9(4)配置熔丝位:点击编程选项

15、中配置熔丝。切换到设置设置导航模式,如图2.10所示。图2.10 选择Int.RC Osc.4MHz;Start-up time:6 CK + 64ms这一项;其余项不要修改。此时右上角配置位数值变为:E3 99 FF。点击确定。(5)检查实验板J5、J6短路帽是否插上,没有要插上。将下载器与PC机并口相连,另一端连接实验板ISP接口。使用杜邦线将D区任意一个LED灯与PA0相连。检查无误后上电。(6)点击编程,如图2.11所示为编程成功。观察LED,发现它在一闪一闪。图2.11五、思考题1用CodeWizardAVR创建工程的有什么优点?CodeWIzardAVR有特定功能的头文件,可以直接

16、调用,不用再去编写一些程序,比如delay.h等。CodeWizardAVR中的工程向导可以省去很多的初始化的代码,以及程序的框架。CodeWizardAVR中的中断函数可以提供自动的现场保护和断点回复功能,可以方便的使用中断。2创建工程的过程中应注意哪些问题?应注意正确配置各参数,以及目标芯片,防止配置错误,导致程序无法正常工作,甚至损坏电路板。3 AVR熔丝位有哪些作用?编程时应注意哪些问题?(特别注意时钟及加密)熔丝是一个保护知识产权的设计。烧断熔丝后,片内的程序就不可以被读出来也不能被改写,只能用来运行。AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最

17、让初学者头疼的保密位,烧录程序时需要设定好熔丝位,不然设不好会锁芯片。六、实验现象LED灯一闪一灭,间隔时间为半秒钟七、遇到的问题及解决方法1、我的电脑是64位,安装codeversion总是失败,于是我安装的AtmelStudio,编程的时候需要设置CPU频率,头文件也与Codeversion不同,比如。具体如下:2、下载器和烧录软件也与实验室不同:下载器:USBASP烧录器:八、心得体会本次实验,我学习了单片机的软件环境。使用CodeVision AVR软件的工程创建向导功能,创建了一个简单的工程,编译并下载。在此过程中的设置是:Chip-ATmega16,Clock-4MHz。按照需要配

18、置各IO端以及定时器等。编译后,要注意观察Information窗口,观察是否有错误或警告以及它们所在的位置。下载过程中,一定要保证单片机与PC机连接正确,即串口连接好且单片机上电。实验三 I/O口操作实验一、实验目的1掌握ATmega16 I/O口操作相关寄存器2掌握 CodeVision AVR软件的使用3. 复习C语言,总结单片机C语言的特点二、实验内容1. 设计一个简单控制程序,功能是8个LED逐一循环发光0.5s,构成“流水灯”。2. 设计一个4种闪烁方式交替循环的彩灯,闪烁方式如图3.1所示:图3.1 4种不同控制方式的转换图三、实验所用仪表及设备硬件:PC机一台、AVR_Stud

19、yV1.1实验板软件:CodeVision AVR集成开发软件、SLISP下载软件四、实验步骤硬件接线图: 根据图3.2所示,使用杜邦线将AVR_StudyV1.1实验板PA口与LED相连。图3.2新建工程,实现实验内容1。根据电路图,LED属于共阳接法,所以PORTA输出低电平时灯点亮。PORTA初始化:DDRA = 0xFF; /PA口工作为输出方式PORTA = 0xFF; / PA口输出全1,LED全灭“流水灯”程序控制:1、PA0 = 0 点亮LED0 PORTA = 0b11111110 = (1 0)2、PA1 = 0 点亮LED1 PORTA = 0b11111101 = (1

20、 1)3、PA2 = 0 点亮LED2 PORTA = 0b11111011 = (1 2)7、PA6 = 0 点亮LED6 PORTA = 0b10111111 = (1 6)8、PA7 = 0 点亮LED7 PORTA = 0b01111111 = (1 7)9、PA0 = 0 点亮LED0 PORTA = 0b11111110 = (1 0)根据控制流程,总结出:可以利用移位运算实现“流水灯”的设计。主函数:void main(void)unsigned char position = 0; / position为控制位的位置PORTA = 0xFF; / PA口输出全1,LED全灭DD

21、RA = 0xFF; / PA口工作为输出方式while (1)PORTA = (1= 8) position = 0;delay_ms(500);新建工程,实现实验内容2。提示:在CVAVR中,提供int rand (void)和void srand(int seed)函数,产生随机数。函数包含在头文件stdlib.h中,具体内容查阅CVAVR帮助文档。其中task1(),task2(),task3(),task4()分别完成框图中要求的功能。void task1(void) unsigned char position,i; position = 0; i = 16; while(i-)

22、PORTA = (0x80 position); if(+position = 8) position = 0; delay_ms(500); PORTA=0xFF;void task2(void) unsigned char position,i; position = 0; i = 16; while(i-) PORTA = (1 = 8) position = 0; delay_ms(500); PORTA=0xFF;void task3(void) bit position; unsigned char i; position = 1; i = 16; while(i-) if(pos

23、ition) PORTA = 0b10101010; else PORTA = 0b01010101; position = !position; delay_ms(500); PORTA=0xFF;void task4(void) unsigned char i; i = 16; while(i-) PORTA = (unsigned char)rand(); delay_ms(500); PORTA=0xFF; void main(void) PORTA=0xFF; DDRA=0xFF; while (1) task1(); delay_ms(500); task2(); delay_ms

24、(500); task3(); delay_ms(500); task4(); delay_ms(500); ;下载程序,观察实验现象。注意熔丝位的配置,选择内部4MHz时钟。五、实验现象实验内容流水灯从左往右依次亮和熄灭实验内容四种状态交替六、思考题1、总结AVR I/O口的特点及编程流程。作为通用数字I/O 使用时,所有AVR I/O 端口都具有真正的读- 修改- 写功能。这意味着用SBI 或CBI 指令改变某些管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻) 时不会无意地改变其他管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻)。输出缓冲器具有对称的驱动能力,可以输出或吸收大电流,

25、直接驱动LED。所有的端口引脚都具有与电压无关的上拉电阻。用户程序需要首先对要使用的I/O口进行初始化设置,根据实际需要设定使用I/O口的工作方式(输出还是输入)。数据寄存器PORTx:当DDRx为1,作为输出引脚时,写入引脚要输出的电平状态,作为输出引脚可输出高低电平。当DDRx为0作为输入引脚时,可配置上拉电阻.端口输入引脚PINx:只读寄存器。可以用来读取外部电平的变化。2)当DDRx=1时,I/O口处于输出工作方式,PORTx = 1,输出高电平;PORTx = 1,输出低电平;3)当DDRx=0时,I/O口处于输入工作方式,PORTx = 1,输入,使能内部上拉电阻,PORTx =0

26、,高阻态。PINx的值代表端口输入值。2、复习C语言位运算相关内容。3、查阅相关资料,总结随机数、伪随机数,并举例说明在实际中的应用。真随机数是使用物理现象产生的,伪随机数通过一个固定的、可以重复的计算方法产生。如使用随机数表等方式产生,其中在C语言中,使用的是伪随机数,产生时如果没有进行随机数种子的设置,将会在不同次的运行中产生相同的随机序列。随机数在一些概率模拟,随机算法,如遗传算法,随机重新开始的爬山法等算法中有很多应用。4、修改实验内容一,实现从左到右依次先点亮一个发光二极管,再点亮两个,八个全部点亮,然后一个一个依次熄灭。while (1) / Place your code her

27、e PORTA =0b11111110; while(PORTA) delay_ms(500); PORTA =PORTA1; PORTA =0b11111110; while(PORTA != 0xFF)PORTA=(PORTA1); ;七、遇到的问题及解决方法在寝室自己电脑上做实验时,LED灯亮和灭切换非常慢,我始终没搞清是怎么回事,于是将源程序中的delay_ms=500,改得很小,这样就切换得快了。后来发现是因为在使用自己电脑的烧录软件时没有配置熔丝位,八、心得体会通过实验实现8个LED逐一循环发光的“流水灯”,以及设计出了一个4种闪烁方式交替循环的彩灯。在完成了硬件部分的连接工作后,

28、在软件环境下,进行程序的改写。由于LED属于共阳极接法,所以PORTA输出低电平时灯点亮,“流水”效果由移位运算实现。实验二,对四种显示方法分别编写相应的子函数代码,并在主函数中一次调用。下载程序过程中,选择内部4MHz时钟。本次实验,着重对各端口使用部分的操作练习。通过实验指导书的讲解,我了解到使用端口使LED灯闪亮的操作原理,并在实验操作中,对实验内容二增加了新的闪烁方式。空白页实验四 数码管显示实验一、实验目的(1)掌握ATMega16的I/O输出特性和使用。(2)了解数码管的内部结构,掌握数码管动态扫描的原理和设计方法。二、实验内容(1)单个数码管字符显示,控制一个数码管循环显示显示“

29、0”“F”16个字符。(2)综合实验:设计一个秒表系统。三、实验所用仪表及设备硬件:PC机一台、AVR_StudyV1.1实验板软件:CodeVision AVR集成开发软件、SLISP下载软件四、实验步骤新建项目,实现实验内容1。建立数码管字型字段编码表(共阴数码管):flash unsigned char led_716=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;关键字flash表示将数据存放到Flash中,LED_7数组中的量都是固定值,将它们存放到Flash中不会占用有限的Ram资源。数码管要显示0,使用下面语句:PORTA = LED_70;建立新项目,实现实验内容2。硬件连接图如图4.3所示。图4.3数码管的动态显示函数:void display(void) / 扫描显示函数,执行时间12ms char i; for(i=0;i=5;i+) PORTA = led_7dis_buffi; if (point_on & ( i=2 | i=4 ) PORTA |= 0x80; PORTC = positioni; delay_ms(2);

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

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