匿名
未登录
登录
丢石头百科
搜索
查看“AVR 定时器ICP功能”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
AVR 定时器ICP功能
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<table border="0" cellpadding="0" cellspacing="0" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="780"><tr><th class="type_483D8B" scope="col" style="line-height: 20px; font-weight: normal; border-top-style: none;" valign="top"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="120"><tr><th bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">系统功能</th></tr></table><br/> 使用AVR内部定时器做1S定时,并使用LED作出简单指示!<br/><br/><br/></div></th></tr><tr><th class="type_483D8B" scope="col" style="line-height: 20px; font-weight: normal; border-top-style: none;" valign="top"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="120"><tr><th bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">硬件设计</th></tr></table><br/> 关于AVR的I/O结构及相关介绍详见Datasheet,这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表:<br/><table bgcolor="#DDDDDD" border="0" cellpadding="1" cellspacing="1" width="660"><tr bgcolor="#999999" class="white_14px" style="font-size: 14px; color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;" valign="middle"><th colspan="6" height="25">表 6.1 I/O 口引脚配置表</th></tr><tr bgcolor="#FFFFFF" class="type_483D8B_12px_b" style="font-size: 12px; font-weight: bold; color: rgb(72, 61, 139); line-height: 20px; font-family: Arial, Helvetica, sans-serif;" valign="middle"><td height="20" width="70"><p align="center">DDRXn</p></td><td height="20" width="70"><p align="center">PORTXn</p></td><td height="20" width="70"><p align="center">PUD</p></td><td height="20" width="90"><p align="center">I/O 方式</p></td><td height="20" width="90"><p align="center">内部上拉电阻</p></td><td height="20" width="268"><p align="center">引脚状态说明</p></td></tr><tr bgcolor="#F8F8FF" class="type_483D8B" style="font-size: 12px; line-height: 20px; border-top-style: none; color: rgb(72, 61, 139);" valign="middle"><td height="20" width="70"><p align="center">0</p></td><td height="20" width="70"><p align="center">0</p></td><td height="20" width="70"><p align="center">X</p></td><td height="20" width="90"><p align="center">输入</p></td><td height="20" width="90"><p align="center">无效</p></td><td height="20" width="268"><p align="center">三态(高阻)</p></td></tr><tr bgcolor="#FFFFFF" class="type_483D8B" style="font-size: 12px; line-height: 20px; border-top-style: none; color: rgb(72, 61, 139);" valign="middle"><td height="20" width="70"><p align="center">0</p></td><td height="20" width="70"><p align="center">1</p></td><td height="20" width="70"><p align="center">0</p></td><td height="20" width="90"><p align="center">输入</p></td><td height="20" width="90"><p align="center">有效</p></td><td height="20" width="268"><p align="center">外部引脚拉低时输出电流 (uA)</p></td></tr><tr bgcolor="#F8F8FF" class="type_483D8B" style="font-size: 12px; line-height: 20px; border-top-style: none; color: rgb(72, 61, 139);" valign="middle"><td height="20" width="70"><p align="center">0</p></td><td height="20" width="70"><p align="center">1</p></td><td height="20" width="70"><p align="center">1</p></td><td height="20" width="90"><p align="center">输入</p></td><td height="20" width="90"><p align="center">无效</p></td><td height="20" width="268"><p align="center">三态(高阻)</p></td></tr><tr bgcolor="#FFFFFF" class="type_483D8B" style="font-size: 12px; line-height: 20px; border-top-style: none; color: rgb(72, 61, 139);" valign="middle"><td height="20" width="70"><p align="center">1</p></td><td height="20" width="70"><p align="center">0</p></td><td height="20" width="70"><p align="center">X</p></td><td height="20" width="90"><p align="center">输出</p></td><td height="20" width="90"><p align="center">无效</p></td><td height="20" width="268"><p align="center">推挽 0 输出,吸收电流 (20mA)</p></td></tr><tr bgcolor="#F8F8FF" class="type_483D8B" style="font-size: 12px; line-height: 20px; border-top-style: none; color: rgb(72, 61, 139);" valign="middle"><td height="20" width="70"><p align="center">1</p></td><td height="20" width="70"><p align="center">1</p></td><td height="20" width="70"><p align="center">X</p></td><td height="20" width="90"><p align="center">输出</p></td><td height="20" width="90"><p align="center">无效</p></td><td height="20" width="268"><p align="center">推挽 1 输出,输出电流 (20mA)</p></td></tr></table><p align="center">[[File:AVR_定时器ICP功能-0.jpg|400px]]<br/>AVR主控电路图(点击图片放大,不需要放大镜![[File:AVR_定时器ICP功能-1.gif|400px]]) <br/>[[File:AVR_定时器ICP功能-2.jpg|400px]] <br/>LED控制电路(点击图片放大,不需要放大镜![[File:AVR_定时器ICP功能-1.gif|400px]]) <br/><br/><br/><br/></p></div></th></tr><tr><th class="type_483D8B" scope="col" style="line-height: 20px; font-weight: normal; border-top-style: none;" valign="top"><div align="left"><table border="0" cellpadding="0" cellspacing="0" width="120"><tr><th bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">软件设计</th></tr></table><span class="type_666666_12px" style="color: rgb(102, 102, 102); border-top-style: none; font-family: Arial, Helvetica, sans-serif;"><br/>下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!<br/></span><p class="type_666666_12px" style="color: rgb(102, 102, 102); border-top-style: none; font-family: Arial, Helvetica, sans-serif;">/*01010101010101010101010101010101010101010101010101010101010101010101<br/>----------------------------------------------------------------------<br/>实验内容:<br/>使用TIMER1做1S定时,并使用PD口的LED指示灯做简单指示。<br/>----------------------------------------------------------------------<br/>硬件连接:<br/>将PD口的LED指示灯使能开关切换到"ON"状态。<br/>----------------------------------------------------------------------<br/>注意事项:<br/>(1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘<br/>(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”<br/> <br/>----------------------------------------------------------------------<br/>10101010101010101010101010101010101010101010101010101010101010101010*/</p><p>#include <iom16v.h><br/>#include <macros.h></p><p>#define DISP_DDR DDRD<br/>#define DISP_PORT PORTD</p><p>/*--------------------------------------------------------------------<br/>函数名称:<br/>函数功能:<br/>注意事项:基于7.3728M晶振,晶振不要买到假的!<br/>提示说明:<br/>输 入:<br/>返 回:<br/>--------------------------------------------------------------------*/<br/>void timer1_init(void)<br/>{<br/> TCCR1B = 0x00; //stop timer</p><p> TCNT1H = 0xE3; //设置 TC1 的 计数寄存器 高8位值,基于7.3728M晶振<br/> TCNT1L = 0xE1; //设置 TC1 的 计数寄存器 低8位值,基于7.3728M晶振</p><p> //OCR1AH = 0x1C; //设置 TC1 的 输出比较寄存器A 高8位值<br/> //OCR1AL = 0x20; //设置 TC1 的 输出比较寄存器A 低8位值</p><p> //OCR1BH = 0x1C; //设置 TC1 的 输出比较寄存器B 高8位值<br/> //OCR1BL = 0x20; //设置 TC1 的 输出比较寄存器B 低8位值</p><p> //ICR1H = 0x1C; //设置 TC1 的 输入捕获寄存器 高8位值<br/> //ICR1L = 0x20; //设置 TC1 的 输入捕获寄存器 低8位值</p><p> TCCR1A = 0x00;<br/> TCCR1B = 0x05; //设置TC1 为 CLK/1024分频,启动TC1</p><p> MCUCR = 0x00; //设置 MCU 的 控制寄存器<br/> GICR = 0x00; //设置 中断控制寄存器<br/> TIMSK = 0x04; //设置 定时计数器 的 屏蔽寄存器<br/> //SEI(); //enable interrupts<br/>}<br/>/*--------------------------------------------------------------------<br/>函数名称:<br/>函数功能:<br/>注意事项:<br/>提示说明:<br/>输 入:<br/>返 回:<br/>--------------------------------------------------------------------*/<br/>#pragma interrupt_handler timer1_ovf_isr:9<br/>void timer1_ovf_isr(void)<br/>{<br/> TCNT1H = 0xE3; //reload counter high value<br/> TCNT1L = 0xE1; //reload counter low value<br/> DISP_PORT++; //每加1S,显示加1<br/>}<br/>/*--------------------------------------------------------------------<br/>函数名称:<br/>函数功能:<br/>注意事项:没什么好注意的,不要直接对单片机控制板加220V电压就行了!<br/>提示说明:<br/>输 入:<br/>返 回:<br/>--------------------------------------------------------------------*/<br/>void main(void)<br/>{<br/> DISP_DDR = 0XFF; //设置显示口为输出<br/> timer1_init();<br/> SEI();<br/> while(1);<br/>}<br/></p></div></th></tr><tr><th class="type_483D8B" scope="col" style="line-height: 20px; font-weight: normal; border-top-style: none;" valign="top"><div align="left"><br/><table border="0" cellpadding="0" cellspacing="0" width="120"><tr><th bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">系统调试</th></tr></table><p>时间在累积,LED也累积向上加,改变。</p></div></th></tr></table>
返回至
AVR 定时器ICP功能
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志