搜索
bottom↓
回复: 76

串口以16进制发送0-99999999间的数,单片机收到后在数码管显示

  [复制链接]

出0入0汤圆

发表于 2014-8-14 15:16:07 | 显示全部楼层 |阅读模式
串口以16进制发送0-99999999间的数,单片机收到后在数码管显示 用附件里的程序改  我小白一个 求大神的帮忙指导

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入4汤圆

发表于 2014-8-14 16:02:37 | 显示全部楼层
需要改的地方挺多,先说下你的要求吧。99999999这个数挺大的,应该用4字体数字,unsgined long型应该够了。

出20入70汤圆

发表于 2014-8-14 15:18:49 | 显示全部楼层
呵呵!   

出20入70汤圆

发表于 2014-8-14 15:19:22 | 显示全部楼层
1莫元,我回个贴就赚到了。

出0入0汤圆

 楼主| 发表于 2014-8-14 15:22:11 | 显示全部楼层
techbaby 发表于 2014-8-14 15:19
1莫元,我回个贴就赚到了。

我是小白一个 求大神帮帮忙啊 礼轻情义重啊

出0入0汤圆

发表于 2014-8-14 15:23:12 | 显示全部楼层
我也拿走一个莫元

出0入0汤圆

发表于 2014-8-14 15:23:39 | 显示全部楼层
我再拿走一个莫元

出0入10汤圆

发表于 2014-8-14 15:41:37 | 显示全部楼层
回复一下1个莫元

出0入4汤圆

发表于 2014-8-14 15:43:12 | 显示全部楼层
拿一莫元走了

出10入113汤圆

发表于 2014-8-14 15:43:46 | 显示全部楼层
你们太不人道了,我就不要这一莫元

出0入12汤圆

发表于 2014-8-14 15:44:14 | 显示全部楼层
我再拿走一个莫元

出0入0汤圆

发表于 2014-8-14 15:46:05 | 显示全部楼层
额,

出0入0汤圆

发表于 2014-8-14 15:50:33 | 显示全部楼层
真的有莫元赚啊?

出0入0汤圆

发表于 2014-8-14 15:52:40 | 显示全部楼层

我再拿走一个莫元

出0入0汤圆

发表于 2014-8-14 16:08:15 来自手机 | 显示全部楼层
下载下来看看

出0入16汤圆

发表于 2014-8-14 16:08:53 | 显示全部楼层
我是来拿莫元的

出0入0汤圆

发表于 2014-8-14 16:09:10 | 显示全部楼层
说的不清不楚,精神上支持下,拿走一分

出0入0汤圆

 楼主| 发表于 2014-8-14 16:10:55 | 显示全部楼层
laujc 发表于 2014-8-14 16:02
需要改的地方挺多,先说下你的要求吧。99999999这个数挺大的,应该用4字体数字,unsgined long型应该够了。 ...

我是想通过通过串口发送16进制的数到单片机 然后通过数码管显示出来 4位数的也行 就是不明白怎么拆分那串数

出0入0汤圆

发表于 2014-8-14 16:11:31 | 显示全部楼层
打酱油路过

出0入0汤圆

发表于 2014-8-14 16:12:36 | 显示全部楼层
转一个莫元,哈哈...........

出0入0汤圆

发表于 2014-8-14 16:15:06 | 显示全部楼层
没有硬件何来的软件?
传输好弄,最主要的是硬件不好弄

出20入25汤圆

发表于 2014-8-14 16:15:06 | 显示全部楼层
赚一个莫元,这个程序不难吧

出0入0汤圆

 楼主| 发表于 2014-8-14 16:15:56 | 显示全部楼层
yinglively 发表于 2014-8-14 16:15
没有硬件何来的软件?
传输好弄,最主要的是硬件不好弄

我有学习板 只是现在不知道怎么写程序

出0入0汤圆

 楼主| 发表于 2014-8-14 16:17:57 | 显示全部楼层
chenchaoting 发表于 2014-8-14 16:15
赚一个莫元,这个程序不难吧

刚刚入门 求大神指导 帮忙啊

出0入0汤圆

发表于 2014-8-14 16:20:00 | 显示全部楼层
八位数,你分八个字节发送不就行了,比如发送12345678,就发送0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,接收到对应位数码管显示出来就OK了

出0入24汤圆

发表于 2014-8-14 16:20:36 | 显示全部楼层

赚一个莫元

出0入0汤圆

发表于 2014-8-14 16:23:18 | 显示全部楼层
赚一个莫元

出0入0汤圆

发表于 2014-8-14 16:27:17 | 显示全部楼层

赚一个莫元

出0入0汤圆

