打印
[51单片机]

51单片机的串口通信

[复制链接]
926|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
感觉网上汇编语言的资源很少,我在这个网站记录一下我学单片机过程中的一些小实验,都是用汇编写的,扩充一下资料。。。

使用特权

评论回复

相关帖子

沙发
sysharon|  楼主 | 2020-5-3 22:35 | 只看该作者
发送端ORG 0000H
JMP START
ORG 0100H
START:  
ACALL INIT
MAIN:
MOV P2,#0F0H
MOV A,P2
XRL A,#0F0H
JZ MAIN
ACALL KEYSCAN
MOV A,30H
MOV DPTR,#TABLE2
MOVC A,@A+DPTR
MOV P1,A
SETB P0.5
CLR P0.4
CLR P0.3
ACALL DELAY2
SETB P0.3
ACALL DELAY
ALOOP1:
MOV 40H,A
MOV SBUF,#0E1H
JNB TI,$;·¢ËÍÖжÏ
CLR TI
JNB RI,$;½ÓÊÕÖжÏ
CLR RI
MOV A,SBUF;¶þºÅ»úÓ¦´ðÐźÅ
XRL A,#0E2H;Òì»òÅж¨ÊÇ·ñ×¼±¸Íê±Ï£¨ÅжϷ¢ËÍÏûÏ¢ÊÇ·ñΪ#0E2£©
JNZ ALOOP1;¿ªÊ¼·¢ËÍÊý¾Ýʱ¶¨Òå³õʼµØÖ·,Õâ¸öµØÖ·ÀïÃæ´æ´¢Òª·¢Ë͵ÄÊý¾Ý
MOV R0,#40H
MOV R6,#00H;УÑéºÍ
ALOOP2:
MOV SBUF,@R0
MOV A,R6
ADD A,@R0
MOV R6,A
JNB TI,$
CLR TI
MOV SBUF,R6
JNB TI,$;·¢ËÍÖжÏ
CLR TI
JNB RI,$;½ÓÊÕÓ¦´ðÖжÏ
CLR RI
MOV A,SBUF
XRL A,#00H
JNZ ALOOP2
JMP MAIN
INIT:
MOV A,#00000001B
MOV P1,A
ACALL ENABLE
MOV A,#00111000B
MOV P1,A
ACALL ENABLE
MOV A,#00001111B
MOV P1,A
ACALL ENABLE
MOV A,#00000110B
MOV P1,A
ACALL ENABLE
MOV A,#00H
MOV P1,A
ACALL ENABLE
CLR EA
MOV TMOD,#20H
MOV TH1,#0F4H
MOV TL1,#0F4H
MOV PCON,#00H
SETB TR1
MOV SCON,#50H
KEYSCAN:MOV P2,#0F0H;ÏȶÁÁÐÔÙ¶ÁÐÐ
        MOV A,P2
        ANL A,#0F0H
                MOV R3,A
                MOV P2,#0FH
                MOV A,P2
                ANL A,#0FH
                ORL A,R3
                CJNE A,#0FFH,KEYPRO;¼ì²â¼üÖµÊÇ·ñ³É¹¦¶ÁÈë
                RET
KEYPRO: MOV R3,A
        MOV DPTR,#KEYVALUE
                MOV R4,#0FFH;´æ¼üÖµ±íµ½¼üÂë±íµÄÆ«ÒÆÁ¿
KEY1:   INC R4     ;ɨÃè¼üÂë±íÀïÃæµÄÊýÖµ
        MOV A,R4
                MOVC A,@A+DPTR
                CJNE A,03H,KEY1
                MOV A,R4
                MOV 30H,A
DELAY1: MOV R6,#60H;ÑÓʱ³ÌÐò
DE2:    MOV R7,#90H
        DJNZ R7,$
                DJNZ R6,DE2
                RET
ENABLE: CLR P0.5;дÃüÁî
        CLR P0.4
                CLR P0.3
                ACALL DELAY2
                SETB P0.3
                RET
DELAY2: MOV P1,#0FFH
        CLR P0.5
                SETB P0.4
                CLR P0.3
                NOP
                SETB P0.3
                JB P1.7,DELAY2
                RET
