历史上的今天
返回首页

历史上的今天

今天是:2025年01月25日(星期六)

2018年01月25日 | HT48R50A的 RS232串口示例程序

2018-01-25 来源:eefocus

基于HT48R50A的 RS232串口示例程序

; ******************************************** 
; Function :基于HT48R50A的 RS232串口示例程序 * 

; MICroProcessor : HT48R50A-1/28SKDIP-A      * 

; Author:         www.picavr.com             * 
; Crystal :       4MHz                       * 
; ******************************************** 
#INCLUDE                HT48R50A-1.INC 
TXD                     EQU     PB.1 
RXD                     EQU     PB.0 
BAUDRATE                EQU     135                     ;2400,N,8,1 
;-------------------------------------------------------------------- 
PUBLIC                  TRANSMIT 
PUBLIC                  RECEIVE 
;-------------------------------------------------------------------- 
DATA_RS232              .SECTION        ’DATA’ 
COUNTER                 DB      ? 
DELAY_COUNTER           DB      ? 
DELAY_COUNTER_1         DB      ? 
DELAY_COUNTER_2         DB      ? 
TRANSMIT_DATA           DB      ? 
RECEIVE_DATA            DB      ? 
;-------------------------------------------------------------------- 
TRANSMIT_CODE           .SECTION        ’CODE’ 
TRANSMIT: 
                         MOV      TRANSMIT_DATA,A 
                        SET     PB 
                         MOV      A,00000001B 
                         MOV      PBC,A 

                         MOV      A,BAUDRATE 
                         MOV      DELAY_COUNTER,A 
                        CLR     TXD                     ;SEND START 
T_START_BIT:                                            ;BIT 
                        SDZ     DELAY_COUNTER 
                        JMP     T_START_BIT 
;------------------------------------------------------- 
                         MOV      A,08H 
                         MOV      COUNTER,A 
T_DATA_BIT: 
                        RRC     TRANSMIT_DATA 
                        SNZ     C 
                        JMP     T_SEND_LOW 
                        SET     TXD 
                        JMP     T_BIT_DELAY 
T_SEND_LOW: 
                        CLR     TXD 
T_BIT_DELAY: 
                         MOV      A,BAUDRATE 
                         MOV      DELAY_COUNTER,A 
T_DELAY_SEND: 
                        SDZ     DELAY_COUNTER 
                        JMP     T_DELAY_SEND 
                        SDZ     COUNTER 
                        JMP     T_DATA_BIT 
;------------------------------------------------------- 
TRANSMIT_END: 
                        SET     TXD                     ;SEND STOP 
                                                        ;BIT 
                         MOV      A,025H 
                         MOV      DELAY_COUNTER_1,A 
                         MOV      DELAY_COUNTER_2,A 
T_STOP_DELAY: 
                        SDZ     DELAY_COUNTER_2 
                        JMP     T_STOP_DELAY 
                        SDZ     DELAY_COUNTER_1 
                        JMP     T_STOP_DELAY 
                        RET 
;-------------------------------------------------------------------- 
RECEIVE_CODE            .SECTION        ’CODE’ 
RECEIVE: 
                        SET     PB 
                         MOV      A,00000001B 
                         MOV      PBC,A 
R_START_BIT: 
                        SZ      RXD                     ;RECEIVE 
                        JMP     R_START_BIT             ;START BIT 
                         MOV      A,BAUDRATE + 2 
                         MOV      DELAY_COUNTER,A 
R_START_BIT_DELAY: 
                        SDZ     DELAY_COUNTER 
                        JMP     R_START_BIT_DELAY 
;------------------------------------------------------- 
                         MOV      A,08H 
                         MOV      COUNTER,A 
R_DATA_8_BITS: 
                        CLR     C 
                        SZ      RXD 
                        SET     C 
                        RRC     RECEIVE_DATA 
                         MOV      A,BAUDRATE + 2 
                         MOV      DELAY_COUNTER,A 
R_DATA_BIT_DELAY: 
                        SDZ     DELAY_COUNTER 
                        JMP     R_DATA_BIT_DELAY 
                        SDZ     COUNTER 
                        JMP     R_DATA_8_BITS 
;------------------------------------------------------- 
                         MOV      A,RECEIVE_DATA 
;------------------------------------------------------- 
                        RET 
;-------------------------------------------------------------------- 


推荐阅读

史海拾趣

Dino-Lite公司的发展小趣事

Dino-Lite公司在发展过程中,始终注重市场拓展和合作伙伴关系的建立。公司与多家知名企业建立了长期稳定的合作关系,共同开拓市场、分享资源。通过与合作伙伴的紧密合作,Dino-Lite公司的产品得以快速进入各个行业领域,并获得了良好的口碑和市场份额。

此外,Dino-Lite公司还积极参与国际展览和交流活动,展示公司的最新技术和产品。这些活动不仅提高了公司的知名度,也为公司带来了更多的商业机会和合作伙伴。

华宇创公司的发展小趣事

为了进一步扩大市场份额,华宇创开始积极拓展国内外市场。公司参加了多场国际电子展和博览会,与全球各地的客户建立了广泛的联系。同时,华宇创还与国际知名电子企业建立了战略合作关系,共同研发新技术、新产品。这些国际合作不仅为华宇创带来了更多的商业机会,也提升了公司在国际市场的地位和影响力。

