求助各位前辈,小弟在自学51单片机,想请大侠们赐一个小程序给我学习,万...
1、你的n定义为无符号整型,而且没定义上限,它会一直加到65535才溢出为0的,这无疑加大了单片机的工作量。虽然这是小程序感觉不出来,但是对你以后的写代码习惯影响很大。
2、比如10分钟,那么需要中断次数是20*60*10=12000,一个整型变量就可以搞定了,如果再长些,比如是1小时,那么为了方便,可以设置三个变量,时分秒。最后就是等待了,当时间到了的时候,发一个报警信号。
3、指令系统是难点,一般学到这一章90%的学生会感觉到枯燥,没意思,就不想再学了,因为也确实没意思,几个数据转过来转过去,让人昏昏欲睡。

关于51单片机小程序解读,如图,求大神根据问题,逐条解释啊!不要这样的...
第一个程序功能是:将50H开始的N个数求和存在R4R3中。第二个程序功能是:求a的平方与b的平方之和。存入33H。
先看下你接的硬件电路,看看发光二极管是共阴还是共阳的。然后你试下你直接给P1口赋值让LED全点亮看它能不能全亮(检查硬件)。如果硬件没有问题,那你试下在main中定义变量temp,在while(1)中输入下面程序试试。
void main(void){ unsigned char m,n;unsigned int s;m=64;n=71;s=m*n;P1=s8; //这样写你应该可以理解了 P0=s; //一个16位数直接赋值给8位变量,潜规则就是只取低八位。
印象中 单片机的四个p口中,只有p0口的驱动能力最差,所以要想输出在点的电流得接上拉电 阻。p0.0当然可以输出高电平,只是它的输出电流有限,电流太小不足以点亮二极管。
51单片机二进制数转换成十进制数一段精典小程序,谁来帮我分析一下,再...
以1101为例转化为BCD值,RLC A 是把16位2进制向高端移出一位,举例的数为0000000000001101前位全为0不管它,我们从1101开始。
)首先将上述的二进制数组(11010011)通过for循环,判断每个元素是否等于1,如果等于,输出布尔值T,否则输出布尔值F,这样得到一个 布尔数组;2)使用“布尔数组至数值转换”将刚才得到的布尔数组转换成数值就可以了。
将二进制数的每一位从低位到高位逐位相减,得到新的二进制数。这个算法其实和十进制转换类似,只不过在二进制中是借2而不是借10。进制转换二进制数转换成多少进制?这个问题的答案取决于你想要转换成的进制。
我刚才是弄整个程序的,结果字数原因复制不上去,能帮我解答下吗?是一个例子,整个程序的作用我懂,但我就是不能把它用到单片机上去分析 追答 分析整个程序?一行行的写注释?呵呵,恐怕,没有足够的空闲时间。
