打印
[C语言]

求翻译

[复制链接]
1107|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
azdd|  楼主 | 2016-10-13 19:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不太会汇编语言,现在正在学RS232用cp2102通信,求大神把汇编翻译成C语言。
;=====异步通讯初始化子程序(SET_UART)=========       
SET_UART:
        MOVLB        03H
        BSF        BAUDCON,BRG16        ;       
        CLRF        SPBRGH                ;
        MOVLW        22H                ;
        MOVWF        SPBRGL                ;16MHz,115.2K
        ;
        BSF        RCSTA,SPEN        ;串口使能,RX,TX 分配为串口
        BSF        RCSTA,CREN        ;串口使能,接收使能
        BCF        RCSTA,RX9        ;接收8位
        ;
        BCF        TXSTA,SYNC        ;串口为异步
        BSF        TXSTA,BRGH        ;16MHz,115.2K
        BCF        TXSTA,TX9        ;8位发送
        BSF        TXSTA,TXEN        ;发送使能
        RETURN       
;===== 异步接收一个字节子程序 (RC_BYTE )=========
RC_BYTE:                        ;接收的字节在W中
        MOVLB        PIR1_BSF
        BTFSS        PIR1,RCIF        ;检查接收有状态标记
        GOTO        RC_BYTE                ;无接收标记转再查
        MOVLB        RCREG_BSF
        MOVF        RCREG,W                ;读取接收字节
        MOVLB        PIR1_BSF       
        BCF        PIR1,RCIF        ;复位接收状态标记
        RETURN       
;======异步发送一个字节子程序( TX_BYTE)=======
TX_BYTE:                        ;发送的字节在W中
        MOVLB        03H
        BTFSS        TXSTA,TRMT        ;
        GOTO        TX_BYTE                ;
        MOVWF        TXREG                ;发送一个字节
        RETURN

相关帖子

沙发
xyz549040622| | 2016-10-14 14:17 | 只看该作者
你找个c版本的程序就好啦。不用看汇编的。

使用特权

评论回复
板凳
azdd|  楼主 | 2016-10-14 16:59 | 只看该作者
xyz549040622 发表于 2016-10-14 14:17
你找个c版本的程序就好啦。不用看汇编的。

找不到与CP2102相关的程序,也许他们认为太容易了

使用特权

评论回复
地板
bkn1860| | 2016-10-14 17:21 | 只看该作者
参考一下我上传的附件里面的例子,改汇编不如移植C来的快。
Examples.zip (851.33 KB)

使用特权

评论回复
5
xyz549040622| | 2016-10-14 18:02 | 只看该作者
CP2102是不需要软件配置的,你直接配置单片机的串口端就OK啦。

使用特权

评论回复
6
ningling_21| | 2016-10-15 14:52 | 只看该作者
CP2102不需要专门的程序,只是USB转串口的接口芯片

只要串口收发程序就可以了

使用特权

评论回复
7
airwill| | 2016-10-18 09:50 | 只看该作者
要玩汇编, 你得把芯片的型号给出嘛

不过这段程序这么简单, 还有这么详细的注释, 不明白汇编指令猜猜就明白了. 就是 UART 的初始化代码, 寄存器配置程序.
就是些寄存器的赋值, 置位和清位操作.

使用特权

评论回复
8
NE5532| | 2016-10-18 17:13 | 只看该作者
你这段程序就是串口初始化和单字节接收、发送,跟CP2102没有半毛钱关系,而且还有注释,应该很好看懂啊。

使用特权

评论回复
9
azdd|  楼主 | 2016-10-18 19:01 | 只看该作者
NE5532 发表于 2016-10-18 17:13
你这段程序就是串口初始化和单字节接收、发送,跟CP2102没有半毛钱关系,而且还有注释,应该很好看懂啊。 ...

不会汇编,只会c。所以看不懂。

使用特权

评论回复
10
azdd|  楼主 | 2016-10-18 19:02 | 只看该作者
airwill 发表于 2016-10-18 09:50
要玩汇编, 你得把芯片的型号给出嘛

不过这段程序这么简单, 还有这么详细的注释, 不明白汇编指令猜猜就明白 ...

那应该我截错程序了,不会看汇编

使用特权

评论回复
11
azdd|  楼主 | 2016-10-18 19:03 | 只看该作者
ningling_21 发表于 2016-10-15 14:52
CP2102不需要专门的程序,只是USB转串口的接口芯片

只要串口收发程序就可以了 ...

那也需要配置波特率什么的吧?那个需要在哪可以看到这方面知识?

使用特权

评论回复
12
azdd|  楼主 | 2016-10-18 19:03 | 只看该作者
bkn1860 发表于 2016-10-14 17:21
参考一下我上传的附件里面的例子,改汇编不如移植C来的快。

我来观摩观摩。

使用特权

评论回复
13
kingTek| | 2016-10-18 20:09 | 只看该作者
还是得学汇编啊,起码起码得深刻知道一只麻雀的构造,从细胞到器官到整只鸟是怎么来的。
不会汇编的码农绝不是一流码农,
我的手机是三星的,深刻感觉软件时序功耗处理有很大问题,与之相比,苹果的就好多了。
而这些都是不懂底层时序所写出代码的症候。

使用特权

评论回复
14
ningling_21| | 2016-10-19 08:23 | 只看该作者
azdd 发表于 2016-10-18 19:03
那也需要配置波特率什么的吧?那个需要在哪可以看到这方面知识?

当电脑能正确识别2102后,波特率在电脑的设备管理器里面设置

使用特权

评论回复
15
NE5532| | 2016-10-19 09:01 | 只看该作者
那你就去看2102的手册啊,照用就是了,别看别人的程序,自己写了。不会汇编我也帮不了你了,因为我汇编和C都会。

使用特权

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

本版积分规则

28

主题

86

帖子

1

粉丝