打印
[AVR单片机]

深入浅出AVR单片机:从ATmega48/88/168开始--已面世

[复制链接]
8780|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
双龙老耿|  楼主 | 2008-5-20 07:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
深入浅出AVR单片机
从ATmega48/88/168开始

江海波 王卓然 耿德根  著
(附光盘)

中国电力出版社

目  录
第零篇    如何阅读本书

第一篇    Are you ready?
     本篇导读
第一章    学会阅读Datasheet                                     
 实例1 阅读74HC595 DATASHEET 
第二章    深入开发环境                                     
实例2 AVR最小系统DIY

第二篇    Let`s go!
     本篇导读
第一章    从跑马灯开始                                     
实例3  跑马灯
         实例4  数码管的显示(上)
         实例5  数码管的显示(下)
         实例6  矩阵键盘

第二章    对不起  接个电话                                 
实例7  中断唤醒的键盘扫描
实例8  旋转编码器

第三章    一秒钟究竟有多长                                 
实例9  闪烁的灯
实例10  渐明渐暗的灯
实例11  闪烁的灯扩展实验(舵机控制)

第四章    电量低!                                         
实例12  电量计

第五章    正在过收费站                                     
实例13  端口扩展
实例14  键盘显示模块

第六章    包装的学问                                         
实例15  数字电压表

第七章    傻孩子求职记                                     
实例16  存储器24C01的读取
实例17  I2C抢答器

     第八章 MISSION UPDATE                                         
         实例18  ATmega48在线程序更新


第三篇     Code Name C
第一章    朝花夕拾                                             
实例19 编写我们的第一个头文件

第二章 指针都是纸老虎                                         
实例20 端口位操作的实现

第三章 来自身边的启示                                         
实例21 贪食蛇

第四章 初识嵌入式系统                                         


附录一 ATMega48/88/168简介                                     
附录二 ICC环境下的汇编                                             
附录三 ICC环境下的存储器结构                                     
附录四 ASCII码表                                                 
附录五 AVR指令表                                                 
附录六 寄存器概述                                                 
附录七 常见的错误代码及其解释                                     
附录八 AVR端口封装图
附录九    ATmega48/88/168开发实验工具                             
附录十 AT JTAGICE mkII AVR仿真器介绍
附录十一 ICC标准库函数指南                                         
附录十二 参考文献和相关网站



相关帖子

沙发
笑苍天| | 2008-5-20 12:51 | 只看该作者

看目录好像有点新意

学会阅读Datasheet                                     
    实例1 阅读74HC595 DATASHEET 

这个对初学者应该有些帮助吧。

使用特权

评论回复
板凳
qjy_dali| | 2008-5-20 17:07 | 只看该作者

目录有点像老外的写法了

  好像有个叫Orlay还是什么的出版社,很有名,但我不知名字记对了没有。它的书有很多这类风格的,看起来比较轻松。像<<Linux设备驱动程序>>就是它非常非常非常经典的一本大作!

使用特权

评论回复
地板
双龙老耿|  楼主 | 2008-6-24 09:26 | 只看该作者

深入浅出AVR单片机:从ATmega48/88/168开始

http://www.cepp.com.cn/book.aspx?pointid=XM13560
书 名:深入浅出AVR单片机:从ATmega48/88/168开始

使用特权

评论回复
5
speed_2008| | 2008-6-24 15:25 | 只看该作者

ATMEL原厂提供的文档已经很详细了

使用特权

评论回复
6
awen2000| | 2008-6-24 19:51 | 只看该作者

这书基本没啥意思

大部分内容在avr现有的著作中有高度类似的,无非是披了一张m48的皮而已


除了m168,m88还有存在的必要吗?
m8的价格这么低,m88的价格要高不少,功能差不多的



使用特权

评论回复
7
NE5532| | 2008-6-24 22:53 | 只看该作者

呵呵,此书面向初学者,高手请绕道

另外也不是为了写48/88/168而来的,这一观点在本书的前言里已经介绍了,其实这本书要介绍的是一种“单片机哲学”的观点。

顺便把图给补上,收到样书,高兴一下。

详情欢迎访问http://ne5532.21ic.org

再次友情提醒:水浅,高手请勿入内。

使用特权

评论回复
8
程序匠人| | 2008-6-25 16:35 | 只看该作者

帮顶

使用特权

评论回复
9
加油站| | 2008-6-25 18:45 | 只看该作者

再顶

使用特权

评论回复
10
dlwlmlj| | 2008-6-26 09:53 | 只看该作者

今天在亚马逊买了一本

希望不错!

使用特权

评论回复
11
NE5532| | 2008-6-26 20:28 | 只看该作者

呵呵,谢谢楼上的鼓励

不过已经发现了部分笔误之类的错,请光临我的笔记查看及时更新的勘误表。

使用特权

评论回复
12
qiuming| | 2008-6-28 23:21 | 只看该作者

有机会看看

虽然从未使用过AVR做产品,有机会一定看看。

使用特权

评论回复
13
su_mj000| | 2008-6-29 08:37 | 只看该作者

7楼的NE5532,

想必你就是作者之一。:-)

照片的背景是你的卧榻吗?有意思。

使用特权

评论回复
14
NE5532| | 2008-6-29 10:15 | 只看该作者

楼上猜对啦,我就是江海波

不好意思,一不小心把寒舍都给照出来了。

使用特权

评论回复
15
su_mj000| | 2008-6-30 02:16 | 只看该作者

卧薪尝胆,精神可嘉,成就喜人!

使用特权

评论回复
16
zhanan| | 2008-7-1 10:07 | 只看该作者

关于数组与指针

P384页 12.5 数组、指针数组、数组指针
       12.6 多维数组
    讲得十分啰嗦,作者试图用推理的方法去证明什么,但最终似乎也没有什么结论。
    是否想说明“数组与指针”的关系?数组与指针形式上不一样,但最终操作的结果往往是一样的,有时候数组与指针几乎通用,因为数组下标也好,指针偏移也好,最终都是要对数组元素进行操作,如通过指针方式将数据传入子程序(形参是一个指针变量),在子程序中却按数组方式使用。
    用公式来描述,即:
        a[k]=*a   一维数组
        a[j][k]=*(*(a+j)+k) 二维数组
    关于数组与指针,其实有三个约定,后两个在大多数教材中都没有明确,都试图用推理的方式去证明。这个约定是在C语言设计时规定的,不需要经理论推导去证明。就好像规定汽车靠右行、火车靠左行一样。
    
    约定1  一维数组的数组名代表该数组的首地址常量,这点都是这么说的。
    约定2  二维数组的数组名升格为该数组第0行的行地址常量,a[j]为第j行的行地址常量,不能表示数组元素.
    约定3  在形参中定义的数组实际上是个指针变量(指针或行指针),该指针变量是一个完全的指针,可作自偏移运算。
    
    然后什么数组名、行地址数组、二重指针变量、行指针变量统统可以联系在一起,并且在引用时可以混用,怎样方便就怎样用!
    二维数组的数组指针还是叫“行指针”更形象些,在三维数组中还将多出一个页指针。

使用特权

评论回复
17
NE5532| | 2008-7-1 20:44 | 只看该作者

呃……楼上的热心肠哈

第三章部分是王卓然为主写的,他现在正在北京参加CCTV的机器人比赛,我给他说了,他说比赛完成后会来和大家讨论的。

使用特权

评论回复
18
qjy_dali| | 2008-7-6 20:46 | 只看该作者

今天也看到这本书了,觉得对新手不错

第一印象:书厚,带一张光盘。写作手法比较独特。

使用特权

评论回复
19
yutantou| | 2008-7-7 09:26 | 只看该作者

m168?有必要吗?听说现在32位的AVR32都出来了。

使用特权

评论回复
20
坏孩子| | 2008-7-9 17:08 | 只看该作者

至zhanan,感谢你的回馈

    我是王卓然,书的第二作者。第三篇主要是我负责编写的,所以由我来负责回应zhanan的回馈。前一段时间在忙Robocon去了北京,所以没有第一时间回答这个帖子,很不好意思。
-----------------------------------------------------------------
    首先,zhanan说的很对,对于指针的约定,很多教科书都介绍过了,因此
这本书没有必要照抄或者重复。作为一个讲解对指针的理解而不是指针的使用
方法的章节,适当的推理应该是可以理解的。
    其次,这本书是写给初学者看的,zhanan明显是跨过了门槛的人,就好比
已经记住乘法表的人无法理解为什么初学者在背诵的时候总有一部分尝试从
规律入手来背诵——而不是简单的死记硬背。这不是一本教科书,没有必要按
照教科书的方式来循规蹈矩。我作为作者,对指针有一些感悟和思考,于是写
下来分享给大家,这不代表我写的内容一定成功的表达到了。很具体的例子,
就是zhanan认为我推导了半天并没有推导出什么结论。其实我想说,结论是有
的,但是这些结论对熟练使用C语言的大家来说,往往和废话没有什么两样。
比如,学过汇编的人可能会认为“数据和指针其实没有本质区别”,而我对指
针讲解得很大篇幅实际上就是想让从C语言入门的初学者也能明白这一条。您
看到了这个和废话查并不多的结论,说明您并不需要看这一章节,换句话说,
您也许浪费了金钱来阅读这本写给初学者的书。耻笑身为作者的我“罗嗦”而
无真才实学,其实也是没有实际意义的——我并没有标榜自己是高手,我只是
有机会把自己从菜鸟向前学习过程中的经验写成书而已,和在座的大家相比,
我根本不敢多解释我所讲解的内容。
    再次,很感谢高手们的回馈,大家对于出现的新书,认真地阅读,并且中
肯的给与了建议。我感到诚惶诚恐。但是,这仍然是一本写给初学者的书。在
出版之前,已经经过很多有代表性的初学者人群测试过,他们有电子爱好者,
在校的大二大三学生、教师、工程师。大家一致的意见是,初学者理解起来应
该问题不大。而我一直**认为,书中很多东西,比较难于理解。对于zhanan
提到的内容,我会认真修改,争取在下一版本中做出修订。
    最后、作为一本非常商业化的书,必须定位好人群。实际上,AVR高手绝对
不会买我的书,Datasheet更适合高手,只有入门者才会愿意购买,因此,我必
然要投初学者所好。初学者说好,就是好。至于高手的胃口,我坦言,根本没
有考虑过。我自己并不是高手,高手是什么感觉我并不清楚,因此也写不出符
合高手的文字来。相比之下,《匠人手记》也许更适合大家。我也买了一本。

    最为结尾,我简单介绍一下《指针都是纸老虎》想介绍的内容:
    a、给大家建立一个概念,内存空间可以看作是一个大数组
    b、指针变量的存储本质和无符号整数变量没有区别
    c、所有针对指针的操作法则都是编译器“人为规定”的,这包括指针
       的加减法原则,指针的强制转换等等
    d、编译器对于具有常数性质的指针有着特殊的优化,但是并不是说这些
       具有常数性质的指针就是常量。为什么我要这么说?书中对于该观点
       给出了推导。如果您觉得我对这条规则的说明就好比讨论“回香豆”
       有几种写法一样。那么,您完全可以无视(实际上zhanan已经无视了)
    e、尝试以谭浩强老师的《C语言》为蓝本,一一解释为什么书中对于初学
       者来说,不好理解的部分。比如多维数组的本质等等。

谢谢大家,真心感谢zhanan。希望初学者喜欢。

-----------------------------------------------------------------
    P.S.这个ID不是我的马甲,因为“傻孩子”这个ID好像被别人注册了也可能是我以前注册的,但是忘记了密码,所以只好用“坏孩子”这个ID。

使用特权

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

本版积分规则

20

主题

36

帖子

0

粉丝