智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3975|回复: 9
打印 上一主题 下一主题

实用,经典的单片机编程要点[5]

[复制链接]

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
跳转到指定楼层
1#
发表于 2008-9-30 01:49:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<><FONT face=黑体 size=3>break 和continue的区别: </FONT></P><P><BR><FONT face=黑体 size=3>//求数组中正数的和。 <BR>for (i=0;i&lt;10;i++) <BR>{ <BR>if(a&lt;0)&nbsp; <BR>&nbsp;continue;//continue 只是结束本次循环,不影响整个循环,条件满足时候,本次循环结束, <BR>&nbsp;//遇到continue语句时候,不执行他后面的语句,将负数舍弃。然后转向if循环语句。 <BR>&nbsp; aa+=a; <BR>} </FONT></P><P><BR><FONT face=黑体 size=3>//求调和级数中第多少项的值大于4 <BR>//&nbsp;&nbsp; 1+1/2+1/3+1/4+1/5+......+1/n; </FONT></P><P><FONT face=黑体 size=3>sum+=1.0/n; <BR>if(sum&gt;LIMIT)&nbsp; break;&nbsp; n++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //break和if语句一起用,当条件满足时候,for循环终止, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 他终止整个循环。。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //用在switch语句中只是结束swith语句。不影响循环;n=31; <BR>} </FONT></P><P><FONT face=黑体 size=3>**********************************************************************************</FONT></P><P><FONT face=黑体 size=3>**********************************************************************************</FONT></P><P><FONT face=黑体 size=3>**********************************************************************************<BR>位操作: <BR>1&nbsp;&nbsp; DDRB3=1&nbsp;&nbsp;&nbsp;&nbsp; DDRB|=(1&lt;&lt;3)&nbsp;&nbsp;&nbsp; DDRB|=BIT(3)&nbsp;&nbsp; DDRB|=BIT(DDB3)&nbsp; 是等同的 <BR>2&nbsp; PORTA&amp;=0x7f;&nbsp;&nbsp;&nbsp;&nbsp; PORTA&amp;=0b0111 1111&nbsp;&nbsp;&nbsp; </FONT></P><P><FONT face=黑体 size=3>if ((PIND&amp;0x80)==0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if((PIND&amp;(1&lt;&lt;7))==0) <BR>if ((PIND&amp;0x80)==0x80)&nbsp;&nbsp;&nbsp; if((PIND&amp;(1&lt;&lt;7))==(1&lt;&lt;7)) </FONT></P><P><BR><FONT face=黑体 size=3>3&nbsp; const int table[7]={1,2,3);//说明table 是按照表格样分配在程序存储器的数组的 <BR>const char *ptr1; //数据在数据存储器,而指向数据的指针在程序存储器。(地址ptr1在rom) <BR>char * const ptr2;//数据在程序存储器,而指向数据的指针在数据存储器。 <BR>const char * const ptr3;//都在程序存储器。 <BR>const char hello[]="hello world";//为了节约空间,用常量字符形数组将字符串放在rom中。 <BR>unsigned char c =*(volatile unsigned char *)0x5f;//在数据内存中一个直接地址可以通过加指针类型符号直接访问。sreg的地址是5f,这样可以访问sreg。 <BR>*(volatile unsigned char *)0x5f|=0x80;&nbsp; //同上&nbsp; 访问0x20--0x5f地址 </FONT></P><P><FONT face=黑体 size=3>4&nbsp; EECR|=(1&lt;&lt;EEMWE); <BR>while (EECR&amp;(1&lt;&lt;EEWR)) <BR>WDTCR=(1&lt;&lt;WDCE)|(1&lt;&lt;WDE);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 置位WDCE,WDE <BR>PORTB=(1&lt;&lt;PB7)|(1&lt;&lt;PB5)|(1&lt;&lt;PB4)|(1&lt;&lt;PB2); <BR>DDRB=(1&lt;&lt;DDB7)|(1&lt;&lt;DDB5)|(1&lt;&lt;DDB4)|(1&lt;&lt;DDB2); </FONT></P><P><FONT face=黑体 size=3>PORTA|=BIT(PA7);&nbsp;&nbsp; PORTA|=0X80; </FONT></P><P><FONT face=黑体 size=3>&nbsp;PORTA^=0X80;//翻转位7 </FONT></P><P><FONT face=黑体 size=3>5&nbsp; 置位数据寄存器的第7位, <BR>char a; <BR>a|=(1&lt;&lt;7); <BR>或者&nbsp; a|=BIT(7); </FONT></P><P><FONT face=黑体 size=3>6&nbsp; 在macros.h中。定义了常用的位操作宏定义。 <BR>#define WDR()&nbsp;&nbsp; asm("wdr") <BR>#define SEI()&nbsp;&nbsp; asm("sei") <BR>#define CLI()&nbsp;&nbsp; asm("cli") <BR>#define NOP()&nbsp;&nbsp; asm("nop") <BR>#define _WDR()&nbsp;&nbsp; asm("wdr") <BR>#define _SEI()&nbsp;&nbsp; asm("sei") <BR>#define _CLI()&nbsp;&nbsp; asm("cli") <BR>#define _NOP()&nbsp;&nbsp; asm("nop") <BR>6 <BR>#define pi 3.1415926 <BR>#define LEAP_YEAR year%4==0&#92; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; year%100!=0| year%400==0&nbsp; //一行写不下用&#92; <BR>#define S(a,b)&nbsp; a*b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // area=s(3,2) <BR>#define S(r)&nbsp; pi*(r)*(r)&nbsp;&nbsp;&nbsp; //area=S(a+b);&nbsp; =pi*(a+b)(a+b) <BR>7 </FONT></P><P><FONT face=黑体 size=3>条件编译。 <BR>#ifdef&nbsp; KEY <BR>&nbsp;&nbsp; .....; <BR>#else&nbsp;&nbsp; <BR>&nbsp;&nbsp; ....; <BR>#endif </FONT></P><P><BR><FONT face=黑体 size=3>用0b&lt;1|0&gt;指定二进制。 <BR>&nbsp;#define U8&nbsp;&nbsp;&nbsp;&nbsp; unsigned char <BR>&nbsp;#define U16&nbsp;&nbsp;&nbsp; unsigned int <BR>&nbsp;#define U32&nbsp;&nbsp;&nbsp; unsigned long <BR>&nbsp;#define I8&nbsp;&nbsp;&nbsp;&nbsp; signed char <BR>&nbsp;#define I16&nbsp;&nbsp;&nbsp; signed int <BR>&nbsp;#define I32&nbsp;&nbsp;&nbsp; signed long <BR>&nbsp;#define F32&nbsp;&nbsp;&nbsp; float </FONT></P><P><FONT size=3>&nbsp;</FONT></P>

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85804

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56900
贡献
17334
兑换币
13112
注册时间
2007-6-8
在线时间
5785 小时
2#
发表于 2008-9-30 02:01:08 | 只看该作者

