语言实现流水灯实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言实现流水灯实验报告.doc

C语言实现流水灯实验报告 目录 单片机基础 第3页 ATmegal6单片机原理 第4页 3.1/0 口结构 第5页 C语言流水灯制作流程 第6页 流水灯编写程式 第7页 Proteus模乎以仿真 第9页 Proteus的优缺点 第10页 参考资料 第11页 学习小结 第11页 单片机基础内容简介 什么是单片机? 单片机是一种集成CPU,储存器,I/O设备的可编程半 导体集成电路芯片,属于微型计算机的一种类型。单片机具 有体积小,集成度高,功能强,使用灵活,价格低廉,稳定 可靠等优点,被广泛应用电器,只能仪器,电子通信,工业 控制等领域。微型计算机有传统的冯?诺依曼和哈弗结构, 有单时钟周期结构CPU和多时钟指令CPU,流水线指令技 术亦在单片机中应用,这些新技术极大提高了单片机的性 能。 AVR单片机简介。 AVR系列单片机是ATMEL公司于1997年推出的一款 全新配置的,采用RTCS精简指令结构的新型8位单片机。 是一种一种高可靠性,功能强,高速度,低功耗和低价位的 单片机。 AVR单片机分类: .低档单片机,Tiny系列,主要型号有Tiny 11/12/13 等。 .中档单片机,AT90S系列,主要型号有 AT90S1200/2313/8515/8535 等。目前已被淘汰。 .高要型号有 ATmega8/16/32/64/128 等。 ATmegal6是AVR单片机钟一款比较典型,比较常见的高 性能单片机,采用增强的RISC结构低功耗8位CMOS高性 能微控制器。由于先进的指令集以及单时钟周期指令执行时 间,大大提高了代码效率,并且具有普通微控制器最高至10 倍的数据吞吐率。 I/O 口结构 ATmegal6共四组通用可编程的I/O 口引脚。分别为 PA,PB,PC,PD 口。每一组有8个引脚,分别用PX0—PX7表 zj\ O 1.1/0 口寄存器 I/O 口的结构大体相同,一个典型的I/O 口引脚如图所示, 只要有三个寄存器分别为DDRX,PORTX,PINX每组I/O 口 均有这3钟=种寄存器,每个寄存器8bit,分别对应一个 引脚。 2.1/0 口特点 每个I/O 口内部集成了一个可控制的上啦电阻,在I/O 口 作为输入引脚时,该上拉电阻可以通过编程设定其有效还 是无效,当设置内部上拉电阻有效时可以省略外接上拉电 阻。 每个I/O 口均有很强的驱动能力,驱动拉电流负载时能提 供20mA的电流,驱动灌电流负载能吸入40mA的电流, 因此能直接驱动LED发光二极管,数码管等器件。 C语言流水灯制作流程 项目要求 编程实现8个发光二极管从左到右和从中间到两边的流 水灯效果。8个发光二极管接于PC 口,且阳极接I/O 口,阴 极接地。 项目分析 根据项目要求,发光二极管的驱动方式为I/O 口输出1点 亮,输出0熄灭。依次使PC 口出现高电平1,控制发光 二极管从左到右亮了 一遍。当数据沿反顺序输出一遍时发 光二极管从D8亮到D1,实现从右到左亮。 项目实现 根据项目分析,控制Dl—D8点亮的控制字分别为 0x01,0x02,0x04,0x08,0xl0,0x20,0x40,0x80。定义一个数组 LED,将这8个控制字放在数组LED中。定义变量i,使用 流水灯编写程序 流水灯从中间往两边流动效果 #includeioml6.h void delay(unsigned char t); const unsigned led[8]={0x18,0x24,0x042,0x81,0x81,0x42,0x24,0x18}; void main (void) {unsigned char i; DDRC=0xff; DDRA=0xff; while(1) {for(i=0;i7;i++) {PORTC=led[i]; delay (50); } for(i=7;i〉0;i-- {PORTC=led[i]; delay (50); } } } void delay(unsigned char t) {unsigned char i,j,k; for(i=0;i50;i++) for(j=0;j50;j++) for(k=0;kt;k++); } 流水灯从左到右流动效果 #includeioml6.h void delay(unsigned char t); constunsigned led[8]={0x01,0x02, 0x04,0x08, 0x10, 0x20,0x40z 0x80}; void main (void) {unsigned char i; DDRC=0xff; DDRA=0xff ; charcharwhile (1) char char {for(i=0;i7;i++) {PORTC=led[i]; del

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档