打印
[AVR单片机]

傻瓜式注释方式想看不懂都难了,适合初学C和AVR的兄弟们

[复制链接]
2309|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhejiangdz|  楼主 | 2007-9-18 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//***********103111231******************//

//***********2007-9-18 *********************//

//***********ICCAVRV6.31A编译***************//

//***********AVR数码管显示程序的运行过程*****//
傻瓜式注释方式想看不懂都难了,适合初学C和AVR的兄弟们,这个简单箭头标注方法是我在把AVR的程序改成C51在KEIL仿真运行时发觉的.其实初学C者最想理解的是程序的单步执行过程,当然这种方法因人而已个人觉得比较不错的,尤其是哪些从硬件转变学软件的新手们,呵呵因为我就是.
电路硬件描述CPU AVRAT90S8538 PB0分两支路,一路经上拉电租10K接5VPB0另一路经S1按键接地; PB1分两支路,一路经上拉电租10K接5VPB1另一路经S2按键接地; PA口从PA0~PA7分别接数码管的A~DP七段字形码
PC口PC0~PC3分别接四位数码管的四位位码C0~C3
数码管采用共阳数码管
每按S1为加1计数,每按S2减1计数,数码管从0000~9999显示数值
本程序采用独创性的简单标注方式,使程序理解更简单方便初学者理解程序
表式程序跳入,→表示程序跳出,↓表示执行下一行程序
←↓表示程序跳入并继续执行下一行程序,
→↓表示程序跳到目标程序运行完后再回到跳出地点
继续执行下一行. 
include <io8535v.h>                 
#define uchar unsigned char
#define uint unsigned int
//数码管字型表,对应0,1,2,3,4,5,6,7,8,9//
uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Data[4]={0,0,0,0};       //显示初始值:0 0 0 0
uint  CNT=0;                    //CNT初始计数值:0 
uchar Key_Up;                  //加计数按键标志  
uchar Key_Down;                //减计数按键标志  
//******************************主函数**************************//
void main(void)     //(1) ↓  程序从主函数开始
{uchar I;          //(2) ↓  变量I定义无浮号字符型数据8位
 Init_IO();        //(3) →  初始化I/O口程序跳到Init_IO()函数
 PORTA=0xff;       //(4) ←↓IO程序初始化后回到主函数, 
 PORTC=0x00;       //(5) ↓  点亮测试所有的数码管
 DelayMs(3000);    //(6) →   延时
 PORTC=0xff;       //(7)←↓  程序从延时函数完后跳入,并往下执行,数码管
                   //         灭,进入计数状态 
 while(1)         //         主程序永远循环
 {Get_Key();      // (8) →  按键扫描
  if(Key_Up==1)  // (9) ←↓    加计数处理
     {if(CNT!=9999)  //      条件判断是否计数到9999
         {CNT=CNT+1; //      计数值加1
             Key_Up=0;}  //  加计数标志复位
     }
 
if(Key_Down==1) //( 10)↓   减计数处理
     {if(CNT!=0) //          条件判断是否计数到0000
         {CNT=CNT-1;//       计数值减一
             Key_Down=0;}//  减计数标志复位
      }
  Process(CNT,Data); //(11) →跳到计数值处理函数
  Display(Data);     //(12) ← ↓   动态扫描显示
 }
}
傻瓜式注释方式想看不懂都难了,适合初学C和AVR的兄弟们
//因**内容限度只写出主函数,看全部请到www.bbs.zhejiangdz.com

相关链接:http://www.bbs.zhejiangdz.com

相关帖子

沙发
龙在天涯| | 2007-9-18 21:45 | 只看该作者

不是说注释越多越详细就一定好,注释是画龙点睛之笔

还是要使得程序在可以看懂的基础上,显得简洁流畅,不至于眼花缭乱才是

使用特权

评论回复
板凳
xwj| | 2007-9-18 21:49 | 只看该作者

是的,注释多了就没人愿意看了,也就没用了

就好比好听的音乐,总有点睛的乐音、乐器,
如果大家都不断演奏,那就是噪音了

使用特权

评论回复
地板
xwj| | 2007-9-18 21:53 | 只看该作者

再说,一般语句是不用注释的,只要变量加备忘提醒即可

对于程序员,程序语言本身比你那样的注释更简洁明了,更容易看懂

使用特权

评论回复
5
winsu| | 2007-9-19 01:05 | 只看该作者

我赞成你的注释

虽然我没看完,很多工程师都知道要简洁,但还未“详细”哪能“简洁”,所以第一步要详细,不要小看详细,先做到这点不容易。
这在多人共同开发,以及别人来接你的活时特别明显。
我的注释很详细,有工程师接我的程序时,问的问题极少。

使用特权

评论回复
6
315avr| | 2007-9-19 12:33 | 只看该作者

不提倡,入门,写书不错,初级篇才需要这么做

越到后面,就需要简洁点了...

使用特权

评论回复
7
qjy_dali| | 2007-9-19 17:12 | 只看该作者

注释要求的是画龙点睛,而不是喧宾夺主

使用特权

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

本版积分规则

6

主题

8

帖子

0

粉丝