atmega48学习教程之1.项目一跑马灯atmega48学习教程之1.项目一跑马灯.ppt

atmega48学习教程之1.项目一跑马灯atmega48学习教程之1.项目一跑马灯.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
atmega48学习教程之1.项目一跑马灯atmega48学习教程之1.项目一跑马灯

* 1、iom48v.h为头文件,内部定义了各种寄存器的名称与位置;2、delay_ms为自定义的延时函数;用于软件延时 * * * * * * * * * 单片机原理与 接口技术 广州大学自动化系 肖忠 * 一、设计目标 任务一:跑马灯 (LED循环显示) * 单片机 最小系统 典型 外围电路 二、典型硬件电路 * 二、典型硬件电路 单片机 系统 外围电路 下载口 * 三、知识点 1-ATmega48及引脚 正常工作需要: 电源、时钟、复位; 另:23个IO B口:0~7 C口:0~6 D口:0~7 * 三、知识点 2-电源电路 (1)线性电源 降压-整流-滤波-稳压(输出5V直流) (2)开关电源 ----电力电子技术的知识 (3)现成的电源模块—(暂不研究) * 三、知识点 3-时钟电路 (1)外部晶振电路 XTAL2、XTAL1为10、9 引脚;C1、C2约为22pF; 晶体振荡器为最大为16MHz (2)内部RC,即这部分电路不需要任何外围器件 * 三、知识点 4-复位电路 系统复位引脚为/RESET,低电平复位 (1)外部复位电路 (2)内部复位,即这 部分电路不需要任何 外围器件也能稳定工 作 * 三、知识点 5-ISP电路 ISP是In-System-Programming的英文缩写,含义是“在系统编程” AVR ISP接口 如右图所示 * 三、知识点 5-ISP电路 * 三、知识点 6-LED驱动电路 共 阳 极 共 阴 极 * 三、知识点 7-ATmega48IO端口 1、端口寄存器及配置 作为通用数字I/O口使用时,每个引脚都具有 3 个寄存器位: DDRxn PORTxn PINxn DDRxn PORTxn I/O 上拉电阻 说明 1 0 输出 无 输出低电平 1 1 输出 无 输出高电平 0 0 输入 无 高阻态 0 1 输入 有 带上拉的输入 * (2) B口高4位为不带上拉的输入口,低4位为输出口 DDRB=0x0F; PORTB=0x00; 2、端口配置实例 (1) D口配置为输出,初值全为高 DDRD=0xFF; //方向 PORTD=0xFF; : 三、知识点 7-ATmega48IO端口 (3) B口配置为带上拉的输入口 DDRB =0x00; PORTB =0xFF; i = PINB; * 三、知识点 7-ATmega48IO端口 如图所示,跑马灯用到了 D口,需定义D口为输出, 初始值为1,即灯灭。 DDRD = 0xFF; PORTD=0xFF; * 四、软件设计 1-流程图 D口初始化 i = 0 i 8 PORTD = ~(1i); 延时; i自增; Y N * 四、软件设计 1-流程图 1、端口初始化(D为输出); 2、i = 0; 3、若 i 8 (1) PORTD = ~(1i); (2) 延时; (3) i++; 4、goto 2 * 四、软件设计 2-代码1 #include iom48v.h /*软件延时函数*/ void delay_ms(unsigned char i) { unsigned char a, b; for (a = 0; a i; a++) for (b = 1; b; b++ ); } * 四、软件设计 2-代码2 void io_init(void) { /*IO口初始化函数*/ DDRB = 0x00; //方向输入 PORTB = 0xFF; //打开上拉 DDRC = 0x00; //方向输入 PORTC = 0xFF; //打开上拉 DDRD = 0xFF; //方向输出 PORTD = 0xFF; //高电平 } * 四、软件设计 2-代码3 void main(void) { unsigned char i; io_init(); while (1) { for (i = 0; i 8; i ++) { PORTD = ~(1 i); delay_ms(200); } } } * 五、电路仿真 * 六、实物演

文档评论(0)

pkaokqunw + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档