串口以16进制发送0-99999999间的数,单片机收到后在数码管显示
串口以16进制发送0-99999999间的数,单片机收到后在数码管显示 用附件里的程序改我小白一个 求大神的帮忙指导{:3_59:} 需要改的地方挺多,先说下你的要求吧。99999999这个数挺大的,应该用4字体数字,unsgined long型应该够了。 呵呵! 1莫元,我回个贴就赚到了。 techbaby 发表于 2014-8-14 15:191莫元,我回个贴就赚到了。
我是小白一个 求大神帮帮忙啊 礼轻情义重啊{:3_59:} 我也拿走一个莫元 我再拿走一个莫元 回复一下1个莫元
拿一莫元走了 你们太不人道了,我就不要这一莫元 我再拿走一个莫元 额,{:titter:} 真的有莫元赚啊?
我再拿走一个莫元 下载下来看看 我是来拿莫元的 说的不清不楚,精神上支持下,拿走一分 laujc 发表于 2014-8-14 16:02
需要改的地方挺多,先说下你的要求吧。99999999这个数挺大的,应该用4字体数字,unsgined long型应该够了。 ...
我是想通过通过串口发送16进制的数到单片机 然后通过数码管显示出来 4位数的也行 就是不明白怎么拆分那串数 打酱油路过{:lol:} 转一个莫元,哈哈........... 没有硬件何来的软件?
传输好弄,最主要的是硬件不好弄 赚一个莫元,这个程序不难吧 yinglively 发表于 2014-8-14 16:15
没有硬件何来的软件?
传输好弄,最主要的是硬件不好弄
我有学习板 只是现在不知道怎么写程序 chenchaoting 发表于 2014-8-14 16:15
赚一个莫元,这个程序不难吧
刚刚入门 求大神指导 帮忙啊{:3_59:} 八位数,你分八个字节发送不就行了,比如发送12345678,就发送0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,接收到对应位数码管显示出来就OK了
赚一个莫元 赚一个莫元{:lol:}{:lol:}
赚一个莫元{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}
也来赚一个莫元 qiangfangeve 发表于 2014-8-14 16:10
我是想通过通过串口发送16进制的数到单片机 然后通过数码管显示出来 4位数的也行 就是不明白怎么拆分那串 ...
首先明白一点,串口通信是传输8bit字节,你这么大的数,需要用4个byte即32bit的类型来表示。即可以用一个unsigned long型的数来表示(假设unsigned long在你系统里是4byte的)。
这个unsigned long的数,在传输时,要分成4个8bit的数来传,因为串口一次传的就是8bit。单片机接收后,你首先需要将这4个8bit数转为一个unsigned long的数,然后再提示各个位(个,十,百,万,千,等)的数值送显示。
或者你传输时,直接分解好,直接传每一个位(个,十,百,万,千,等)的数字,单片机接收后就可以送显示了
1莫元,呵呵 先把每一位提出来,再送显示。 laujc 发表于 2014-8-14 16:33
首先明白一点,串口通信是传输8bit字节,你这么大的数,需要用4个byte即32bit的类型来表示。即可以用一个 ...
有个例程给我就好了{:3_59:} 讲的这样清楚了你自己试试呗,再牛的大神更没有闲工夫给你写代码。伸手党大大滴坏滴干活。 1莫元 赚莫元… 来拿1莫元了,谢谢楼主 小弟初學啥都不會,沒辨法幫忙。
{:smile:}{:smile:} 楼主,谁都是从啥都不会一步一步过来的,想要学习又不想付出努力,不是太好吧。另外,论坛的习惯就是
--鄙视伸手党 每次发送一个十进至的数,然后分别解码显示. BCD码, 恩,就可以解决了。多少位都行. 我试试是不是真的可以拿到一莫元 每次发一段数据,接到后取位。。
其实我是来拿一莫元的~{:lol:} 我再拿走一个莫元 我也拿走一个莫元 0-999999是变长还是定长发送?说清楚哦,定长就简单 打个酱油! {:lol:} 不小心 转走一莫元! 回复一下1个莫元 +1莫元 O(∩_∩)O 回复 好好学习 拿莫元,这个应该很简单吧 没写过程序吧,按30楼说的做吧。
分两步走:1mcu把ram变量在数码管上显示出来
2增加串口接收程序,把收到的数据放在ram变量里
这两个都是常用小程序,自己找资料,自己想,自己写,打好基础。 资料都很容易查到,大把大把的。基础的程序很依赖mcu和你的板子,不好给你写,写了你一时半会也整不明白。
还是靠自己吧,写好了,思路就打开了。 这个还得自己来,先搜点资料,看数码管是怎恶么控制的。然后再搞串口。。。一步一步来 zhanan 发表于 2014-8-15 08:47
没写过程序吧,按30楼说的做吧。
分两步走:1mcu把ram变量在数码管上显示出来
2增加串 ...
嗯 多谢指导{:3_59:} 我也来拿走1莫元 自己试试写吧,不难的。 拿走一个莫元 我也来拿走一个莫元{:titter:} 拿走了 谢谢 我也来拿走一个莫元 俺也来拿走一莫元 怎么变成赚莫元帖了,看来这个帖比较失败啊{:lol:} 细分一下,首先实现,串口输入123,返回1,2,3或者是0,0,0,0,0,1,2,3
输入56789 返回0,0,0,5,6,7,8,9
就是取出他的个位,十位,千位对应的数字。
然后实现,数码管显示,DigitShow(unsigned char chNum,unsigned char chBit)
不同的位显示不同的数字
最后将上面两者的程序结合一下
随便写一个供楼主参考,是随便写的,请高手勿喷,谢谢!... {:smile:}
unsigned char DISP;
unsigned long Recever_Data;
unsigned char code code_table=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
DISP=code_table[((Recever_Data % 100000000)/10000000)&0x0F];
DISP=code_table[((Recever_Data % 10000000)/1000000)&0x0F];
DISP=code_table[((Recever_Data % 1000000)/100000)&0x0F];
DISP=code_table[((Recever_Data % 100000)/10000)&0x0F];
DISP=code_table[((Recever_Data % 10000)/1000)&0x0F];
DISP=code_table[((Recever_Data % 1000)/100)&0x0F];
DISP=code_table[((Recever_Data % 100)/10)&0x0F];
DISP=code_table[(Recever_Data % 10)&0x0F];
题目有点大,不如分成小问题如:1mcu如何把ram变量在数码管上显示出来, 2如何 把 串口收到的数据放在ram变量里。
赚一个莫元{:shy:} 莫元拿走了哦。 都说有钱拿 我也来试试………… 二楼已说,66楼例程 顶起顶起!!! 不会C的路过{:tongue:} 。,楼主你是想数据每隔1秒自身加1后发送出去吗?还是怎么个发送方法啊? 这么多的回帖都没到点子上……
unsigned long num;//接收到的数据存放到这个变量
char DispBuff[;
sprintf("%9ul", num);//格式化打印成十进制字符串
disp(DispBuff);//显示字符串 mhw 发表于 2014-8-16 23:05
这么多的回帖都没到点子上……
unsigned long num;//接收到的数据存放到这个变量
嗯! 感觉 mhw 兄这个方式确实是更好,但还要再加个 Include stdio.h 才行喔!
无论如何这帖的悬赏我先拿了,各位兄弟,不好意思啦!... {:lol:} 还是将各位分开最好了,这么大的数传过去,显示也是要分开的 一点:串口儿,一次只能一字节,怎么穿都行。
要速度就穿4字节的LONG型值,接收后再还原,显示。
不要求速度的话,也可以转为10字节的字符后,再传。
页:
[1]