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

📄 pcf8591-da-lcd1602-asm.lst

📁 89S52单片机做的A/D,D/A的实验的源程序PCF8591 D/A CONVERTER */ /* */ /* LCD1602显示 */ /* 参考电压接至5V电源 */ /* 最小输出电
💻 LST
📖 第 1 页 / 共 4 页
字号:
A51 MACRO ASSEMBLER  PCF8591_DA_LCD1602_ASM                                               12/20/2006 22:57:40 PAGE     1


MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN PCF8591-DA-LCD1602-ASM.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE PCF8591-DA-LCD1602-ASM.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     ;*******************************************************************
                       3     ;*                                                                 *
                       4     ;* ME500单片机开发系统演示程序 - PCF8591 D/A CONVERTER             *
                       5     ;*                                                                 *
                       6     ;* LCD1602 显示                                                    *
                       7     ;*                                                                 *
                       8     ;*   K2-D/A CHOOSE                                                *
                       9     ;* K3-ENTER  K4-EXIT                                               *
                      10     ;*                                                                 *
                      11     ;* 版本: V1.0 (2006/11/20)                                        *
                      12     ;* 作者: gguoqing (Email: gguoqing@willar.com)                    *
                      13     ;* 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界) *
                      14     ;* 时间: 2006/07/01                                               *
                      15     ;*                                                                 *
                      16     ;*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved  *
                      17     ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!       *
                      18     ;*                                                                 *
                      19     ;*******************************************************************
                      20     
  00B7                21               BEEP  EQU   P3.7       ;蜂鸣器
  0094                22               K1    EQU   P1.4       ;K1键
  0095                23               K2    EQU   P1.5       ;K2键
  0096                24               K3    EQU   P1.6       ;K3键
  0097                25               K4    EQU   P1.7       ;K4键
                      26     
  0090                27               SCL   EQU   P1.0       ;PCF8591时钟线
  0093                28               SDA   EQU   P1.3       ;PCF8591数据线
                      29     
  00A0                30               LCD_RS  EQU  P2.0      ;LCD 数据/命令选择端
  00A1                31               LCD_RW  EQU  P2.1      ;LCD 读/写选择端
  00A2                32               LCD_EN  EQU  P2.2      ;LCD 使能信号
  006F                33               LCD_X   EQU  6FH       ;LCD 地址变量
  0080                34               LCD_DATA  EQU   P0     ;LCD 数据端口
                      35     
  0040                36               DACOM    EQU   40H     ;D/A的控制命令
                      37     ;==========================================================
                      38     
0000                  39                 ORG  0000H
0000 802E             40                 JMP  MAIN
0030                  41                 ORG  0030H
                      42     
                      43     ;==========================================================
0030                  44     MAIN:
0030 758170           45                 MOV  SP,#70H
0033 7580FF           46                 MOV  P0,#0FFH
0036 75A0FF           47                 MOV  P2,#0FFH
0039 1200F8           48                 LCALL  SET_LCD1          ;显示启动画面
003C 7D32             49                 MOV  R5,#50
003E                  50     START:
003E 120292           51                 LCALL  DELAY             ;延时5s
0041 DDFB             52                 DJNZ  R5,START
0043                  53     START1:
0043 12012F           54                 LCALL  SET_LCD2          ;显示工作画面
0046                  55     START2:
0046 2095FD           56                 JB  K2,START2
0049 120276           57                 LCALL  BEEP_BL
004C 3095FD           58                 JNB  K2,$
A51 MACRO ASSEMBLER  PCF8591_DA_LCD1602_ASM                                               12/20/2006 22:57:40 PAGE     2

004F 120054           59                 LCALL  DA_OUT
0052 80EF             60                 JMP  START1
                      61     
                      62     ;==========================================================
                      63     
                      64     ;D/A 转换子程序
                      65     
                      66     ;==========================================================
0054                  67     DA_OUT:
0054 120166           68                 LCALL  SET_LCD4
0057 C201             69                 CLR  20H.1            ;K4健(退出)有效标志
                      70     ;----------------------------------------------------------
                      71     ;正弦波输出
                      72     ;----------------------------------------------------------
0059                  73     SINE1:
0059 309510           74                 JNB K2,SQUARE0
005C 2096FA           75                 JB  K3,SINE1
005F 120276           76                 LCALL  BEEP_BL
0062                  77     SINE2:
0062 200104           78                 JB  20H.1,SINE_END
0065 51C1             79                 ACALL  SINE
0067 80F9             80                 JMP  SINE2
0069                  81     SINE_END:
0069 C201             82                 CLR  20H.1
006B 22               83                 RET
                      84     ;----------------------------------------------------------
                      85     ;方波输出
                      86     ;----------------------------------------------------------
006C                  87     SQUARE0:
006C 90019D           88                 MOV  DPTR,#INFOA   ;指针指到显示信息9
006F 7402             89                 MOV  A,#2          ;显示在第二行
0071 510F             90                 CALL  LCD_SHOW
0073 120276           91                 LCALL  BEEP_BL
0076 3095FD           92                 JNB  K2,$
0079                  93     SQUARE1:
0079 309511           94                 JNB K2,TRIANGLE0
007C 2096FA           95                 JB  K3,SQUARE1
007F 120276           96                 LCALL  BEEP_BL
0082                  97     SQUARE2:
0082 200105           98                 JB  20H.1,SQUARE_END
0085 1203DF           99                 LCALL  SQUARE
0088 80F8            100                 JMP  SQUARE2
008A                 101     SQUARE_END:
008A C201            102                 CLR  20H.1
008C 22              103                 RET
                     104     ;----------------------------------------------------------
                     105     ;三角波输出
                     106     ;----------------------------------------------------------
008D                 107     TRIANGLE0:
008D 9001AE          108                 MOV  DPTR,#INFOB   ;指针指到显示信息A
0090 7402            109                 MOV  A,#2          ;显示在第二行
0092 510F            110                 CALL  LCD_SHOW
0094 120276          111                 LCALL  BEEP_BL
0097 3095FD          112                 JNB  K2,$
009A                 113     TRIANGLE1:
009A 309511          114                 JNB  K2,ECHELON0
009D 2096FA          115                 JB   K3,TRIANGLE1
00A0 120276          116                 LCALL  BEEP_BL
00A3                 117     TRIANGLE2:
00A3 200105          118                 JB  20H.1,TRIANGLE_END
00A6 120400          119                 LCALL  TRIANGLE
00A9 80F8            120                 JMP  TRIANGLE2
00AB                 121     TRIANGLE_END:
00AB C201            122                 CLR  20H.1
00AD 22              123                 RET
                     124     ;----------------------------------------------------------
A51 MACRO ASSEMBLER  PCF8591_DA_LCD1602_ASM                                               12/20/2006 22:57:40 PAGE     3

                     125     ;梯形波输出
                     126     ;----------------------------------------------------------
00AE                 127     ECHELON0:
00AE 9001BF          128                 MOV  DPTR,#INFOC   ;指针指到显示信息B
00B1 7402            129                 MOV  A,#2          ;显示在第二行
00B3 510F            130                 CALL  LCD_SHOW
00B5 120276          131                 LCALL  BEEP_BL
00B8 3095FD          132                 JNB K2,$
00BB                 133     ECHELON1:
00BB 309511          134                 JNB K2,SAWTOOTH0
00BE 2096FA          135                 JB  K3,ECHELON1
00C1 120276          136                 LCALL  BEEP_BL
00C4                 137     ECHELON2:
00C4 200105          138                 JB  20H.1,ECHELON_END
00C7 12042E          139                 LCALL  ECHELON
00CA 80F8            140                 JMP  ECHELON2
00CC                 141     ECHELON_END:
00CC C201            142                 CLR  20H.1
00CE 22              143                 RET
                     144     ;----------------------------------------------------------
                     145     ;锯齿波输出
                     146     ;----------------------------------------------------------
00CF                 147     SAWTOOTH0:
00CF 9001D0          148                 MOV  DPTR,#INFOD   ;指针指到显示信息C
00D2 7402            149                 MOV  A,#2          ;显示在第二行
00D4 510F            150                 CALL  LCD_SHOW
00D6 120276          151                 LCALL  BEEP_BL
00D9 3095FD          152                 JNB  K2,$
00DC                 153     SAWTOOTH1:
00DC 309514          154                 JNB  K2,DA_OUT_END
00DF 2096FA          155                 JB  K3,SAWTOOTH1
00E2 120276          156                 LCALL  BEEP_BL
00E5 3095FD          157                 JNB  K2,$
00E8                 158     SAWTOOTH2:
00E8 200105          159                 JB  20H.1,SAW_END
00EB 120465          160                 LCALL  SAWTOOTH
00EE 80F8            161                 JMP  SAWTOOTH2
00F0                 162     SAW_END:
00F0 C201            163                 CLR  20H.1
00F2 22              164                 RET
00F3                 165     DA_OUT_END:
00F3 120276          166                 LCALL  BEEP_BL
00F6 0154            167                 JMP  DA_OUT
                     168     
                     169     ;==========================================================
                     170     
                     171     ;  LCD 初始化显示子程序
                     172     
                     173     ;==========================================================
                     174     
00F8                 175     SET_LCD1:
00F8 C2A2            176               CLR  LCD_EN
00FA 31E1            177               CALL  INIT_LCD     ;初始化 LCD
00FC 5106            178               CALL  DELAY1
00FE 90010D          179               MOV  DPTR,#INFO1   ;指针指到显示信息1
0101 7401            180               MOV  A,#1          ;显示在第一行
0103 510F            181               CALL  LCD_SHOW
0105 90011E          182               MOV  DPTR,#INFO2   ;指针指到显示信息2
0108 7402            183               MOV  A,#2          ;显示在第二行
010A 510F            184               CALL  LCD_SHOW
010C 22              185               RET
                     186     
010D 20202020        187     INFO1:  DB  "    PCF-8591    ",0  ;LCD 第一行显示信息
0111 5043462D                
0115 38353931                
0119 20202020                
A51 MACRO ASSEMBLER  PCF8591_DA_LCD1602_ASM                                               12/20/2006 22:57:40 PAGE     4

011D 00                      
                     188     
011E 20204441        189     INFO2:  DB  "  DA CONVERTER  ",0  ;LCD 第二行显示信息
0122 20434F4E                
0126 56455254                
012A 45522020                
012E 00                      
                     190     
                     191     ;==========================================================
012F                 192     SET_LCD2:
012F C2A2            193               CLR  LCD_EN
0131 31E1            194               CALL  INIT_LCD     ;初始化 LCD
0133 5106            195               CALL  DELAY1
0135 900144          196               MOV  DPTR,#INFO3   ;指针指到显示信息1
0138 7401            197               MOV  A,#1          ;显示在第一行
013A 510F            198               CALL  LCD_SHOW
013C 900155          199               MOV  DPTR,#INFO4   ;指针指到显示信息2
013F 7402            200               MOV  A,#2          ;显示在第二行
0141 510F            201               CALL  LCD_SHOW
0143 22              202               RET
                     203     
0144 204B323A        204     INFO3:  DB " K2: D/A CHOOSE ",0  ;LCD 第一行显示信息
0148 20442F41                
014C 2043484F                
0150 4F534520                
0154 00                      
                     205     
0155 4B333A45        206     INFO4:  DB "K3:ENTER K4:EXIT",0  ;LCD 第二行显示信息
0159 4E544552                
015D 204B343A                
0161 45584954                
0165 00                      
                     207     
                     208     ;==========================================================
0166                 209     SET_LCD4:
0166 C2A2            210               CLR  LCD_EN
0168 31E1            211               CALL  INIT_LCD     ;初始化 LCD
016A 5106            212               CALL  DELAY1
016C 90017B          213               MOV  DPTR,#INFO7   ;指针指到显示信息1
016F 7401            214               MOV  A,#1          ;显示在第一行
0171 510F            215               CALL  LCD_SHOW
0173 90018C          216               MOV  DPTR,#INFO9   ;指针指到显示信息2
0176 7402            217               MOV  A,#2          ;显示在第二行
0178 510F            218               CALL  LCD_SHOW
017A 22              219               RET
                     220     
017B 20442F41        221     INFO7:  DB " D/A  CONVERTER ",0  ;LCD 第一行显示信息
017F 2020434F                
0183 4E564552                
0187 54455220                
018B 00                      
                     222     
018C 20202053        223     INFO9:  DB "   SINE  WAVE   ",0  ;LCD 第二行显示信息   正弦波

⌨️ 快捷键说明

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