EDN首页   博客首页

1

关于投票
初学AVR_日记(四)_自己动手做的AVR_JTAG仿真器!

     实际上这个仿真器早就做出来了,只是一直没有时间弄个照片给大家看,今天终于拍了张照片,小小的显摆下,嘿嘿。。。

    前阵子我已经用ATmega16实现了DS18B20的温度读取,因为可以仿真,调试很简单;最近又弄了下ADC,也很好玩;下步我准备用其做USB设备,芯片定型为ATmega16和USBD12;好了,不罗嗦了,贴个图给大家看。。。

点击开大图

PS:为了方便交流,我建了个AVR技术交流群,感兴趣的朋友可以加下。

群号:6022960

系统分类: 单片机
用户分类: AVR
标签: AVR ATmega16 18B20 JTAG
来源: 原创
发表评论 阅读全文(414) | 回复(2)

1

关于投票
初学AVR_日记(三)_ATmega16控制DS18B20原代码

以下为ATmega16控制DS18B20原代码,感兴趣的朋友可以参考下: 

#define DS18B20 (1<<0)  
#define DS18B20_0() (DDRB |= DS18B20) // PB1='0'  
#define DS18B20_1() (DDRB &= ~DS18B20) // PB1='float'  
#define DS18B20_read() (PINB & DS18B20) // read PB1 pin 

unsigned char rest_18b20(void)   

char buff;  
DS18B20_0(); 
delay_us(490); 
Clr_Bit(SREG, 7); 
DS18B20_1(); 
delay_us(68); 
if(DS18B20_read()) 

buff = 0; 

else 

buff = 1; 
}  
Set_Bit(SREG, 7); 
delay_us(432); 
return buff;   


void write_18b20(unsigned char data) 
{   
unsigned char i;   
for(i = 0 ; i < 8 ; i ++) 

Clr_Bit(SREG, 7); 
DS18B20_0();  
delay_us(2); 
if(data & 0x01) 

DS18B20_1(); 

else 

DS18B20_0(); 

delay_us(62); 
data = data >>1;  
DS18B20_1(); 
Set_Bit(SREG, 7);  
delay_us(2); 




unsigned char read_18b20(void) 

unsigned char i , buff , data = 0;  
buff= 0x01; 
for(i = 0 ; i < 8 ; i ++) 

Clr_Bit(SREG, 7); 
DS18B20_0(); 
delay_us(2); 
DS18B20_1(); 
delay_us(4);  
if(DS18B20_read()) 

data = data | buff; 

else 

data = data & (~buff); 
}  
buff = buff << 1; 
Set_Bit(SREG, 7); 
delay_us(62); 

return data;  
}  

//**************读18B20检测到的温度 
if(rest_18b20()) 
{      
write_18b20(0xCC);   
write_18b20(0x44);  


delay_ms(1000); 
       
if(rest_18b20()) 
{  
write_18b20(0xCC);       
write_18b20(0xBE);   
         
p = &ds18b20_scratch_pad.temp_lsb;  
for(i = 0 ; i < 2 ; i ++) 

*p = read_18b20(); 
p++; 
}  
data = ( ds18b20_scratch_pad.temp_lsb >> 4 ) | (ds18b20_scratch_pad.temp_msb << 4); 


PS:要想读取转换温度,就必须先进行一次温度转换,在转换与读取之间应有一段转换时间(我采用延时函数延长1秒)。

PS:为了方便交流,我建了个AVR技术交流群,感兴趣的朋友可以加下。

群号:6022960

系统分类: 单片机
用户分类: AVR
标签: AVR ATmega16 DS18B20 18B20
来源: 原创
发表评论 阅读全文(497) | 回复(0)

1

关于投票
初学AVR_日记(二)

    经过这阵子的努力,现在对AVR单片机有了简单的了解,也写了两个程序,最近一周突然对AVR的JTAG口仿真器产生了兴趣,经过初步实验,觉得自己能做一个,电路和程序都是公开的,很有吸引力,上周末的时候去了趟电子市场,买了套工具,花了110大元,现在正在做仿真器;我的第一个目标是做USB口的设备,因为AVR的仿真功能做的很好,一条串口线,一个仿真板就可以实现对目标板的所有操作,相对来说,比51要好很多,不用花费几百甚至上千元投资在编程器上。

PS:女朋友看见我玩的很开心,也要让我给她做个东西,看来我的USB项目要推后了。

下面是制作AVR单片机JTAG口仿真器的资料,有兴趣的朋友可以看下:

rar

PS:为了方便交流,我建了个AVR技术交流群,感兴趣的朋友可以加下。

群号:6022960

系统分类: 单片机
用户分类: AVR
标签: AVR JTAG 仿真 单片机
来源: 原创
发表评论 阅读全文(321) | 回复(2)

1

关于投票
初学AVR_日记(一)

        前两天接到新的项目,项目本身没有什么难度,简单的控制;但是其中有个要求就是,MCU要换成AVR的Mega16,在这之前从来没有接触过AVR的单片机,一时有点晕菜。记得大学的时候数学老师说过一句话,有条件我们要上,没有条件我们自己创造条件也要上。

        因为是新东西,首先要搜索资料,最简单的就是上个大技术论坛,查找相关帖子,看看大家都在讨论什么问题,关心什么问题,虽然知识点很凌乱,但是也学到了一些东西,至少知道了该类单片机主要都能完成什么功能,都有什么编译环境和仿真环境;然后就是弄了份Mega16的数据手册,囫囵吞枣的看了一通,可能是因为有51的底子,看起来也不是很吃力,至少上有了个大致轮廓;接下来就是熟悉编译环境和仿真软件了,我用的是CodeVisionAVR和AVR Studio 4.0,网络上资料也很丰富,花了点时间也就搞定了;最后就是编写实际程序,在编写的过程中最大的一个感触就是,JTAG口真是太好用了,所有的寄存器都一目了然,调试程序非常简单。

        完成以上这些东西,我大概花了十天的时间,觉得这样的开发周期是非常快的,但是在这个过程中,最让我感到开心的就是,我可以自己独立完成一个新东西的学习,不在需要旁边站一个“老师”指点了,小小的开心下。。。

PS:为了方便交流,我建了个AVR技术交流群,感兴趣的朋友可以加下。

群号:6022960

系统分类: 单片机
用户分类: AVR
标签: AVR Mega16 CodeVisionAVR AVR Studio
来源: 原创
发表评论 阅读全文(399) | 回复(1)
总共 , 当前 /