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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机学习资料7.docx

1、单片机学习资料7七 Atmega8单片机训练课题课题一 Atmega8单片机输出端口练习一、目的:1、掌握用C语言定义AVR单片机引脚的输出功能;2、熟悉用二进制计数的方法;3、初步了解用AVR Studio4模拟调试AVR应用程序;4、初步掌握用ISIS软件仿真电路;二、要求:用Atmega8单片机PB0、PB2、PB3三个I/O口,点亮相应的发光二极管。三、仿真电路图:图7-1图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:ATmega8单片机输出端口练习芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:点亮PB0、PB1、PB2口的发光二极管

2、*/#include /调用Tmega8寄存器头文件/* 主函数*/void main() DDRB=0B00000111;/定义PB0-PB2为输出 while(1) /循环运行 PORTB=0B00000111;/PB0-PB2输出高电平2、用AVR Studio4模拟调试上述程序。3、利用ISIS软件,根据图7-1画出仿真电路,并将编译正确的、后缀为.cof的程序烧录后进行仿真。四、讨论题:1、利用ICC AVR编辑C程序时,每条语句后的“;”是在英文状态输入,还是在中文状态输入。如果改为在中文状态输入,结果是怎样的?2、在第一次编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?

3、3、如何编辑一C程序,PB1、PB3、PB5、PB7上的发光二极管。课题二 Atmega8单片机输入端口练习一、目的:1、掌握用C语言定义AVR单片机引脚的输入功能,并理解打开上拉电阻的含义;2、理解ifelse条件判断语句;3、初步掌握用AVR Studio4模拟调试AVR应用程序;4、掌握用ISIS软件仿真电路;二、要求:按住S1,D1点亮;松开S1,D1熄灭。三、仿真电路图:图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:ATmega8单片机输入端口练习芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:按住S1,D1点亮;松开S1,D1熄灭*

4、/#include /调用Tmega8寄存器头文件/* 主函数*/void main() DDRB=0B00000001;/定义PB0为输出 DDRD=0B00000000;/定义PD0-PD7为输入 PORTD=0B00000100;/打开PD2的上拉 while(1) /循环运行 if(PIND&0B00000100)=0B00000000)/判断S1是否按住 PORTB|=0B00000001;/如果按住,PB0输出高电平 else /否则 PORTB&=0B11111110;/PB0输出低电平 2、用AVR Studio4模拟调试上述程序。3、利用ISIS软件,对上述程序进行仿真。四、

5、讨论题:1、在利用AVR Studio4软件单步调试过程中,如何处理if(PIND&0B00000100)=0B00000000),才能使调试过程按要求顺利完成?2、编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题三 自锁控制一、目的:1、理解算法的概念,基本掌握用流程图表示算法以及用流程图指导编程;2、理解while循环语句以及它与if条件判断语句的异同;3、逐步引导学生利用弱电控制强电;二、要求:按一下S1,即使松手后,D1一直被点亮,只有等到按一下S2后,D1才熄灭。这里,S1相当于电力拖动控制线路中的启动按钮,S2相当于停止按钮。三、仿真电路图:图7-1四、实训内容和步骤

6、:1、画出实现上述功能的流程图;2、根据所画的流程图编辑、编译C程序:/*项目:自锁控制芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:按一下S1,D1一直被点亮,直到按以下S2,D1才熄灭*/#include /调用Tmega8寄存器头文件/*系统初始化函数 */void sys_init(void) DDRB=0X01;/定义PB0为输出 PORTB=0X00;/PB0输出低电平 DDRD=0X00;/定义PD0-PD7为输入 PORTD=0X0C;/打开PD2-PD3上拉/* 主函数*/void main() sys_init();/调用初始化函数 while(1) /循