Connective Peripherals Pte Ltd公司的发展小趣事

面对不断变化的市场环境和客户需求,华宇创始终将创新作为企业发展的核心动力。公司不断投入研发资源,探索新的技术方向和应用场景。同时,华宇创还关注行业发展趋势和未来市场需求,及时调整产品策略和市场布局。展望未来,华宇创将继续秉承创新、品质、合作的理念,致力于成为全球领先的智能电子设备供应商和服务商。

鑫雁公司的发展小趣事

为了更快地拓展市场,聚洵半导体积极寻求与国内外知名企业的合作。公司与世界领先的芯片制造公司台积电建立了晶圆代工合作关系,并在长电科技和华天科技进行封装测试,确保了产品的一流工艺和品质。此外,聚洵还与国内多家电子元器件电商平台如立创商城、华强芯城等建立了紧密的合作关系,通过线上线下双管齐下的分销渠道,将产品迅速推向市场。这些合作不仅提升了聚洵的品牌知名度,还极大地促进了其市场份额的增长。

Holy Stone公司的发展小趣事

1999年,Holy Stone在台湾桃园龙潭设立了生产基地,开始自主生产积层陶瓷电容(MLCC)。这一举措标志着公司从单纯的代理商向集研发、生产、销售于一体的多元化企业转型。同年,公司创立了自有品牌“HEC”,并以该品牌推出了一系列多元客制化产品,行销全球。这些产品凭借其高品质和满足客户全方位需求的特点,赢得了客户的广泛信赖,进一步巩固了公司在电子元件市场的地位。

AnalogicTech公司的发展小趣事

随着技术的不断进步,AnalogicTech始终保持对创新的追求。公司研发团队不断攻克技术难关,推出了一系列具有高性能、高稳定性的产品。其中,公司的LED背光驱动器系列在市场中取得了显著的成功,为公司的快速发展奠定了坚实的基础。

问答坊 | AI 解惑

BU 72435 ROHM热卖

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 我们大量ROHM BU72435库存价格好,有需求请和我联系。 陈庭松 13138889236 …

查看全部问答>

有关无线技术的一些标准(一)

请想象一下,当您乔迁新居,要将电器的电源插头插进墙上插座里去,结果却发现根本不能匹配时是什么感受。应该感谢几十年之前设立的电气标准,发生这种事情的可能性已经很少了。其他还有一些标准也在为我们服务,比如我们可以跟与不同网络服务商打交 ...…

查看全部问答>

Windows CE中的命令提示行的和PC机上的XP中的有啥区别?

网上说:     Windows CE和Windows XP Embedded存在诸多本质区别。首先,Windows CE是一款全32位、Unicode操作系统,它不支持MS-DOS或Windows 3.x应用。         这里说的MS-DOS不就是台式机上的命令提示行中DOS ...…

查看全部问答>

wince ADC驱动请教。

我想实现在wince液晶上 显示采样信号波形。波形频率很低。 肯定要包括ADC驱动,和应用程序 第一个问题:我想要ADC每隔500ms采样一次,用中断来实现。这个500ms中断在驱动中如何实现? 第二个问题:应用程序获取AD结果可以使用流驱动接口,但是读 ...…

查看全部问答>

串口通讯中的DCB结构

串口通讯中的DCB结构 我看很多程序,它里面使用了BCD结构,但是BCD结果不是在winbase.h中定义的吗, 程序里面并没有#include \"winbase.h\",但是编译确实成功的,为什么? 我是学了VC现在学EVC,觉得有点困扰,EVC很多库函数都不一样了,怎么找 ...…

查看全部问答>

WINCE中文显示的问题

以下我做了不同平台的测试 第一个平台是Default language为中文(中国) 第二个平台是Default language为英语(英文) 第三个平台是Default language为英语(英文),并加入MUI多国语言的支持. 应用程序代码如下: char   cTest[]  & ...…

查看全部问答>

bootloader中的一些问题

小弟关于bootloader中有几个问题不清楚,麻烦兄弟们帮忙解释下, 1,其中涉及到内存映射,它的作用是什么? 2,cpu又是如何区分flash和ram的地址呢,难到有控制flash和ram地址的寄存器吗? 3,如果flash的os要加载到ram中执行,又是如何实现拷贝的呢,如 ...…

查看全部问答>

关于嵌入式系统开发的经验

各位同道中人,欢迎各位谈谈自己入门的经验以及推荐一些好的资料,作为LZ,先为大家献上一点啦! 现面有几个不错的网站 ,仅供参考 http://162.105.146.27/cgi-bin/ftp_search?BeginWith=208&FType=255&word=Linux http://linux.ubuntu.org. ...…

查看全部问答>

急求Lcd 中“-”的编码?

急求Lcd 中“-”的编码? 顺便问下Lcd中是怎样进行汉字编码的!…

查看全部问答>

大四学生请教:毕设被安排做lm3s9b92的以太网通讯功能

在下大四学生,之前在学校只接触过很浅的嵌入式知识,现在毕业设计被安排在一公司参加一个项目,要实现一块板子的以太网通讯功能,板子应该是arm cortex m3核心,lm3s9b92的型号,我要实现的功能是将温度、液位等数据通过以太网接口传给计算机,我 ...…

查看全部问答>