2020-03-03 05:50:59 来源:范文大全收藏下载本文
北京交通大学微机原理与接口技术综合实践说明书
附件一:硬件电路原理图
VCCE110UF/25VU1VCC9R18.2KR144.7KDS321DS18B2031P12P13P14P15P16P171234567889C51RESETP10P11P12P13P14P15P16P17EA/VPP20RDWRALE/PAD1123VCC19C130PCRY11.0592C2RXDPSENT0INT0T1INT11U28155P00P01P02P03P04P05P06P0739383736353433322117163012131415161718197910116X1P25P26P27P21P2218TXDU4A7407U4C7407U4E7407U5A7407236910132U4B7407U4D7407U4F7407VCC4128345612780.1K*7PRADGBCEFAD0AD1AD2AD3AD4AD5AD6AD7IO/MRDWRALETMROUTTMRINCEPB0PB1PB2PB3PB4PB5PB6PB7PA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC22930313233343536511121222324GLE1FGLE2FGLE3FGLE4FGLE5FAAAAAA874CZZ3BBBBB101010101010326272822232425E2VCC8272837PC038PC139PC2125PC3PC4PC5987698769876987698769ZZZZZFFFFFGFGAGAGAGAGAACpDBBBBBP23P24VCCGND30PX240RESETPC3PC4PC5CpDCpDCpDCpDCpD1415121329111020410UFDDDDD123451234512345123451234512EDEZEZEZEZEZELE1DELE2DELE3DELE4DELE5DCCCC1KU6R22.2KK1U3AR30.1KE34.7UFVCC74LS1412P12PC01275452U12A3LE1775452U12B5LE2275452U13A3LE3LED8U7LED8U8LED8U9LED8U10LED8U11LED8PC16CR10PC2ELE6DVCC1R42.2KK2U3BR50.1KE44.7UFVCCVCCF174LS1434P13PC367U13B5LE4PC412U14A3LE5PC567U14B5LE6754527545275452VCCR62.2KK3U3CR70.1K74LS14E54.7UFVCCR120.1K56P14P16R113KT19013FMQ-3VAD212E747UFC30.1UFC40.01UFC50.01UFR82.2KK4U3DR90.1KE64.7UF74LS1498P15P1713U3F74LS1412L1R130.3KVCC5B6B26GLE6F25
北京交通大学微机原理与接口技术综合实践说明书
源程序清单
TL
EQU 30H
;DS18B20温度传感器的第一个字节
TH
EQU 31H
;DS18B20温度传感器的第二个字节
TEM EQU 32H
;温度值
TMIN
EQU
33H
;温度下限
TMAX EQU
34H
;温度上限
BZ1
BIT
00H
;标志位1
BIT01
EQU
20H
BIT02
EQU
21H
BZ2 EQU
22H
BZ3
EQU
23H
DQ
BIT
P1.0
主程序
ORG
0000H MAIN: MOV SP,#70H
MOV A,#00H
MOV P1,A
MOV TMIN,#0FH
MOV TMAX,#28H
MOV BZ2,#00H
MOV BZ3,#00H
LOOP: LCALL
GET_TEMPER
LCALL
TEMPER
LCALL
KEY
MOV
A,BZ3
JNZ
NEXT
LCALL
WARN
NEXT: LCALL
DISPLAY
LJMP
LOOP
;温度获得程序
ORG
0100H GET_TEMPER:
LCALL INIT
JB
BZ1,S22
LJMP
GET_TEMPER S22: MOV
A,#0CCH
LCALL WRITE
MOV
A,#44H
LCALL WRITE
NOP GET01: LCALL INIT
JB
BZ1, GET02
;标志位2 ;标志位3 ;蜂鸣器发光二极管复位(低电平) ;给上限赋值
;给下限赋值 ;按健1标志位 ;按键4标志位
;读取此时的温度值
;把DS18B20传来温度转化为单个值
;调用键盘程序
;若BZ3为1,则跳转NEXT ;调用报警子程序
;调用显示程序 ;主程序循环 ;若BZ为一,则跳转S22 ;跳过ROMA匹配 ;发启动转换命令 2
北京交通大学微机原理与接口技术综合实践说明书
LJMP GET01 GET02: MOV A,#0CCH
;跳过ROM匹配
LCALL WRITE
MOV A,#0BEH
;发出读温度命令
LCALL WRITE
LCALL READ
;采集温度
RET
;初始化DS18B20
ORG
0200H INIT: SETB
DQ
;定时入口
NOP
CLR
DQ
MOV
R0, #0F0H
DJNZ
R0, $
;480?s复位脉冲(低电平)
SETB
DQ
MOV
R0, #1EH
DJNZ
R0, $
;等待60?s
JNB
DQ, INI1
;检测到低电平则置标志位
LJMP
INI2 INI1: SETB
BZ1
;置标志位,DS18B20存在
LJMP
INI3 INI2: CLR
BZ1
;清标志位,DS1B820不存在
LJMP
INI4 INI3: MOV
R0, #36H
DJNZ
R0, $
;低电平持续108?s INI4: SETB
DQ
RET
写DS18B20
ORG
0300H WRITE: MOV R2,#08H
;循环8次写入一个字节
CLR C WR1: CLR DQ
;数据线变低电平产生写起始信号
MOV R3,#03H
DJNZ R3,$
;低电平持续6s
RRC A
;写入位从A移到Cy
MOV DQ,C
;命令字按位依次送DS18B20
MOV R3,#0FH
DJNZ R3,$
;写过程持续30s
SETB DQ
DJNZ R2,WR1
RET
读DS18B20的程序,从DS18B20中读出两个字节的数据
ORG
0400H
北京交通大学微机原理与接口技术综合实践说明书
READ: MOV R4,#02H
;将温度高位和低位元从DS18B20中读出
MOV R0,#TL
;低位元存入TL,高位存入TH RE00: MOV R2,#08H
;循环8次读一字节 RE01: CLR C
SETB DQ
NOP
NOP
;高电平持续2s
CLR DQ
NOP
NOP
NOP
;数据线低电平3s
SETB DQ
;数据线升高电平产生读起始信号
MOV R5, #04H
DJNZ R5, $
;等待8s
MOV C, DQ
MOV R3, #0CH
DJNZ R3, $
;读周期持续24s
RRC A
;读取数据移入A
DJNZ R2, RE01
MOV @R0, A
;读完1字节数据移入A
INC
R0
DJNZ R4, RE00
;读入2字节
RET
将从DS18B20中读出的温度数据进行转换
ORG
0500H TEMPER: MOV
A, #0F0H
ANL A, TL
;低字节高4位存入A
SWAP A
;A中高低四位互换
MOV TEM, A
MOV A, TL
;TL低四位移入A
JNB ACC.3,TEMPER01 ;去小数部分取整数
INC
TEM
;对小数部分四舍五入 TEMPER01:MOV A, TH
ANL A, #07H
;高字节低四位移入A
SWAP A
;高低四位互换
ORL A, TEM
;实际温度高低四位装配
MOV TEM,A
;把DB18B20采集温度送TEM
RET
;比较子程序
ORG
0600H WARN: CLR
C
MOV A, TEM
SUBB A,TMIN
;把现在的温度与下限比较
北京交通大学微机原理与接口技术综合实践说明书
JC
LIGHT
MOV A, TEM
SUBB
A,TMAX
;把现在的温度与上限比较
JNC ALARM FH: RET ALARM:SETB P1.6
;开启蜂鸣器
SJMP FH LIGHT: SETB P1.7
SJMP FH
按键子程序
ORG
0700H KEY: MOV A, #3FH
MOV P1, A
MOV A,P1
JB
ACC.2,KEY1
JB
ACC.3,KEY2
JB
ACC.4,KEY3
JB
ACC.5,KEY4 DONE: RET KEY1: INC
TMAX
LCALL
WARN
LCALL
DISPLAY
AJMP
DONE KEY2: DEC
TMAX
LCALL
WARN
LCALL
DISPLAY
AJMP
DONE KEY3: INC
TMIN
LCALL
WARN
LCALL
DISPLAY
AJMP
DONE KEY4:DEC
TMIN
LCALL
WARN
LCALL
DISPLAY
AJMP
DONE ;显示子程序
ORG
1000H DISPLAY:MOV DPTR, #0100H
MOV A, #0EH
MOVX @DPTR, A
MOV R5, #0FH
LOOP1: MOV R2, #01H
MOV A, TMAX
ACALL FB
ACALL DIR
;开启二极管发光 ;扫描键盘 ;按健1按下则调用KEY1 ;按健2按下则调用KEY2 ;按健3按下则调用KEY3 ;按健4按下则调用KEY4 ;LED端口地址赋给程序 ;方式控制字送A ;温度循环显示15次 显示温度上限值 5
;北京交通大学微机原理与接口技术综合实践说明书
MOV
A, TEM
;显示当前温度值
ACALL
FB
ACALL
DIR
MOV
A, TMIN ;显示温度下限值
ACALL
FB
ACALL
DIR
DJNZ
R5, LOOP1
RET
;将温度值转换为BCD码
ORG
1100H FB: MOV
B,#0AH
;分半程序
DIV
AB
MOV
BIT01,A
MOV
BIT02,B
RET
ORG
1200H DIR: MOV
R0,#BIT01
MOV
A,R2
MOV
R3,#02H LD0: MOV
DPTR,#0103H ;C口地址送DPTR
MOVX
@DPTR,A
;字位码送C口
MOV
DPTR,#0102H ;B口地址送DPTR
MOV
A,@R0
;地址偏移量送A
ADD
A,#0CH
;修正A地址
MOVC
A,@A+PC
;查字形码表 DIR1: MOVX
@DPTR, A
;字形码送B口
MOV
R7,#02H
;设定延时时间
ACALL DL
;延时1ms
INC
R0
;修正显示缓冲区指针
MOV
A, R2
;字位码送A
RL
A
;显示下一位
MOV
R2, A
DJNZ
R3, LD0
RET DSEG0: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH DSEG1: DB 7DH, 07H, 7FH, 6FH, 77H, 7CH DSEG2: DB 39H, 5EH, 79H, 71H, 73H, 21H DSEG3: DB 31H, 6EH, 40H, 3EH, 00H, 00H DL: MOV
R6, #0FFH DL6: DJNZ
R6, DL6
DJNZ
R7, DL
RET
END
人人范文网 m.inrrp.com.cn 手机版