广州大学学生实验报告开课学院及实验室:2011年4月11日学院机械与电气工程试验年级、专业、班姓名学号课程名称单片机原理与接口技术实验成绩实验项目名称I/O实验指导老师一、实验目的1、熟悉AVR单片机的I/O口配置方法。2、掌握AVR单片机I/O口控制LED、蜂鸣器、数码管的方法。二、实验器材1、实验设备:计算机(PC),AVRMega128学习板,AVR下载/仿真器。2、软件平台:ICCAVRC语言程序开发软件,AVRSTUDIO软件调试平台。三、实验原理2、与I/O口相关的寄存器阅读芯片手册,学习以下寄存器的作用:PORTA-PORTG;DDRA-DDRG;PINA-PING;四、实验内容与步骤1、简单LED控制阅读例程001-IO-LED源代码,编译调试,阅读反汇编窗口的汇编代码。(1)回答问题,分别写出实现以下要求的c语言和汇编语言代码(可以用多种方式实现)。(2)修改例程的代码,实现并记录主要代码:PE3对应的LED亮10ms,灭90ms,循环;2、简单蜂鸣器控制阅读例程006-IO-BUZZ源代码,编译调试,阅读反汇编窗口的汇编代码。(1)回答问题:a.该蜂鸣器是无源蜂鸣器还是有源蜂鸣器,为什么?b.为什么需要S8550?(2)修改例程的代码,分别实现发出大约200Hz、500Hz、1000Hz、5000Hz的声音。记录实现代码以及延时值的计算方式。3、4位数码管显示控制阅读例程009-LED4源代码,编译调试,阅读反汇编窗口的汇编代码。(1)回答问题:a.哪个引脚控制最左边的数码管显示?是输出高电平还是低电平显示?b.PORTA的8个引脚分别控制七段数码管的哪一段的显示?要让中间一横显示,需控制哪个引脚输出何种电平?c.程序是怎样让4个数码管使用相同的PORTA口来控制输出内容?(2)写出实现以下要求的c语言代码。(3)(提高题,选做)修改代码,实现显示“HELP”。(4)、(提高题,选做)模拟SPI方式控制LED例程002-SPI-LED是通过芯片内的SPI模块来控制16路LED。要求不使用SPI模块,直接控制相关引脚,用简单I/O来模拟SPI的工作方式,自行实现led_init()和led_out()函数,达到与例程002-SPI-LED中的led_out()函数同样的效果。五、实验报告要求1、按照上述步骤要求记录结果。2、记录遇到的问题和解决方法。