- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计 2014年9月 简易波形发生器设计 课程设计要求 设计一个简易波形发生器 基本要求: 1、4位数码管显示,显示XXXX,单位是Hz 2、可以测量输出频率,显示XXXX. 3、键盘设置频率,选择功能 扩展要求: 输出波形占空比可调 可以输出多种波形 其他 有能力同学在完成方波输出设计要求外 可以附加更多功能 鼓励同学们创新 课程设计流程安排 理论上课 上机 焊接 上机 上机考核 独立完成报告 分批 分四批 具体见名单 名单已经挂到网上 校内ftp: / 时间段 上课时间如下: 上午: 8:30-10:00 10:05-11:35 下午: 13:30-15:00 15:05-16:35 晚上: 17:30-20:30 器件清单 网上资料与通知 校内ftp: / 考核时间 7月9号全天考核, 晚上为白天不及格的同学补测时间。 在上机期间有分模块功能的考核。 考核要求 焊接 功能演示 答辩 硬件设计 主要元器件 单片机:mega16 4位数码管 蜂鸣器 按键 本次课程设计使用的单片机 ATmega16 Ateml公司的AVR 8位单片机系列 RISC 16KB Flash 32个8 位通用工作寄存器 1KB SRAM 512B E2PROM 多数指令 单指令单周期 16MHz Mega16的外设资源 4通道PWM 8通道10位ADC 两个具有独立预分频器和比较器功能的8 位定时器/ 计数器 2 个具有可编程增益(1x, 10x, 或200x)的差分通道 SPI USART 比较器 WDT Mega16其他特性 JTAG调试 需要JTAG调试器硬件支持(在本次课程设计中没有) 工作电压:5V 封装:P DIP40(本次课程设计使用) 与标准51除了reset引脚外,兼容 Mega16引脚图 Mega16结构图 见数据手册 电路图 mega16板子 采用16MHz晶振 或 使用内部OSC ADC的电压电压是 5V 看看AVR的RESET时序 RS232串口 在板子上和原理图上有 但在这次课程设计中是没有焊接的 数码管电路 1602字符型LCD的接口 在本次课程设计没有使用LCD 蜂鸣器电路 一个典型的蜂鸣器电路 给低电平发声 本课程设计板子,利用AVR的boot功能和可以IAP的特点,设计了一个USB Bootloader 可以通过USB Bootloader下载编译后代码 具体使用请听下节课 按键电路 使用时候需要开启输入上拉 复位电路 低电平复位逻辑 板子的PCB图 单片机课程设计 软件设计 开发环境 使用C语言编程 IAR for AVR AVR就是由Atmel和IAR合作的产物 IO口的两种状态 IO口的两种状态 IO口的输出性能指标 AVR的IO口灌电流能力与拉电流能力均达30mA 51的拉电流能力100uA,灌电流能力10mA IO口的输入性能指标 AVR的IO口输入状态时可配置上拉电阻,值为100k数量级 最大输入电压范围:-0.5V~Vcc+0.5V IO、寄存器与变量 IO口与IO寄存器的映射(x代表A~D) 方向寄存器:DDRx 数据寄存器:PORTx 输入寄存器:PINx C语言变量与寄存器的映射 io.h这个文件中将所有寄存器映射为同名的变量,对这些变量的读写相当于对寄存器的读写 输出状态IO寄存器设置 DDRx某一位置1,相应位的IO口被设置为输出 PORTx某一位置1或0,对应IO口相应位的电平高低 C语言与硬件环境的映射 位运算 将某一位置1、置0、取反 置1: 相应位与1进行按位或|运算 置0: 相应位与0进行按位与运算 取反: 相应位与1进行按位异或^ 运算 移位运算符:左边为最高位,右边为最低位 位运算 左移: 左移n位相当于乘2n运算,左侧n位丢弃,右侧补n个0 右移 右移n位相当于乘2-n运算,右侧n位丢弃,左侧补n个0 IO口输出操作总结 第一步:IO设置为输出 DDRB = 0xff; DDRB |= (1 5);//第五位设为输出 第二步:对应位输出数据 输出1: PORTB |= (1 5);//第五位输出高电平 输出0: PORTB = ~(1 5);//第五位输出低电平 对应位取反:PORTB ^= (1 5);//第五位取反 头文件 // Include I/O definition file #include ioavr.h 自动适合选择的器件 八段数码管 八段数码管 由八段LED构成 各LED阴极或阳极并在一起,称为“位选线”:共阴、共阳 其余8个引脚各自引出,称为“段选线”,各段可以分别控制 多位合一的数码管 多位合一的数码管 将多个八段数码管的段选线分别并在一起,位选线引出 数码管扫描原理 数码管扫描
文档评论(0)