7、环运行 if(PIND&0X04)=0X00)/判断S1是否按下 PORTB=0X01;/如果按下PB0输出高电平 while(PIND&0X08)=0X00) /当S2按下 PORTB=0X00;/PB0输出低电平 2、用AVR Studio4模拟调试上述程序。3、利用ISIS软件,对上述程序进行仿真。4、将后缀为.hex的程序烧录到实验板上,分别按S1和S2,验证能否达到自锁的目的。5、检查无误后驳接到电拖板,在教师指导下通电测试。四、讨论题:1、如果将程序中的while改为if,情况怎样?2、编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题四 联锁正反转控制一、目的:1、进

8、一步学习用流程图表示算法以及用流程图指导编程;2、进一步理解while循环语句;二、要求:按一下S1,D1被点亮(正转);按一下S2后,D2被点亮(反转);按一下S3,D1、D2均熄灭(停止)。三、仿真电路图:图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:联锁正反转控制芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:按一下S1,D1被点亮(正转);按一下S2,D2被点亮(反转);按一下S,D1、D2均熄灭(停止)。*/#include /调用Tmega8寄存器头文件/*系统初始化函数 */void sys_init(void) DDRB=0X0

9、3;/定义PB0、PB1为输出 PORTB=0X00;/PB0、PB1输出低电平 DDRD=0X00;/定义PD0-PD7为输入 PORTD=0X1C;/打开PD2-PD4上拉/* 主函数*/void main() sys_init();/调用初始化函数 while(1) /循环运行 while(PIND&0X10)=0X00)/当S3按下 PORTB=0X00;/PB0、PB1输出低电平 while(PIND&0X04)=0X00) /当S1按下 if(PIND&0X04)=0X00)/如果S1按下 PORTB=0X01;/PB0输出高电平 while(PIND&0X10)=0X00)/当S

10、3按下 PORTB=0X00;/PB0-PB7输出低电平 while(PIND&0X08)=0X00) /当S2按下 if(PIND&0X08)=0X00) /如果S2按下 PORTB=0X02; /PB1输出高电平 while(PIND&0X10)=0X00) /当S3按下 PORTB=0X00; /PB0-PB7输出低电平 2、用AVR Studio4模拟调试上述程序。3、利用ISIS软件,对上述程序进行仿真。4、将后缀为.hex的程序烧录到实验板上,分别按S1、S2 、S3,进行验证。5、检查无误后驳接到电拖板,在教师指导下通电测试。四、讨论题:1、你能否编写出更加优化的程序?2、编译程

11、序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题五 延时闪烁控制(软件延时)一、目的:1、正确理解for循环语句;2、掌握C语言定义及调用延时函数的方法;二、要求:通电后,D1-D7延时闪烁。三、仿真电路图:图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:延时闪烁控制芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:通电后,D1D7延时闪烁。*/#include /调用Tmega8寄存器头文件/*系统初始化函数 */void sys_init(void) DDRB=0XFF;/定义PB0-PB7为输出 PORTB=0X00;/PB0-PB7

12、输出低电平/* 延时函数*/void delay(void) int i,j; for(i=0;i500;i+) for(j=0;j1000;j+);/* 主函数*/void main() sys_init();/调用初始化函数 while(1) /循环运行 PORTB=0XFF;/PB0-PB7输出高电平,点亮D1-D7 delay();/调用延时函数 PORTB=0X00;/PB0-PB7输出低电平,关闭D1-D7 delay();/调用延时函数 2、用AVR Studio4模拟调试上述程序(为提高仿真效率,在仿真之间先将延迟时间缩短)。3、利用ISIS软件,对上述程序进行仿真。四、讨论题

13、:1、如何调整LED闪烁的快慢?2、调用延时函数时,将其改为“Delay();”,编译时会产生什么现象。3、编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题六 广告灯控制一、目的:1、掌握C语言按位移动的定义方式;2、巩固C语言软件延时的定义方法;二、要求:通电后,D1-D7先从右到左依次产生亮、灭变化,然后从左到右依次产生亮、灭变化,如此循环。三、仿真电路图:图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:广告灯控制芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:通电后,D1-D7先从右到左依次产生亮、灭变化,然后从左到右依次产生

