资源简介
avr单片机例程@天祥电子,老师的讲解视频程序,板带程序,资料全
代码片段和文件信息
/*******************************************
文件:AD5161.C
环境:编译为ICC AVR6.25A,仿真为AVR Studio4.10
硬件:ATMEGA16芯片
日期:2006年12月10日
功能:驱动开发板上的数字电位器(AD5161采用IIC接口)
备注:参考《AVR系列单片机C语言编程与应用实例》(清华大学出版社)
/******************************************/
#include //包含型号头文件
#include //包含“位“操作头文件
#include //标准输入输出头文件
#include //包含自定义常量头文件
#include “Skey.C“ //包含数码管显示函数
/*******************************************
函数名称: Twi_init
功 能: 初始化TWI
参 数: MS--延时的毫秒数
返回值 : 无
/********************************************/
void Twi_init(void)
{
TWBR= 0x20; //设置波特率
TWSR= 0x00; //设置预分频比
TWCR= 0x44; //使能应答,使能TWI
}
/*******************************************
函数名称: AD5161_writeB
功 能: 向AD5161写入电阻值数据
参 数: devadd--器件地址
cmd--控制命令
rdata--电阻数据
返回值 : success--数据成功标志(为TRUE时写入成功,为FALSE时失败)
/********************************************/
uchar AD5161_writeB(uchar devadduchar cmduchar rdata)
{
uchar success=FALSE; //默认返回是写入失败
Start(); //产生START信号
Wait(); //等待START信号发送完毕
if(TestACK()!=START) //检查是否是START信号发送完毕状态
{
success=FALSE; //如果不是,则返回写入失败
return success;
}
Writebyte(devadd); //发送从器件地址
Wait(); //等待发送完毕
if(TestACK()!=MT_SLA_ACK)//检查是否是从器件地址发送完毕状态
{
success=FALSE; //如果不是,则返回写入失败
return success;
}
Writebyte(cmd); //发送AD5161的命令字节(具体含义请参看AD5161的数据手册)
Wait(); //等待发送完毕
if(TestACK()!=MT_DATA_ACK)//检查是否是数据发送完毕
{
success=FALSE; //如果不是,则返回写入失败
return success;
}
Writebyte(rdata); //发送电阻值数据
Wait(); //等待发送完毕
if(TestACK()!=MT_DATA_ACK)//检查是否是数据发送完毕
{
success=FALSE; //如果不是,则返回写入失败
return success;
}
Stop(); //对AD5161的一次操作完毕,发送STOP信号
Delayms(10); //等待发送完毕
success=TRUE; //本次写入成功
return success; //返回写入成功状态
}
/*******************************************
函数名称: main
功 能: 按键更新数字电位器的阻值(电阻是A和W端的阻值,默认B端是开路的)
参 数: 无
返回值 : 无
/********************************************/
void main(void)
{
uchar idata=0; //初始电阻是满量程
Board_init( ); //初始化开发板
Twi_init( ); //初始化TWI
AD5161_writeB(0x580x00data); //设置初始电阻
while(1)
{
if(Skey_press()) //是否有按键按下
{
i=Skey_scan(); //扫描并反回翻译后的键码
switch(i)
{
case 0: //S1键按下,减少电阻的数字量(AD5161的特性是减少电阻的数字量,阻值增加)
data-=16;
break;
case 1: //S2键按下,增加电阻的数字量
data+=16;
break;
case 2: //S3键按下,使电阻的数字量为零(阻值满量程)
data=0;
break;
case 3: //S3键按下,使电阻的数字量为满(阻值清零,只剩下接触电阻)
data=255;
break;
}
AD5161_writeB(0x580x00data); //更新电阻
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-07-03 10:02 avr单片机例程\
文件 15663 2007-03-03 11:14 avr单片机例程\AVR_PQ1A.H
目录 0 2009-07-03 10:02 avr单片机例程\AVR_PQ1A_DEMO\
目录 0 2009-07-03 10:02 avr单片机例程\AVR_PQ1A_DEMO\10_DA\
文件 2488 2007-03-09 09:52 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.C
文件 3700 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.cof
文件 2549 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.dbg
文件 301 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.dp2
文件 1775 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.hex
文件 22340 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.lis
文件 11 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.lk
文件 18713 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.lst
文件 779 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.mak
文件 1477 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.mp
文件 5708 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.o
文件 840 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.prj
文件 9377 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.s
文件 43 2007-03-09 09:49 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300.SRC
文件 2462 2007-03-09 09:50 avr单片机例程\AVR_PQ1A_DEMO\10_DA\AD5300._C
文件 1850 2007-01-06 21:56 avr单片机例程\AVR_PQ1A_DEMO\10_DA\Skey.C
目录 0 2009-07-03 10:02 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\
文件 4435 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.C
文件 6958 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.cof
文件 3935 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.dbg
文件 306 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.dp2
文件 6268 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.hex
文件 39793 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lis
文件 12 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lk
文件 45489 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lst
文件 801 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.mak
文件 3537 2007-03-09 09:55 avr单片机例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.mp
............此处省略354个文件信息
- 上一篇:netflow网络流量分析手册
- 下一篇:NetDraw.zip
相关资源
- 基于AVR单片机温室气雾培控制系统的
- AVR单片机嵌入式系统原理与应用实践
- 基于AVR单片机的汽车空调控制系统资
- 基于Atmega16湿度传感器源代码
- 关于avr单片机红外遥控解码的程序
- 郭天祥TX-1C学习板教程资料汇总免费地
- AVR单片机ATmega16L驱动一个数码管Prot
- AVR M16例程大全
- 基于AVR单片机人体热释红外感应
- 基于AVR单片机的土壤水分检测系统设
- 郭天祥10天学会PIC单片机.
- AVR单片机入门与速成攻略源码.rar
- 基于AVR单片机的OLED现实源码
- 郭天祥AVR单片机
- ds2781单总线avr单片机程序
- 基于AVR单片机的可预置程控宽带直流
- AVR单片机语音识别电路模块设计
- 基于AVR单片机的CH4气体检测系统
- 基于AVR单片机LED数字大屏显示
- 单片机反汇编软件汇总
- 郭天祥ARM9视频教程 全25讲
- 郭天祥程序 51单片机郭天祥TX-1C51单片
- AVR单片机应用开发指南及
- 基于AVR单片机的DS1307使用实验
- 郭天祥51单片机开发板原理图
- AVR单片机ATmega16L继电器Proteus仿真
- 郭天祥智能家居网络系统源代码
- 郭天祥单片机开发板proteus版+1602LCD液
- avr单片机pwm输出频率占空比可设定c子
- 51单片机经典课件(郭天祥)
评论
共有 条评论