梦爱琴所
发表于 2014-8-13 19:35
我去,这么久
jianhong_wu
发表于 2014-8-13 22:30
zhjyuanji 发表于 2014-8-13 14:02 static/image/common/back.gif
更新太慢了啊 楼主
我至少每个星期更新一篇。因为我把这个看得很重,每写一篇前,我都要仔细进行规划,并且等我某天状态最好的时候才开始动笔写。我宁愿进度慢一点,也要把质量内容写好。因为分享的东西,只要写了一次,以后就可以批量传播和复制给千千万万的初学者,所以我有这个责任心好好写,写出我最真实的水平。
f502819619
发表于 2014-8-14 11:26
顶起来,非常感谢分享
genghelong
发表于 2014-8-15 21:49
jianhong_wu 发表于 2014-3-5 21:58 static/image/common/back.gif
第四节:累计定时中断次数使LED灯闪烁。
开场白:
很高兴楼主这么细心认真分享了自己的经验,在认真看了楼主的“第四节:累计定时中断次数使LED灯闪烁。”在T0中断程序中觉得有个问题:
1、TF0=0;书上说CPU响应中断时自动复0;应该不需要TF0=0了吧?
2、TR0=0; 不是关中断,而是T0停止计数;这样便会造成定时器T0不是连续计数,定时可能不准确;
如果我理解有错,烦劳楼主指正,谢谢!
void T0_time() interrupt 1
{
TF0=0;//清除中断标志
TR0=0; //关中断
if(uiTimeCnt<0xffff)//设定这个条件,防止uiTimeCnt超范围。
{
uiTimeCnt++;//累加定时中断的次数,
}
TH0=0xf8; //重装初始值(65535-2000)=63535=0xf82f
TL0=0x2f;
TR0=1;//开中断
}
cjseng
发表于 2014-8-15 22:44
genghelong 发表于 2014-8-15 21:49 static/image/common/back.gif
很高兴楼主这么细心认真分享了自己的经验,在认真看了楼主的“第四节:累计定时中断次数使LED灯闪烁。” ...
认真你就输了。
jianhong_wu
发表于 2014-8-15 23:00
cjseng 发表于 2014-8-15 22:44 static/image/common/back.gif
认真你就输了。
讲话好幽默;P
jianhong_wu
发表于 2014-8-15 23:04
genghelong 发表于 2014-8-15 21:49 static/image/common/back.gif
很高兴楼主这么细心认真分享了自己的经验,在认真看了楼主的“第四节:累计定时中断次数使LED灯闪烁。” ...
1、TF0=0;书上说CPU响应中断时自动复0;应该不需要TF0=0了吧?
答:我平时是用PIC单片机做项目比较多,你说的这个问题我也不敢确定,你以书为准。我即使多加一句也不会有影响。
2、TR0=0; 不是关中断,而是T0停止计数;这样便会造成定时器T0不是连续计数,定时可能不准确;
如果我理解有错,烦劳楼主指正,谢谢!
答:进入中断,我就喜欢停止计数,出中断的时候我才会打开中断。因为时间很短,所以我认为误差很小,只要你不是做实时时钟,就不会影响系统的使用。你也可以按照你的理解来改,不一定要按我的思路来做。这种使用方法是我多年来形成的习惯。
LIYLONG
发表于 2014-8-18 18:33
:lol
jianhong_wu
发表于 2014-8-19 16:29
第六十三节:大数据的减法运算。
开场白:
直接用C语言的“-”运算符进行加法运算时,“被减数”,“ 减数”,“差”,这三个数据的最大范围是unsigned long 类型,也就是数据最大范围是4个字节,十进制的范围是0至4294967295。一旦超过了这个范围,则运算会出错。因此,当进行大数据减法运算时,我们要额外编程序,实现大数据的算法。其实这种算法并不难,就是我们在小学里学的四则运算算法。
我们先要弄清楚一个新的概念。不考虑小数点的情况下,数据有两种表现形式。一种是常用的变量形式,另外一种是BCD码数组形式。变量的最大范围有限,而BCD码数组的形式是无限的,正因为这个特点,所以我们可以进行大数据运算。
这一节要教大家两个知识点:
第一个:如何编写比较两个非组合BCD码数据的大小。
第二个:如何编写涉及到大数据减法运算的算法程序函数,同时也复习了指针的用途。
具体内容,请看源代码讲解。
(1)硬件平台:
基于朱兆祺51单片机学习板。
(2)实现功能:
波特率是:9600 。
通过电脑串口调试助手模拟上位机,往单片机发送组合BCD码的被减数和减数。单片机把组合BCD码的运算结果返回到上位机。最大范围4位,从0到9999,如果被减数小于减数则返回EE EE EE报错。往单片机发送的数据格式:EB 00 55 XX XX 0d 0aYY YY0d 0a指令,其中EB 00 55是数据头,XX 是被减数,可以是1个字节,也可以是2个字节。YY是减数,可以是1个字节,也可以是2个字节。0d 0a是固定的结束标志。
例如:
(a)8259 – 5267 = 2992
上位机发送数据:eb 00 55 82 59 0d 0a52 67 0d 0a
单片机返回:29 92
(b)5267 - 8259=小于0所以报错
上位机发送数据:eb 00 5552 67 0d 0a82 59 0d 0a
单片机返回:EE EE EE表示出错了
(3)源代码讲解如下:
总结陈词:
既然这节讲了减法程序,那么下一节接着讲常用的乘法程序,这种大数据的乘法程序是什么样的?欲知详情,请听下回分解----大数据的乘法运算。
(未完待续,下节更精彩,不要走开哦)
armxu
发表于 2014-8-19 17:08
整理的吴坚鸿的**,代码不全。版权属于吴坚鸿,我只是整理排版。
xg3469
发表于 2014-8-19 17:30
整个全集网售也好!
jianhong_wu
发表于 2014-8-19 23:54
armxu 发表于 2014-8-19 17:08 static/image/common/back.gif
整理的吴坚鸿的**,代码不全。版权属于吴坚鸿,我只是整理排版。
整理的非常好,感谢你的付出。
jianhong_wu
发表于 2014-8-19 23:57
armxu 发表于 2014-8-19 17:08 static/image/common/back.gif
整理的吴坚鸿的**,代码不全。版权属于吴坚鸿,我只是整理排版。
要是在前面第一页增加一个目录,效果会更好。
烹小鲜
发表于 2014-8-20 10:41
做个记号,方便下次学习,谢谢楼主!
armxu
发表于 2014-8-20 12:36
jianhong_wu 发表于 2014-8-19 23:57
要是在前面第一页增加一个目录,效果会更好。
PDF文件中有书签,打开就知道了。
shcshc1234
发表于 2014-8-20 20:07
elec921 发表于 2014-3-6 08:26 static/image/common/back.gif
基本功很好,再看点程序结构、算法、和技巧的书 变大虾分分钟的事啊
...
求推荐这些书啊
我最想找程序结构的书
现在属于各个模块对着手册都能驱动的起来
就是最后弄到一起的时候就恶心了。。
zuoxp
发表于 2014-8-20 21:27
楼主总结的很到位!
elec921
发表于 2014-8-21 15:12
shcshc1234 发表于 2014-8-20 20:07 static/image/common/back.gif
求推荐这些书啊
我最想找程序结构的书
现在属于各个模块对着手册都能驱动的起来
程序匠人写的那本专门讲裸奔程序结构就不错的
1021352522
发表于 2014-8-21 15:44
坚定不移为楼主点赞
1021352522
发表于 2014-8-21 15:52
楼主有没出书的打算啊