发表于 2014-8-14 16:29:54 | 显示全部楼层


也来赚一个莫元

出0入4汤圆

发表于 2014-8-14 16:33:25 | 显示全部楼层
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的数,然后再提示各个位(个,十,百,万,千,等)的数值送显示。


或者你传输时,直接分解好,直接传每一个位(个,十,百,万,千,等)的数字,单片机接收后就可以送显示了

出0入0汤圆

发表于 2014-8-14 16:47:27 | 显示全部楼层


1莫元,呵呵

出0入0汤圆

发表于 2014-8-14 16:49:27 | 显示全部楼层
先把每一位提出来,再送显示。

出0入0汤圆

 楼主| 发表于 2014-8-14 16:55:42 | 显示全部楼层
laujc 发表于 2014-8-14 16:33
首先明白一点,串口通信是传输8bit字节,你这么大的数,需要用4个byte即32bit的类型来表示。即可以用一个 ...

有个例程给我就好了

出0入0汤圆

发表于 2014-8-14 17:25:58 | 显示全部楼层
讲的这样清楚了你自己试试呗,再牛的大神更没有闲工夫给你写代码。伸手党大大滴坏滴干活。

出0入0汤圆

发表于 2014-8-14 18:13:00 来自手机 | 显示全部楼层
1莫元                  

出0入0汤圆

发表于 2014-8-14 18:37:34 | 显示全部楼层
赚莫元…

出0入0汤圆

发表于 2014-8-14 18:40:53 | 显示全部楼层
来拿1莫元了,谢谢楼主

出0入0汤圆

发表于 2014-8-14 18:45:58 | 显示全部楼层
小弟初學啥都不會,沒辨法幫忙。

出0入0汤圆

发表于 2014-8-14 18:58:04 | 显示全部楼层

出0入0汤圆

发表于 2014-8-14 20:52:51 | 显示全部楼层
楼主,谁都是从啥都不会一步一步过来的,想要学习又不想付出努力,不是太好吧。另外,论坛的习惯就是
--鄙视伸手党

出0入0汤圆

发表于 2014-8-14 21:15:33 | 显示全部楼层
每次发送一个十进至的数,然后分别解码显示. BCD码, 恩,就可以解决了。多少位都行.

出0入0汤圆

发表于 2014-8-14 21:38:32 | 显示全部楼层
我试试是不是真的可以拿到一莫元

出0入0汤圆

发表于 2014-8-14 22:48:07 | 显示全部楼层
每次发一段数据,接到后取位。。
其实我是来拿一莫元的~

出0入0汤圆

发表于 2014-8-14 22:55:40 | 显示全部楼层
我再拿走一个莫元

出0入0汤圆

发表于 2014-8-14 22:58:43 | 显示全部楼层
我也拿走一个莫元 0-999999是变长还是定长发送?说清楚哦,定长就简单

出0入0汤圆

发表于 2014-8-14 23:09:42 | 显示全部楼层
打个酱油!

出0入0汤圆

发表于 2014-8-14 23:11:50 | 显示全部楼层
        

出0入0汤圆

发表于 2014-8-14 23:18:27 来自手机 | 显示全部楼层
不小心 转走一莫元!

出0入0汤圆

发表于 2014-8-14 23:47:29 | 显示全部楼层
回复一下1个莫元

出0入0汤圆

发表于 2014-8-15 00:07:51 来自手机 | 显示全部楼层
+1莫元          O(∩_∩)O

出0入4汤圆

发表于 2014-8-15 07:31:44 来自手机 | 显示全部楼层
回复 好好学习

出0入0汤圆

发表于 2014-8-15 07:49:00 | 显示全部楼层
拿莫元,这个应该很简单吧

出0入0汤圆

发表于 2014-8-15 08:47:41 | 显示全部楼层
没写过程序吧,按30楼说的做吧。
分两步走:1  mcu把ram变量在数码管上显示出来
               2  增加串口接收程序,把收到的数据放在ram变量里
这两个都是常用小程序,自己找资料,自己想,自己写,打好基础。

出0入0汤圆

发表于 2014-8-15 08:54:52 | 显示全部楼层
资料都很容易查到,大把大把的。基础的程序很依赖mcu和你的板子,不好给你写,写了你一时半会也整不明白。

还是靠自己吧,写好了,思路就打开了。

出0入0汤圆

发表于 2014-8-15 09:37:23 | 显示全部楼层
这个还得自己来,先搜点资料,看数码管是怎恶么控制的。然后再搞串口。。。一步一步来

出0入0汤圆

 楼主| 发表于 2014-8-15 10:05:33 | 显示全部楼层
