⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 51--spi.c

📁 51 模拟SPI 51 模拟SPI 51 模拟SPI 51 模拟SPI
💻 C
字号:
data_len   equ    0ch      ;温度数据长度
data_buf   equ    50h      ;温度数据缓冲区

;虚拟引脚定义(For SPI BUS)
vcs        equ    p1.0     ;片选线
vio        equ    p1.1     ;数据线
vsc        equ    p1.2     ;时钟线

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;================================================
;模块GetData               ;参数:无参数
                           ;功能:用spi总线从LM74温度传感器读取温度数据
                           ;返回:无
GetData:
       clr ea
       clr vcs
       setb vio
       mov r1,#08h
       clr vsc             ;读符号位
       nop
       nop
       nop
       setb vsc
       nop
       nop
       nop
       mov f0,vio
read_bite:                 ;读数据
       clr vsc
       nop
       nop
       nop
       setb vsc
       nop
       nop
       nop
       mov c,vio
       rlc a
       djnz r1,read_bite
       setb vcs
                         ;转换数据
       mov data_buf+1,#2bh ;'+'
       jnb f0,fill_data
       dec a
       cpl a
       mov data_buf+1,#2bh ;'-'
fill_data:
       mov data_buf+2,#30h
       mov data_buf+3,#30h
       mov data_buf+4,#30h
       mov data_buf+5,#0a1h       ;℃-l
       mov data_buf+6,#0e6h       ;℃-h
       mov data_buf+7,#3bh        ;;
       mov data_buf+8,#20h        ;
       mov data_buf+9,#30h        ;
       mov data_buf+10,#30h       ;
       mov data_buf+11,#31h       ;
       mov data_buf+12,#7ch       ;|

       mov r0,#data_buf+4
divide_data:
       mov b,#0ah
       div ab
       mov r1,a
       mov a,b
       add a,#30h
       mov @r0,a
       dec r0
       mov a,r1
       jnz divide_data
       mov data_buf,#data_len
       setb ea
       ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -