打印

初学WINAVR,点亮了LED,炫耀一下!!!

[复制链接]
4549|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
以前一直不敢学AVR,主要是因为AVR对引脚的置位、复位必须用按位与和按位或操作,而不能像51那样用sbit直接定义一位引脚。感觉非常不方便——能力有限,驾驭不了
直到经刘前辈推荐,看了下面这个帖子
https://bbs.21ic.com/icview-195505-1-1.html#pid1309866
七楼john_lee大侠给出的解决方案,让我感受到了,什么叫做高手用C语言啊:简直是出神入化。

这也坚定了我继续学习WINAVR的决心,终于把LED给搞亮了(仿真的,没板子):






相关帖子

沙发
XIANSir|  楼主 | 2011-3-6 16:18 | 只看该作者
其实jhon_lee大侠给出的位定义的方法比Keil C51中的sbit还要强大,因为,sbit只能定义一位的位变量,而jhon_lee大侠的方法可以定义位数任意的位变量,这在实际应用中可能更加有意义:比如,三位拨码开关,使用sbit就必须定义三个位变量,而使用jhon_lee大侠的方案,只需要定义一个三位的位变量

使用特权

评论回复
板凳
原野之狼| | 2011-3-7 00:32 | 只看该作者
看过原链接 请问楼上_SFR_ADDR在哪里定义的?
或许你可以追查一下看看 呵呵

使用特权

评论回复
地板
zjswuyunbo| | 2011-3-7 08:56 | 只看该作者
杯具啊。。。。
LED连个限流电阻都没加。。。:L
不过,幸亏是仿真。。
呵呵

使用特权

评论回复
5
XIANSir|  楼主 | 2011-3-7 09:08 | 只看该作者
3# 原野之狼
追了好半天,终于找到了:在avr/sfr_defs.h文件中定义的,定义如下:
#define _SFR_ADDR(sfr) _SFR_MEM_ADDR(sfr)
#define _SFR_MEM_ADDR(sfr) (sfr)

具体啥意思,我也不太明白。
先用吧,高手给的方法肯定错不了,至于其他的,等不是菜鸟了再去深究

使用特权

评论回复
6
XIANSir|  楼主 | 2011-3-7 09:21 | 只看该作者
4# zjswuyunbo
呀!多谢大侠指点,竟然忘加电阻了。要是实物就真悲剧了:lol

使用特权

评论回复
7
huangqi412| | 2011-3-7 09:31 | 只看该作者
;P

使用特权

评论回复
8
huangqi412| | 2011-3-7 09:36 | 只看该作者
LED0=1这么写不是好习惯。
还是用宏定义分别定义LED0_ON  LED0_OFF好
=1,鬼知道这个1是亮还是灭。

使用特权

评论回复
9
XIANSir|  楼主 | 2011-3-7 09:46 | 只看该作者
8# huangqi412
嗯,前辈的方法很好很清晰

不过,练习的时候就不用这么麻烦了;P

使用特权

评论回复
10
XIANSir|  楼主 | 2011-3-7 09:50 | 只看该作者
LED0=1这么写不是好习惯。
还是用宏定义分别定义LED0_ON  LED0_OFF好
=1,鬼知道这个1是亮还是灭。
huangqi412 发表于 2011-3-7 09:36


我猜前辈肯定吃过这方面的亏,至今**犹新;P

使用特权

评论回复
11
A2000wps| | 2011-3-7 15:49 | 只看该作者
白娘子趙雅芝都60+了喲

使用特权

评论回复
12
XIANSir|  楼主 | 2011-3-7 16:11 | 只看该作者
11# A2000wps
白娘子和赵雅芝没有必然关联

使用特权

评论回复
13
XIANSir|  楼主 | 2011-3-7 16:14 | 只看该作者
7# huangqi412
前辈签名处的兔子实在是太可爱了,俺实在忍受不了,一定要把它给下载下来:lol

使用特权

评论回复
14
xwj| | 2011-3-7 16:16 | 只看该作者
哈哈~

使用特权

评论回复
15
刘前辈| | 2011-3-9 16:32 | 只看该作者
请教LZ,Proteus 和 Keil C51容易连接吗?
哪本书讲得好?

使用特权

评论回复
16
XIANSir|  楼主 | 2011-3-9 18:46 | 只看该作者
本帖最后由 XIANSir 于 2011-3-9 19:51 编辑

15# 刘前辈
Proteus是给我们这些搞不定硬件的初学者用的吧,刘前辈怎么也要鼓捣这东西啊???

互联Proteus和Keil51,其实倒也不难:
1、安装Keil、安装Proteus
2、安装下面这个软件
vdmagdi.rar (1.13 MB)

3、在Proteus中设置


4、在Keil中设置


这样,就可以进行Keil和Proteus的联调了。只要在Keil中点击Debug进入调试状态,其他的调试和以前Keil软件模拟完全一样。

书哪本好,这个我也不知道!不敢胡乱推荐,害刘前辈花了冤枉钱俺不是罪过大了吗。其实Proteus就一个仿真软件,网上例子很多,我觉得没必要买书——尤其是对单片机已经运用自如的刘前辈而言更是不用买了

使用特权

评论回复
17
huangqi412| | 2011-3-9 20:03 | 只看该作者
7# huangqi412
前辈签名处的兔子实在是太可爱了,俺实在忍受不了,一定要把它给下载下来:lol
XIANSir 发表于 2011-3-7 16:14

这个,,,可不行哈

使用特权

评论回复
18
huangqi412| | 2011-3-9 20:03 | 只看该作者
AVRSTUDIO也可以与PROTEUS连得。。。

使用特权

评论回复
19
XIANSir|  楼主 | 2011-3-9 20:41 | 只看该作者
17# huangqi412 可是,前辈,俺已经下手并且得手了!!:lol


不过前辈放心,俺不打算在这个网站上用这个“小兔子”头像。


俺打算到一个MM多的网站上去使用这个“小兔子”头像,肯定可以吸引很多MM主动搭讪;P

使用特权

评论回复
20
刘前辈| | 2011-3-10 08:34 | 只看该作者
感谢16楼,讲的比网上清楚多了。昨天搜了一天,都是告诉人1,2,3,4,5个步骤,一点依据都没有;LZ把最重要的2个步骤讲清了。感谢。

俺主要是论文答辩演示不方便用实际电路板,用Proteus 投影演示效果极好。不得不再多学习一门。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:冷暖自知,泰然处之;持之以恒,必有所成!

0

主题

609

帖子

2

粉丝