基于AT89C51单片机和DS18B20温度传感器、LCD1602液晶显示的数字温度计 汇编程序及电路图

全部回答3
默认 最新
  • 邮箱给我,给你发去。
    0 点赞
  • 偷懒!!!
    0 点赞
  • 只是LCD1602的代码;多功能51单片机开发板;LCD1602测试程序RS EQU P2.0 RW EQU P2.1 E EQU P2.2 LDATA EQU P1 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV R0,#00H ;R0:每行显示字符的个数 MOV R1,#80H ;寄存器地址 MOV A,#38H ;设置显示(16×2) ACALL WIR MOV A,#0EH ;开显示,显示光标,光标不闪烁 ACALL WIR MOV A,#06H ;整屏显示不移动 ACALL WIR MOV A,#01H ;显示清屏 ACALL WIR MOV DPTR,#LCD LOOP0: MOV A,R1 ;写地址 ACALL WIR INC R1 ;地址加一 CJNE R1,#90H,TT ;判断第一行写完没有 MOV R1,#0C0H ;若写完,R1=第二行地址 TT: MOV A,R0 MOVC A,@A+DPTR ACALL WDR INC R0 ;计数R0加1 LCALL DELAY1 CJNE R0,#20H,LOOP0 ;R1不等于32则继续 RE: AJMP RE WIR: ACALL BUSY ;写指令寄存器子程序 CLR E ;初始化 CLR RS CLR RW SETB E MOV LDATA,A CLR E RET WDR: ACALL BUSY ;写数据寄存器子程序 CLR E SETB RS CLR RW SETB E MOV LDATA,A CLR E RET BUSY: PUSH ACC ;检测忙信号子程序 ISBUSY:CLR E CLR RS SETB RW SETB E MOV A,LDATA JB ACC.7,ISBUSY ;ACC.7=1,说明忙 POP ACC ACALL DELAY1 RET DELAY1:MOV R6,#5 ;延时子程序 D0: MOV R7,#248 DJNZ R7,$ DJNZ R6,D0 RET DELAY2:MOV R5,#2 D1: MOV R3,#245 D2: MOV R4,#245 DJNZ R4,$ DJNZ R3,D2 DJNZ R5,D1 RET LCD:DB ' MCS-51 TEST ' DB ' Xu Rui Feng ' END
    0 点赞

没有更多内容了

返回顶部
产品求购 求购