zhanan 发表于 2014-8-15 08:47
没写过程序吧,按30楼说的做吧。
分两步走:1  mcu把ram变量在数码管上显示出来
               2  增加串 ...

嗯 多谢指导

出0入0汤圆

发表于 2014-8-15 10:19:04 | 显示全部楼层
我也来拿走1莫元

出0入4汤圆

发表于 2014-8-15 10:39:14 | 显示全部楼层
自己试试写吧,不难的。

出0入0汤圆

发表于 2014-8-15 10:40:12 | 显示全部楼层
拿走一个莫元

出0入0汤圆

发表于 2014-8-15 16:16:23 | 显示全部楼层
我也来拿走一个莫元

出0入0汤圆

发表于 2014-8-15 21:47:01 | 显示全部楼层
拿走了 谢谢

出0入0汤圆

发表于 2014-8-15 21:57:00 | 显示全部楼层
我也来拿走一个莫元

出0入0汤圆

发表于 2014-8-15 22:09:06 | 显示全部楼层
俺也来拿走一莫元

出0入0汤圆

发表于 2014-8-16 15:15:54 | 显示全部楼层
怎么变成赚莫元帖了,看来这个帖比较失败啊

出0入0汤圆

发表于 2014-8-16 15:49:09 | 显示全部楼层
细分一下,首先实现,串口输入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)
                            不同的位显示不同的数字
最后将上面两者的程序结合一下
                              

出0入34汤圆

发表于 2014-8-14 15:16:08 | 显示全部楼层
随便写一个供楼主参考,是随便写的,请高手勿喷,谢谢!...

  1. unsigned char DISP[8];
  2. unsigned long Recever_Data;
  3. unsigned char code code_table[10]=
  4. {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

  5. DISP[0]=code_table[((Recever_Data % 100000000)/10000000)&0x0F];
  6. DISP[1]=code_table[((Recever_Data % 10000000)/1000000)&0x0F];
  7. DISP[2]=code_table[((Recever_Data % 1000000)/100000)&0x0F];
  8. DISP[3]=code_table[((Recever_Data % 100000)/10000)&0x0F];
  9. DISP[4]=code_table[((Recever_Data % 10000)/1000)&0x0F];
  10. DISP[5]=code_table[((Recever_Data % 1000)/100)&0x0F];
  11. DISP[6]=code_table[((Recever_Data % 100)/10)&0x0F];
  12. DISP[7]=code_table[(Recever_Data % 10)&0x0F];
复制代码

出0入0汤圆

发表于 2014-8-16 18:28:05 | 显示全部楼层
题目有点大,不如分成小问题如:1  mcu如何把ram变量在数码管上显示出来,   2如何 把 串口收到的数据放在ram变量里。

出0入0汤圆

发表于 2014-8-16 19:42:10 | 显示全部楼层
赚一个莫元

出0入0汤圆

发表于 2014-8-16 22:24:07 | 显示全部楼层
莫元拿走了哦。

出0入0汤圆

发表于 2014-8-16 22:33:54 | 显示全部楼层
都说有钱拿 我也来试试…………

出0入4汤圆

发表于 2014-8-16 22:38:23 | 显示全部楼层
二楼已说,66楼例程

出0入0汤圆

发表于 2014-8-16 22:45:37 | 显示全部楼层
顶起顶起!!!

出0入0汤圆

发表于 2014-8-16 22:53:02 | 显示全部楼层
不会C的路过 。,楼主你是想数据每隔1秒  自身加1后发送出去吗?还是怎么个发送方法啊?

出0入0汤圆

发表于 2014-8-16 23:05:26 | 显示全部楼层
这么多的回帖都没到点子上……
unsigned long num;//接收到的数据存放到这个变量

char DispBuff[[16];
sprintf("%9ul", num);//格式化打印成十进制字符串
disp(DispBuff);//显示字符串

出0入34汤圆

发表于 2014-8-17 12:39:23 | 显示全部楼层
mhw 发表于 2014-8-16 23:05
这么多的回帖都没到点子上……
unsigned long num;//接收到的数据存放到这个变量

嗯! 感觉 mhw 兄这个方式确实是更好,但还要再加个 Include stdio.h 才行喔!

无论如何这帖的悬赏我先拿了,各位兄弟,不好意思啦!...

出0入0汤圆

发表于 2014-8-17 16:51:58 | 显示全部楼层
还是将各位分开最好了,这么大的数传过去,显示也是要分开的

出0入0汤圆

发表于 2014-8-17 18:33:35 | 显示全部楼层
一点:串口儿,一次只能一字节,怎么穿都行。
要速度就穿4字节的LONG型值,接收后再还原,显示。
不要求速度的话,也可以转为10字节的字符后,再传。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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