14、亮、灭变化,如此循环。*/#include /调用Tmega8寄存器头文件/*系统初始化函数 */void sys_init(void) DDRB=0XFF;/定义PB0-PB7为输出 PORTB=0X00;/PB0-PB7输出低电平/* 延时函数(延迟约0.1秒)*/void delay(void) int i,j;/定义两个整形变量 for(i=0;i500;i+) for(j=0;j1000;j+);/* LED点亮函数*/void LED_ON(int a) PORTB=(0X01a);/按位左移a delay();/调用延时函数/* 主函数*/void main() int i;/定

15、义一个整形变量 sys_init();/调用系统初始化函数 while(1) /循环运行 for(i=0;i0;i-)/右移8次 LED_ON(i);/ 调用LED点亮函数 2、用AVR Studio4模拟调试上述程序(为提高仿真效率,在仿真之间先将延迟时间缩短)。3、利用ISIS软件,对上述程序进行仿真。四、讨论题:1、试编写先从左到右,然后从右到左循环变化的流水广告等控制程序?2、编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题七 0-99循环显示控制一、目的:1、进一步学习用流程图表示算法以及用流程图指导编程;2、进一步理解while循环语句;二、要求:通电后,两位数码管循

16、环显示0-99。三、仿真电路图:图7-2图7-2四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:0-99循环显示控制芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:通电后,两位数码管循环显示0-99*/#include /调用Tmega8寄存器头文件#pragma data:code /声明定义一个BCD字型表const unsigned tabs=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;#pragma data:data /声明定义一个数组unsigned char ledbuff2=0,0;

17、/* 系统初始化函数*/void sys_init(void) DDRB=0XFF;/定义PB0-PB7为输出 DDRC=0X03;/定义PC0-PC1为输出/* 延时函数(大约延迟4ms)*/void delay(void) int i,j;/定义两个整形变量 for(i=0;i4;i+)/两个for循环嵌套,大约消耗4ms for(j=0;j1000;j+);/* 数码管刷新显示*/void led_display(void) unsigned char i;/定义一个无符号字符型变量 for(i=0;i2;i+) PORTB=tabsledbuffi;/从BCD字型码中查表 PORTC=

18、(0X0199)/判断I是否大于99 i=0;/如果i99,则i、ledbuff0、ledbuff1清零 ledbuff0=0; ledbuff1=0; led_display();/调用数码管显示函数 2、用AVR Studio4模拟调试上述程序。3、利用ISIS软件,对上述程序进行仿真。四、讨论题:1、试编写09999循环显示的控制程序。2、编译程序时,提示栏给你提出了哪些错误提示,你是如何解决的?课题八 中断实验一、目的:1、 掌握中断的概念。2、 初步掌握利用C语言定义中断的方法;二、要求:通电后,D1-D7全部被点亮;当按住S1时,只有D1、D3、D5、D7被点亮;松开S1后,又全部

19、被点亮。三、仿真电路图:图7-1四、实训内容和步骤:1、用ICC AVR编辑、编译下列C程序:/*项目:中断实验芯片类型:ATmega8时钟:8.000MHz作者:刘天旺功能:通电后,D1-D7全部被点亮;当按住S1时,只有D1、D3、D5、D7被点亮;松开S1后,又全部被点亮(使用外部中断INT0)。*/#include /调用Tmega8寄存器头文件#include/调用Tmega8寄存器头文件/* 系统初始化函数*/void sys_init(void) DDRB=0Xff;/定义PB0PB1为输出 PORTB=0Xff;/PB0-PB7输出高电平 DDRD=0X00;/定义D0-PD7输入 PORTD=0X04;/打开PD2内部上拉 GICR=0X40;/外部中断INT0使能 SEI();/全局中断使能/*

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

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