打印
[51单片机]

从业将近十年!手把手教你单片机程序框架(连载)

[复制链接]
楼主: jianhong_wu
手机看帖
扫描二维码
随时随地手机跟帖
781
好东西,经验之谈

使用特权

评论回复
782
ky175| | 2016-3-9 00:28 | 只看该作者
本帖最后由 ky175 于 2016-3-9 00:32 编辑

越来越喜欢上单片机了 ,看了吴老师的框架  作为初学者 个人理解是看似简单“三区一线” ,灵活运用的话非一日,C语言最好能够学一下 ,对于吴老师的程序理解会更加的深刻(吴老师c语言基本功是非常扎实的)还有不要太急着看程序,先看看做程序前说明 ,闭上眼想想如果是自己怎么做程序 ,做出来比对一下,是精简还是冗长 ,这样再看吴老师程序你一定会理解更加深刻。

使用特权

评论回复
783
shunyong007| | 2016-3-13 10:24 | 只看该作者
我也是一个单片机的初学者,看了鸿哥的讲座受益匪浅!感谢鸿哥的无私奉献。

使用特权

评论回复
784
shunyong007| | 2016-3-13 10:28 | 只看该作者
鸿哥:我这里有个问题,单片机外中断需要实时检测外部接近开关中断信号,同时单片机还要与上位机实时传输数据,怎么处理好外中断和串行中断的关系。烦请解答!谢谢!

使用特权

评论回复
785
XQ2013| | 2016-3-22 14:01 | 只看该作者
jianhong_wu 发表于 2014-4-26 22:36
没错,你的方法也行,而且电路更加简单。我两年前曾经用你的方法做串口通讯的5V与3.3V的电平兼容转换,效 ...

这样的电路,如果波特率过高,对通讯有影响的吧?

使用特权

评论回复
786
弓长张| | 2016-3-22 14:35 | 只看该作者
非常感谢楼主!!!

使用特权

评论回复
787
pillarpeng| | 2016-3-22 21:55 | 只看该作者
作为新手,想向您老,提一个建议:要是能把有些实验的现象和结果,用图片或者视屏的方式展现一下就好了。(特别是LCD显示部分的讲解)
虽然我说一下容易,如果真正每个教程都去配几张图片,可能都有够累了的。更不说什么视频了。
我是不是要求过分了,看着免费的教程还那么多的P话。请包涵。。。

使用特权

评论回复
788
shunyong007| | 2016-3-23 12:52 | 只看该作者
zh3140133 发表于 2016-2-17 21:14
if(key_sr1==1)//IO是高电平,说明按键没有被按下,这时要及时清零一些标志位
  {
     ucKeyLock1=0; / ...

我测试过,可以用的。

使用特权

评论回复
789
zh3140133| | 2016-3-30 10:57 | 只看该作者
jianhong_wu 发表于 2014-7-6 10:56
第五十四节:指针的第二大好处,指针作为数组在函数中的输入接口。

开场白:

博主,你好,在这里我有点不清楚!void big_to_small_sort_2(unsigned char *p_ucInputBuffer)//第2种方法 把一个数组从大到小排序
{
   unsigned char i;
   unsigned char k;
   unsigned char ucTemp; //在两两交换数据的过程中,用于临时存放交换的某个变量


   for(i=0;i<const_array_size;i++)  
   {
      ucGlobalBuffer_2=p_ucInputBuffer;  //参与排序算法之前,先把输入接口的数据全部搬移到全局变量数组中。
   }
红色标注地方,ucGlobalBuffer_2=p_ucInputBuffer,为什么能这样用啊?指针不是指的是地址吗?你这样是吧地址赋给数组?

使用特权

评论回复
790
laolangxunsi| | 2016-4-3 07:54 | 只看该作者
楼主:我在本论坛发了一个贴子:"为何增加函数后,在编译时,data值反而小了?" 在学习单片机中,遇到了一个问题,能否指点一下?
另,整个程序框架有无好建议。

使用特权

评论回复
791
zjukelven| | 2016-4-9 20:33 | 只看该作者
顶一下 学习了

使用特权

评论回复
792
zhiqingdianzi| | 2016-4-16 21:33 | 只看该作者
jianhong_wu 发表于 2014-3-5 22:02
第六节:在主函数中利用累计主循环次数来实现独立按键的检测。

开场白:

else if(ucKeyLock1==0)//有按键按下,且是第一次被按下,为啥不是else if(Key_sr1)? else if(ucKeyLock1==0)这个在第一个if就清零了,直接就进去了

使用特权

评论回复
793
雪迷深冬| | 2016-4-16 22:11 | 只看该作者
很好的东西,顶一下让更多人看到

使用特权

评论回复
794
yxys_1988| | 2016-4-22 10:00 | 只看该作者
吴工 写内容很用特别是针对初学者  这本书什么时候可以出呀

使用特权

评论回复
795
ywlzh| | 2016-4-23 19:13 | 只看该作者
itelectron 发表于 2014-3-5 22:49
MOV  A,31H                                       
        XRL  A,41H                       ...

你这个程序 本来就不完整,汇编对地址的操作,想要转换成C,就必须用指针。

要是知道你汇编中31H,41H,30H,40H的意义所在,在C语言中程序初始化就能用4个变量顶替,这样转换就很简单了。

使用特权

评论回复
796
洛理小子| | 2016-4-23 22:38 | 只看该作者
顶呀~~大赞

使用特权

评论回复
797
jackhwang| | 2016-5-17 22:01 | 只看该作者
cjseng 发表于 2014-5-16 11:31
SBUF =ucSendData; //发送一个字节
delay_short(400);  

用硬件自动实现收发切换,在传输速度比较低时可以。

使用特权

评论回复
798
jackhwang| | 2016-5-17 22:12 | 只看该作者
jianhong_wu 发表于 2014-5-16 12:22
(1)如果你不想用delay_short(400)延时,我还有另外一种延时方式,请参考我第四十三节:通过串口用计数延 ...

485的自动切换基本都是有TXD信号来控制。这种切换要消耗时间、信号驱动。我个人认为不适合传输速度比较快、传输距离比较远、对稳定性要求的项目上。

无标题.jpg (42.03 KB )

485自动切换基本电路图

485自动切换基本电路图

使用特权

评论回复
799
Azarm| | 2016-5-18 14:37 | 只看该作者
鸿哥的这个帖子对我的帮助真是太大了!赞!

使用特权

评论回复
800
一抹笑zZ| | 2016-5-22 23:11 | 只看该作者
学习学习

使用特权

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

本版积分规则