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

📄 80c_pio.asm

📁 用并口通信时,只需发送仿真软件的十六进制显示窗口的第四个字节后的所有数据。 如:清全屏的十六进制显示窗口是55AA0001434C42,采用并口通信时只需发送434C42
💻 ASM
📖 第 1 页 / 共 2 页
字号:
  	MOV   P1,#044H                ;发送显示直线指令高字节
  	CALL  EETASK
  	MOV   P1,#04CH                ;发送显示直线指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;X轴终点坐标高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;X轴终点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;Y轴终点坐标高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;Y轴终点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;直线宽度高字节
  	CALL  EETASK
  	MOV   P1,#002H                ;直线宽度低字节
  	CLR   END0             ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;********************************************************************
;显示位图子程序
DISN:	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#044H                ;发送显示位图指令高字节
  	CALL  EETASK
  	MOV   P1,#053H                ;发送显示位图指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;位图X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;显示第0幅位图
  	CLR   END0              ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;******************************************************************
;自动显示位图子程序
DISN1: 	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#05AH                ;发送自动显示位图指令高字节
  	CALL  EETASK
  	MOV   P1,#044H                ;发送自动显示位图指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;位图X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#000H                ;位图Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H
  	CALL  EETASK
  	MOV   P1,#002H                ;逐幅显示0-2幅位图
  	CALL  EETASK

  	MOV   P1,#006H                ;时间间隔06H
  	CLR   END0            ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;**************************************************************
;反色矩形子程序
DISFS:	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#043H                ;发送反色矩形指令高字节
  	CALL  EETASK
  	MOV   P1,#04EH                ;发送反色矩形指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;矩形Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#03CH                ;矩形Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形长度高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形长度低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形宽度高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形宽度低字节
  	CLR   END0         ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;**********************************************************
;矩形清除子程序
DISCLR: CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#043H                ;发送矩形清除指令高字节
  	CALL  EETASK
  	MOV   P1,#058H                ;发送矩形清除指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;矩形Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#03CH                ;矩形Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形长度高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形长度低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;矩形宽度高字节
  	CALL  EETASK
  	MOV   P1,#064H                ;矩形宽度低字节
  	CLR   END0              ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;****************************************************************
;设置时间子程序
SETTIME:
  	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#053H                ;发送设置时间指令高字节
  	CALL  EETASK
  	MOV   P1,#054H                ;发送设置时间指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#004H                ;2004年
  	CALL  EETASK
  	MOV   P1,#008H                ;8月
  	CALL  EETASK
  	MOV   P1,#01AH                ;26日
  	CALL  EETASK
  	MOV   P1,#0C0H                ;13时
  	CALL  EETASK
  	MOV   P1,#003H                ;3分
  	CALL  EETASK
  	MOV   P1,#000H                ;0秒
  	CALL  EETASK

  	MOV   P1,#001H                ;星期
  	CLR   END0               ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;******************************************************************
;显示时间子程序
TIME:	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#044H                ;发送显示时间指令高字节
  	CALL  EETASK
  	MOV   P1,#054H                ;发送显示时间指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#003H ;以方式3显示(共有6种显示方式,01H,02H,03H,11H,12H,13H)
  	CLR   END0                    ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;*********************************************************************
;关闭时间显示子程序
TIME1:	CALL  REBUY                   ;查忙
  	SETB  RWA
  	MOV   P1,#044H                ;发送显示时间指令高字节
  	CALL  EETASK
  	MOV   P1,#054H                ;发送显示时间指令低字节
  	CALL  EETASK

  	MOV   P1,#0E0H                ;发送前景颜色E0H指令
  	CALL  EETASK
  	MOV   P1,#01FH                ;发送背景颜色1FH指令
  	CALL  EETASK

  	MOV   P1,#000H                ;X轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;X轴起点坐标低字节
  	CALL  EETASK
  	MOV   P1,#000H                ;Y轴起点坐标高字节
  	CALL  EETASK
  	MOV   P1,#005H                ;Y轴起点坐标低字节
  	CALL  EETASK

  	MOV   P1,#000H                ;00H不显示时间.
  	CLR   END0         ;END0为低电平,表示写最后一个数据
  	CALL  EETASK
  	SETB  END0
  	RET
;*******************************************************
JUDG:	NOP
  	CALL  REBUY
  	CLR   RWA
  	CALL  EETASK
  	MOV   JUDE,P1
  	RET
;*******************************************************
;读时间子程序(读出来的时间是上回调用TIME子程序的时间)
RETIME:	NOP
  	CALL  REBUY                   ;查忙
  	CLR   RWA
  	CALL  EETASK
  	MOV   JUDE,P1
  	CALL  EETASK
  	MOV   Year,P1                 ;年
  	CALL  EETASK
  	MOV   Mon,P1                  ;月
  	CALL  EETASK
  	MOV   Day,P1                  ;日
  	CALL  EETASK
  	MOV   Hour,P1                 ;时
  	CALL  EETASK
  	MOV   Min,P1                  ;分
  	CALL  EETASK
  	MOV   Sec,P1                  ;秒
  	CALL  EETASK

  	MOV   Date,P1                 ;星期
  	CLR   END0              ;END0为低电平,表示读最后一个数据
  	CALL  EETASK
  	SETB  END0
  	SETB  RWA
  	RET
;***********************************************************
;产生使能信号
EETASK:	CLR   EE
  	SETB  EE
  	NOP
  	NOP                ;经过测试用89C51,12MHz时需加入3个NOP空指令。
			   ;89C51,22MHz时需加入5个NOP空指令。
  	NOP                ;其它型号的单片机需适当调节这里的延时,
;  	NOP
;  	NOP
  	RET
;*************************************************
;延时子程序
DELAY:
  	MOV   R5,#0
  	MOV   R6,#0
  	MOV   R7,#1
DEL:
  	DJNZ  R5,DEL
  	DJNZ  R6,DEL
  	DJNZ  R7,DEL
  	RET
DEL2S:
  	MOV   R5,#0
  	MOV   R6,#0
  	MOV   R7,#10
D2S:
  	DJNZ  R5,D2S
  	DJNZ  R6,D2S
  	DJNZ  R7,D2S
  	RET

	END

⌨️ 快捷键说明

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