历史上的今天
今天是:2025年01月25日(星期六)
2018年01月25日 | HT48R50A的 RS232串口示例程序
2018-01-25 来源:eefocus

; ********************************************
; 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
;--------------------------------------------------------------------
史海拾趣
|
本帖最后由 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驱动,和应用程序 第一个问题:我想要ADC每隔500ms采样一次,用中断来实现。这个500ms中断在驱动中如何实现? 第二个问题:应用程序获取AD结果可以使用流驱动接口,但是读 ...… 查看全部问答> |
|
串口通讯中的DCB结构 我看很多程序,它里面使用了BCD结构,但是BCD结果不是在winbase.h中定义的吗, 程序里面并没有#include \"winbase.h\",但是编译确实成功的,为什么? 我是学了VC现在学EVC,觉得有点困扰,EVC很多库函数都不一样了,怎么找 ...… 查看全部问答> |
|
以下我做了不同平台的测试 第一个平台是Default language为中文(中国) 第二个平台是Default language为英语(英文) 第三个平台是Default language为英语(英文),并加入MUI多国语言的支持. 应用程序代码如下: char cTest[] & ...… 查看全部问答> |
|
小弟关于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. ...… 查看全部问答> |
|
在下大四学生,之前在学校只接触过很浅的嵌入式知识,现在毕业设计被安排在一公司参加一个项目,要实现一块板子的以太网通讯功能,板子应该是arm cortex m3核心,lm3s9b92的型号,我要实现的功能是将温度、液位等数据通过以太网接口传给计算机,我 ...… 查看全部问答> |