DELAY:
MOV R5,#10H;ÑÓʱ³ÌÐò
D1:
MOV R6,#30H
D2:   
MOV R7,#90H
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
KEYVALUE:DB 0E7H,0D7H,0B7H,077H,0EBH,0DBH,0BBH,07BH,0EDH,0DDH,0BDH,07DH,0EEH,0DEH,0BEH,07EH;¼üÂë¾ØÕó
TABLE2:  DB 30H,31H,33H,38H,64H,69H,61H,6EH,6BH,65H,79H,74H,67H,3CH,5FH,3EH
END

接收端
ORG 0000H
JMP START
ORG 0100H
START:
ACALL INIT
JMP BLOOP1
BLOOP1:  
JNB  RI,$         
CLR  RI
MOV  A,SBUF         
XRL  A,#0E1H      
JNZ  BLOOP1         
MOV  SBUF,#0E2H   
JNB  TI,$
CLR  TI  
MOV  R0,#40H
MOV  R6,#00H   
BLOOP2:   
JNB  RI,$
CLR  RI
MOV  A,SBUF
MOV  @R0,A
ADD  A,R6      
MOV  R6,A
JNB  RI,$        
CLR  RI
MOV  A,SBUF
XRL A,R6
JZ END1
MOV SBUF,#0FFH
JNB TI,$
CLR TI
SJMP BLOOP1
END1:
MOV SBUF,#00H
JNB TI,$
CLR TI
MOV P2,@R0
SETB RS               
CLR RW               
CLR E                  
ACALL DELAY            
SETB  E
ACALL DELAY1
JMP BLOOP1
INIT:
RS EQU P1.4            
RW EQU P1.3              
E EQU  P1.2
MOV P2,#00000001B      
ACALL  ENABLE            
MOV P2,#00111000B     
ACALL  ENABLE         
MOV P2,#00001111B     
ACALL  ENABLE         
MOV P2,#00000110B   
ACALL  ENABLE           
MOV P2,#00H
ACALL  ENABLE
CLR  EA
MOV  TMOD,#20H
MOV  TH1,#0F4H
MOV  TL1,#0F4H
MOV  PCON,#00H
SETB TR1
MOV  SCON ,#50H
RET
ENABLE: CLR RS                    
        CLR RW
        CLR E
                ACALL DELAY   
        SETB E
        RET
DELAY:  MOV P2,#0FFH
        CLR RS
        SETB RW
        CLR E
        NOP
        SETB E
        JB P2.7,DELAY      
        RET
DELAY1:
MOV R5,#10H;ÑÓʱ³ÌÐò
D1:
MOV R6,#30H
D2:   
MOV R7,#90H
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

乱码粘贴到keil中就好了


使用特权

评论回复
评论
sysharon 2020-5-3 22:36 回复TA
大佬们别理我,我就自娱自乐一下,自己水平太低。。。。。 
板凳
sysharon|  楼主 | 2020-5-4 19:40 | 只看该作者
caosix 发表于 2020-5-4 12:50
51 单片机,早就有 C语言 代码库了 。

我们学校学的还是汇编,留个代码方便一下学弟学妹吧,我自己做实验没有参考真的很难

使用特权

评论回复
地板
ningling_21| | 2020-5-4 20:59 | 只看该作者
sysharon 发表于 2020-5-3 22:35
发送端ORG 0000H
JMP START
ORG 0100H

不错

使用特权

评论回复
5
chongdongchen| | 2020-5-5 08:44 | 只看该作者
sysharon 发表于 2020-5-4 19:40
我们学校学的还是汇编,留个代码方便一下学弟学妹吧,我自己做实验没有参考真的很难 ...

楼主好样的,加油

使用特权

评论回复
6
人中狼| | 2020-5-5 09:02 | 只看该作者
最好程序能再加些注释说明

使用特权

评论回复
7
一路向北lm| | 2020-5-5 10:59 | 只看该作者
汇编也不错的

使用特权

评论回复
8
sysharon|  楼主 | 2020-5-6 20:34 | 只看该作者

好的!!!!

使用特权

评论回复
9
sysharon|  楼主 | 2020-5-6 20:35 | 只看该作者
人中狼 发表于 2020-5-5 09:02
最好程序能再加些注释说明

马上加上!!!

使用特权

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

本版积分规则

6

主题

32

帖子

0

粉丝