1、温度测控与报警系统汇编程序西安邮电学院测控仪器课程设计报告书(程序)题目:温度测控与报警系统院部名称:自动化学院学生姓名:专业名称:班 级:时间: *;温度传感器在P3.6;数据经P0.03输出到译码器,位数选择经P0.47输出到译码器*/Start_NUM_Byte EQU 50HTemp_LByte EQU 40HTemp_HByte EQU 41HTemperatureI EQU 62HTemperatureD EQU 63HTemperatureMAXI EQU 64HTemperatureMAXD EQU 66HTemperatureMINI EQU 67HTemperatureMI
2、ND EQU 68HTemp_COMP_Tag EQU 20H.1Exist_Tag EQU 20H.0BEEP_Bit bit P3.7TEMP_PIN bit P3.6DISP_PORT EQU P0 ;高4位为数码管位数ORG 0000H LJMP MAINORG 000BH LJMP TIMER0ORG 0080H;-MAIN: ;LCALL Test_Bit ;LCALL Test_NUM MOV TemperatureMAXI,#30 ;温度设定25.5=正常1us间隙发送下1位 -*/ WriteABit: PUSH B CLR TEMP_PIN ; 写开始 MOV B,#3 ;
3、 2+3*2 = 8us DJNZ B,$ MOV TEMP_PIN,C ;C内容到总线 MOV B,#28 ;等待56Us DJNZ B,$ POP B SETB TEMP_PIN ;释放总线 RET /*- 读1位, 15us内由下降、上升沿两个信号触发读 PIN =0;Delay = 510us, PIN = 1; -开始 PIN = 0/1(data);Delay = 70us -输出 Delay = 2us -保持1us间隙发送下1位 -*/ Read_Byte: ;读一个字节程序 MOV R5,#8 READ_A_BIT: LCALL ReadABit RRC A DJNZ R5,
4、READ_A_BIT RET ReadABit: PUSH B PUSH ACC SETB TEMP_PIN ;先复位至少1US产生读起始信号 NOP NOP CLR TEMP_PIN NOP NOP SETB TEMP_PIN ;置位DAT准备接收数据 MOV B,#10 ;等待数据准备好(60us内) 2+10*2 = 22us DJNZ B,$ MOV C,TEMP_PIN MOV B,#15 ;等待32us + 10 + 22 + 2=总66us DJNZ B,$ SETB TEMP_PIN POP ACC POP B RET;*数码管* /*- dispNum *-*/ DispNu
5、m: MOV R0,#Start_NUM_Byte MOV R1,#0H ST_NUM_Dsp: MOV A,R0 ;从Start_NUM_Byte开始读取数据,如果高字节大于0则结束。 MOV R5,A ;用R5暂时保存数据,然后获取高4位,低4位input R5 ANL A,#0F0H JNZ EXIT_DSP MOV A, R5 ANL A,#0FH SWAP A ORL A,R1 SWAP A MOV DISP_PORT,A ;开始显示数据, ACALL T1MS INC R1 INC R0 AJMP ST_NUM_Dsp EXIT_DSP: RET T1MS: mov r5,#00h
6、 ;延时子程序 tt889: mov r6,#9 djnz r6,$ djnz r5,tt889 ret /*- test Bit *-*/ Test_bit: MOV A,#11111110b TTT:MOV P0,A RL A ACALL DELAY AJMP TTT RET /*- SetNum *-*/ SetNum: MOV R0,#Start_NUM_Byte MOV R0,#01H INC R0 MOV R0,#02H INC R0 MOV R0,#03H INC R0 MOV R0,#0CH INC R0 MOV R0,#05H INC R0 MOV R0,#0F0H RET
7、/*- Test Num *-*/ Test_NUM: MOV R0,#0 MOV DPTR,#Num_TABLE TTT_NUM: MOV A,R0 MOVC A,A+DPTR JNZ Next_NUM MOV R0,#0 AJMP TTT_NUM Next_NUM: MOV P0,A inc R0 ACALL DELAY AJMP TTT_NUM RET ;- DELAY: MOV R5, #10 DEL1: MOV R7,#200 DEL2: MOV R6,#200 DJNZ R6,$ DJNZ R7,DEL2 DJNZ R5,DEL1 RET /*- Beep:时间参数在A中,时间为A
8、*256*256*12/f f(时钟频率),输出引脚在头部定义 A中低4位为延时,高4位为声音频率 0=高音,1=中;2=高 -*/ BEEP: PUSH 05h PUSH 06h PUSH 07h MOV R5,A ANL A,#0FH XCH A,R5 ANL A,#0F0H SWAP A BEEP_1: MOV R6,#050H BEEP_2: MOV R7,#05FH BEEP_3: CJNE A,#0, NextF1 CPL BEEP_Bit NextF1: DJNZ R7,BEEP_3 CJNE A,#1, NextF2 CPL BEEP_Bit NextF2: DJNZ R6,BEEP_2 CJNE A,#2, NextF3 CPL BEEP_Bit NextF3: DJNZ R5,BEEP_1 POP 07h POP 06h POP 05h RET;-Num_TABLE: DB 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h,00H ;DB 00101000b,01111110b,10100010b,01100010b,01110100b,01100001b,00100001b,01111010b,00100000b,01100000b,00H;-END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1