Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
ad.asm
Package: addd.rar [view]
Upload User: koyaalight
Upload Date: 2020-09-15
Package Size: 2k
Code Size: 4k
Category:
assembly language
Development Platform:
DOS
- ;**************************************************
- ; 平凡单片机工作室
- ; http://www.mcustudio.com
- ; Copyright 2003 pingfan's McuStudio
- ; All rights Reserved
- ;作者:周坚
- ;文件名:ad.asm
- ;DSB?1A型实验板与TLC1543的接口
- ;功能简介:每隔1s轮流将一个通道的值显示在数码管后4位,首位显示通道号
- ;**************************************************
- gCoun DATA 22H ;通道计数器
- ;以下定义各引脚
- ADCLK EQU P1.1 ;时钟
- ADaddr EQU P1.2 ;地址引脚
- ADDout EQU P1.3 ;数据端
- ADCS EQU P1.4 ;片选端
- Hidden DATA 10H ;消隐码
- Counter DATA 57H ;显示程序用计数器
- DISPBUF DATA 58H ;显示缓冲区首地址
- ORG 0000H
- JMP START
- ORG 000BH ;定时中断使用T0
- JMP DISP ;定时中断程序
- ORG 30H
- START:
- MOV SP,#5FH ;初始化
- MOV P1,#0FFH
- MOV P0,#0FFH
- MOV P2,#0FFH ;关所有LED及数码管
- MOV TMOD,#00000001B
- MOV TH0,#HIGH(65536-3000)
- MOV TL0,#LOW(65536-3000)
- SETB TR0
- SETB EA
- SETB ET0
- MOV Counter,#0 ;计数器清零
- MOV DISPBUF+1,#Hidden ;第2位显示器消隐
- MOV gCoun,#0 ;通道计数器清零,指向通道0
- LOOP:
- CALL Delay ;延时1s
- MOV R2,gCoun ;送通道号
- CALL ADConver
- MOV A,R0
- MOV R6,A
- MOV A,R1
- MOV R7,A
- CALL HB2
- ;调用二-十进制转换程序
- ;入口:待转换的双字节十六进制数在R6和R7中
- ;出口:转换结束的结果在R3、R4和R5中,压缩BCD码方式存储
- MOV A,R4
- ANL A,#0F0H
- SWAP A ;高低4位互换
- MOV DispBuf+2,A ;最高位
- MOV A,R4
- ANL A,#0FH
- MOV DispBuf+3,A
- MOV A,R5
- ANL A,#0F0H
- SWAP A
- MOV DispBuf+4,A
- MOV A,R5
- ANL A,#0FH
- MOV DispBuf+5,A
- ;以上程序段将压缩BCD码转换成非压缩BCD码并送显示缓冲区
- MOV DispBuf,gCoun ;将通道号送第1个显示器的显示缓冲区
- INC gCoun ;通道号加1
- MOV A,gCoun
- CJNE A,#11,LOOP ;判断是否到11了
- MOV gCoun,#0 ;到则回零
- JMP LOOP
- ;命令:ADConver
- ;参数:r2 通道号,转换前存入 转换结后数据在r0r1中,高位在前
- ;资源占用:r0,r1,r7,A
- ADConver:
- CLR ADClk
- CLR ADCS
- MOV A,R2
- RLC A
- ;送出地址信号
- MOV R7,#4
- C_L1:
- RLC A
- MOV ADAddr,C
- SETB ADClk
- NOP
- NOP
- NOP
- NOP
- CLR ADClk
- DJNZ R7,C_L1
- ;补6个脉冲
- MOV R7,#6
- C_L2:
- SETB ADClk
- NOP
- NOP
- NOP
- NOP
- CLR ADClk
- DJNZ R7,C_L2
- ;等待转换结束
- SETB ADCS
- NOP
- NOP
- NOP
- NOP
- CLR ADCS
- ;取高2位
- NOP
- NOP
- NOP
- NOP
- SETB ADDout
- SETB ADClk
- MOV C,ADDout
- MOV ACC.1,C
- CLR ADClk
- NOP
- NOP
- NOP
- NOP
- SETB ADDout
- SETB ADClk
- MOV C,ADDout
- MOV ACC.0,C
- CLR ADClk
- ANL A,#00000011B ;清A的高6位
- MOV R0,A ;保存数据
- MOV R7,#8
- C_L3:
- NOP
- NOP
- NOP
- NOP
- SETB ADDout
- SETB ADClk
- MOV C,ADDout
- MOV ACC.0,C
- RLC A
- CLR ADClk
- DJNZ R7,C_L3
- SETB ADCS
- MOV R1,A
- RET
- ;**********************************************************
- ;以下是显示程序,使用定时器T1作定时中断
- ;**********************************************************
- DISP: ;定时器T0的中断响应程序
- PUSH ACC ;ACC入栈
- PUSH PSW ;PSW入栈
- MOV TH0,#HIGH(65536-3000);定时时间为3000个周期
- MOV TL0,#LOW(65536-3000)
- MOV A,#DISPBUF ;显示缓冲区首地址
- ADD A,Counter
- MOV R0,A
- MOV A,@R0 ;根据计数器的值取相应的显示缓冲区的值
- MOV DPTR,#DISPTAB ;字形表首地址
- MOVC A,@A+DPTR ;取字形码
- MOV P0,A ;将字形码送P0位(段口)
- MOV A,Counter ;取计数器的值
- MOV R0,A
- MOV DPTR,#BitTab
- MOVC A,@A+DPTR ;取位
- ORL P2,#11111100B
- ANL P2,A
- INC Counter ;计数器加1
- MOV A,Counter
- CJNE A,#6,DISPEXIT
- MOV Counter,#0 ;如果计数器计到6,则让它回0
- DISPEXIT:
- POP PSW
- POP ACC
- RETI
- BitTab: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH
- DISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
- HB2: CLR A
- MOV R3,A
- MOV R4,A
- MOV R5,A
- MOV R2,#10H
- HB3: MOV A,R7
- RLC A
- MOV R7,A
- MOV A,R6
- RLC A
- MOV R6,A
- MOV A,R5
- ADDC A,R5
- DA A
- MOV R5,A
- MOV A,R4
- ADDC A,R4
- DA A
- MOV R4,A
- MOV A,R3
- ADDC A,R3
- MOV R3,A
- DJNZ R2,HB3
- RET
- Delay:
- MOV R7,#10
- D1: MOV R6,#250
- D2: MOV R5,#200
- DJNZ R5,$
- DJNZ R6,D2
- DJNZ R7,D1
- RET
- end