Re:实用,经典的单片机编程要点[5]

<IMG src="http://www.znczz.com/images/Emotions/2.gif">沙发
回复 支持 反对

使用道具 举报

14

主题

586

帖子

0

精华

禁止发言

事人

积分
3226
威望
988
贡献
1966
兑换币
62
注册时间
2008-9-5
在线时间
136 小时
3#
发表于 2008-9-30 03:51:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
326
QQ
威望
298
贡献
22
兑换币
0
注册时间
2008-7-9
在线时间
3 小时
4#
发表于 2008-9-30 04:42:02 | 只看该作者

Re:实用,经典的单片机编程要点[5]

<>地板</P>
回复 支持 反对

使用道具 举报

14

主题

929

帖子

1

精华

功勋会员

WJ

Rank: 10Rank: 10Rank: 10

积分
6304

特殊贡献奖章

威望
1456
贡献
4674
兑换币
17
注册时间
2008-4-6
在线时间
87 小时
5#
 楼主| 发表于 2008-9-30 07:03:58 | 只看该作者

Re:实用,经典的单片机编程要点[5]

<>恩,要顶上去!呵呵</P>
回复 支持 反对

使用道具 举报

14

主题

586

帖子

0

精华

禁止发言

事人

积分
3226
威望
988
贡献
1966
兑换币
62
注册时间
2008-9-5
在线时间
136 小时
6#
发表于 2008-9-30 17:45:38 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
199
威望
177
贡献
22
兑换币
0
注册时间
2009-1-6
在线时间
0 小时
7#
发表于 2009-1-6 05:25:57 | 只看该作者

Re:实用,经典的单片机编程要点[5]

<>heh </P><P>狂顶</P>
回复 支持 反对

使用道具 举报

0

主题

100

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1775
威望
1452
贡献
273
兑换币
4
注册时间
2008-3-4
在线时间
25 小时
8#
发表于 2009-3-15 18:12:43 | 只看该作者
顶~~
回复 支持 反对

使用道具 举报

21

主题

1019

帖子

0

精华

常驻嘉宾

我爱雯婕

Rank: 8Rank: 8

积分
4657
威望
2223
贡献
1682
兑换币
4
注册时间
2009-3-4
在线时间
376 小时
9#
发表于 2009-4-10 14:03:00 | 只看该作者
我躲在厕所后面狂顶
回复 支持 反对

使用道具 举报

0

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
QQ
威望
218
贡献
26
兑换币
4
注册时间
2008-10-11
在线时间
2 小时
10#
发表于 2009-4-11 23:44:48 | 只看该作者
不错!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-23 05:15 , Processed in 0.055549 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表