原创 单片机控制PT2313 CD3313 1602显示 汇编程序

2023-4-27 20:10 1442 7 7 分类: MCU/ 嵌入式
源程序《LM4766+PT2313-hifi放大器控制程序》  历尽千辛万苦、查找资料才把2313的部分抠出来修改变成自己想要的  觉得其2313很多功能用不到只有音量和高低音控
单片机是12C5A60S2 使用内部IRC时钟   旋转编码器用的是EC11
初次使用时按住旋转编码器不放在通电 程序会把预置的高低音写入单片机内部存储区 直到正常显示在松手  以后再开机不用按了 (除非高低音异常)
打算在加个电压显示 结果没能实现(没系统的学过编程 自己没事琢磨玩的)

51hei截图20200510134520.jpg

51hei截图20200510134530.jpg

51hei截图20200510134539.jpg

51hei截图20200510134548.jpg

  1. ;;12M晶振可用
  2. ;----------------------
  3.        ISP_DATA  EQU 0C2H ;定义EEPROM相关寄存器
  4.        ISP_ADDRH EQU 0C3H ;此类寄存器地址需参考所用单片机的手册来设置
  5.        ISP_ADDRL EQU 0C4H ;
  6.        ISP_CMD   EQU 0C5H
  7.        ISP_TRIG  EQU 0C6H
  8.        ISP_CONTR EQU 0C7H
  9. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  10.                  P4 EQU 0C0H
  11.        P4SW EQU 0BBH;;;将P4设置成功普通IO口
  12.            P4M1 EQU 0B3H
  13.        P4M0 EQU 0B4H

  14.            MOV P4SW,#70H; #70H = P4.4\P4.5\P4.6

  15.             BASS_TONE         EQU         34H        ;低音控制缓冲
  16.         TREBLE_TONE EQU         35H        ;高音控制缓冲
  17.         M_VOL                 EQU         32H        ;主音量控制缓冲

  18.         IN_BUFF         EQU           33H        ;输入选择缓存
  19.                 PT2314_MSB         EQU         3DH        ;发送PT2314数高位
  20.             MUTE_BIT BIT  P3.2;静音状态指示

  21.                 SCL         BIT  P0.2;P3.4;
  22.         SDA         BIT  P0.3;P3.5;
  23.                 DAT1 EQU 13H         ;
  24.         DAT2 EQU 14H         ;

  25.             MOV DAT2,#7;
  26.             MOV DAT1,#7;  
  27.                 RS        BIT        P3.6        ;定义RS为P2.5
  28.             RW        BIT        P3.7        ;定义RW为P2.6
  29.             E        BIT        P4.0        ;定义E为P2.7
  30.             SETB P1.1;
  31.             SETB P0.2;
  32.                 SETB P0.3;
  33.                 SETB P0.4;
  34.                 SETB P0.5;
  35.                 SETB P0.6;
  36.                 CLR  P0.7;
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38.     MOV 36H,#02H;VOL
  39.     MOV 37H,#03H;VOL
  40.     MOV 38H,#04H;O
  41.         MOV 39H,#05H;F O
  42.     MOV 40H,#06H;F N
  43.     MOV 41H,#07H;+ -
  44.         MOV 42H,#08H;BASS
  45.     MOV 43H,#09H;BASS
  46.     MOV 44H,#10H;+ -
  47.         MOV 45H,#11H;TR
  48.         MOV 46H,#12H;TR
  49.         MOV 47H,#13H;IN
  50.         MOV 48H,#14;TR<
  51.         MOV 49H,#14;BASS<
  52. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;          
  53.                 MOV   M_VOL,#30        ;开机时默认音量为第30级  0级声音最大(一共0-63级)
  54.                 MOV IN_BUFF,#45H;输入通道默认2  1 #44H    2 #45H    3 #46H
  55. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;               
  56.                 JNB P0.4,EEPROMW_0
  57.                 LJMP YZ1;
  58. EEPROMW_0:               
  59.            LCALL ERASE
  60.            MOV DPTR,#00H     ;第1扇区
  61.            MOV A,DAT1;DAT1;
  62.            ACALL EEPROMW     ;写一字节
  63.            LCALL DELAY10;
  64.            MOV DPTR,#100H     ;第2扇区
  65.            MOV A,DAT2;
  66.            ACALL EEPROMW     ;写一字节

  67. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  68. YZ1:   MOV DPTR,#00H     ;第1扇区起始地址;存入新键值
  69.            LCALL EEPROMR         ;读
  70.            MOV TREBLE_TONE,A;MOV M_VOL,A;
  71.            LCALL DELAY10;
  72.            MOV DPTR,#100H     ;第1扇区起始地址;存入新键值
  73.            LCALL EEPROMR          ;
  74.            MOV BASS_TONE,A;   
  75.           
  76.            LCALL VOL_DIV; 调用音量除用以显示
  77.            LCALL BASS_DIV;调用低音强度查表用以显示
  78.            LCALL TR_DIV;  高音强度查表用以显示       
  79.            LCALL YZ;          调用预置音量
  80. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  81. ;×××××××××××××××××××××××××
  82. LCD:MOV        P2,#38H        ;设置功能
  83.         LCALL        XML
  84.         MOV        P2,#38H        ;设置功能
  85.         LCALL        XML
  86.         MOV        P2,#01H        ;清除屏幕
  87.         LCALL        XML
  88.         MOV        P2,#0CH        ;设置显示屏开,光标关
  89.         LCALL        XML
  90.         MOV        P2,#1CH        ;设置
  91.         LCALL        XML
  92.         LCALL DIP2;
  93.         LCALL DIP1;BASS+TR          DIP1显示低音 高音强弱 -7 0 +7
  94.         ;主程序
  95.         JNB P0.4,$;
  96.         LCALL DELAY10;
  97.         JNB P0.4,$;
  98. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  99. MAINN:         MOV 48H,#14;
  100.       MOV 49H,#14;
  101.           LCALL DIP1;
  102. MAIN:  
  103.      JNB P0.6,KI111;+vol
  104.          JNB P0.5,KI222;-vol
  105.          JNB P0.4,MAIN11;KK77;        MUTE
  106.      LJMP MAIN;
  107. KI111:LJMP KK111
  108. KI222:LJMP KK222;
  109. MAIN11:        LCALL T2MS;
  110.         JB P0.4,MAIN;
  111.                 LCALL T2MS;
  112.                 LCALL T2MS;
  113.                 LCALL T2MS;
  114.                 LCALL T2MS;
  115.                 LCALL T2MS;
  116.                 LCALL T2MS;
  117.                 LCALL T2MS;
  118.                 LCALL T2MS;
  119.                 LCALL T2MS;
  120.                 LCALL T2MS;
  121.                 LCALL T2MS;
  122.                 LCALL T2MS;
  123.                 LCALL T2MS;
  124.                 LCALL T2MS;
  125.                 LCALL T2MS;
  126.                 LCALL T2MS;
  127.                 LCALL T2MS;
  128.                 LCALL T2MS;
  129.                 LCALL T2MS;
  130.                 LCALL T2MS;
  131.                 LCALL T2MS;
  132.                 LCALL T2MS;
  133.                 JNB P0.4,GH;
  134.                 LCALL KK7;
  135.                 LJMP MAINN;
  136. MUTES:        JNB P0.4,$;
  137.                 LJMP MAINN;
  138. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  139. GH:           JB MUTE_BIT,MUTES;
  140.         MOV 48H,#16;           
  141.            LCALL DIP1;
  142.            JNB P0.4,$
  143.                 LCALL T2MS;
  144.                 JNB P0.4,$
  145.            MOV  66H,#245
  146.        MOV  67H,#245
  147.            MOV  68H,#10
  148. MAIN1:   
  149.      JNB P0.6,KI333;+vol
  150.          JNB P0.5,KI444;-vol
  151.          JNB P0.4,MAIN22;KK77;        MUTE
  152.          DJNZ 68H,MAIN1;
  153.          DJNZ  67H,MAIN1
  154.           DJNZ  66H,MAIN1
  155.      LJMP MAINN;
  156. KI333:LJMP KK333;
  157. KI444:LJMP KK444;
  158. MAIN22:        LCALL DELAY10;
  159.         JB P0.4,MAIN1;
  160.                 JNB P0.4,$
  161.                 LCALL DELAY10;
  162.                 JNB P0.4,$
  163. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  164.                 MOV 48H,#14;
  165.         MOV 49H,#16;
  166.                 LCALL DIP1;
  167.                 MOV  66H,#245
  168.        MOV  67H,#245
  169.            MOV  68H,#10
  170. MAIN2:   
  171.      JNB P0.6,KI555;+vol
  172.          JNB P0.5,KI666;-vol
  173.          JNB P0.4,MAIN33;KK77;        MUTE
  174. ;    LJMP MAIN2;
  175.          DJNZ 68H,MAIN2;
  176.          DJNZ  67H,MAIN2
  177.           DJNZ  66H,MAIN2
  178.      LJMP MAINN;
  179. KI555:LJMP KK555;
  180. KI666:LJMP KK666;
  181. MAIN33:        LCALL DELAY10;
  182.         JB P0.4,MAIN2;
  183.                 JNB P0.4,$
  184.                 LCALL DELAY10;
  185.                 JNB P0.4,$
  186.                 LJMP MAINN;
  187. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  188. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  189. ;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

  190. ;秒延时子程序
  191. DELAY10:
  192. MOV         R4,#10;10
  193. D10:
  194. MOV         R5,#248;248
  195. DJNZ         R5,$
  196. DJNZ         R4,D10
  197. RET

  198. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  199. T2MS:   MOV R6,#248
  200. D21:        MOV R7,#248
  201.                 DJNZ R7,$
  202.                 DJNZ R6,D21
  203.                 RET
  204. ;EEPROM相关操作
  205. ;-----------------------
  206. ERASE:;擦除
  207.        MOV ISP_ADDRH,DPH   ;送高地址
  208.        MOV ISP_ADDRL,DPL   ;送低地址
  209.        MOV ISP_CONTR,#83H  ;允许ISP/IAP操作(6~12MHz)
  210.        MOV ISP_CMD,#03H    ;扇区擦除
  211.        ACALL ISPCF         ;触发IAP
  212.        ACALL ISP_DISABLE   ;禁止ISP/IAP操作
  213.        RET
  214. ;----------------------
  215. EEPROMW:;写
  216.        MOV ISP_DATA,A      ;ACC里是要写入的数据
  217.        MOV ISP_ADDRH,DPH   ;送高地址
  218.        MOV ISP_ADDRL,DPL   ;送低地址
  219.        MOV ISP_CONTR,#83H  ;允许ISP/IAP操作(6~12MHz)
  220.        MOV ISP_CMD,#02H    ;送写命令
  221.        ACALL ISPCF         ;触发IAP
  222.        ACALL ISP_DISABLE   ;禁止ISP/IAP操作
  223.        RET
  224. ;----------------------
  225. EEPROMR: ;读
  226.        MOV ISP_ADDRH,DPH   ;送高地址
  227.        MOV ISP_ADDRL,DPL   ;送低地址
  228.        MOV ISP_CONTR,#83H  ;允许ISP/IAP操作(6~12MHz)
  229.        MOV ISP_CMD,#01H    ;送读命令
  230.        ACALL ISPCF         ;触发IAP
  231.        MOV A,ISP_DATA      ;读出的数据放到ACC
  232.        ACALL ISP_DISABLE   ;禁止ISP/IAP操作
  233.        RET
  234. ;----------------------
  235. ISPCF: ;触发ISP/IAP
  236.        MOV ISP_TRIG,#5AH; #46H  ;以MCU型号来定;STC12C2052(46H/0B9H)
  237.        MOV ISP_TRIG,#0A5H; #0B9H ;11F和15F系列相同(5AH/0A5H)
  238.        NOP
  239.        RET
  240. ;----------------------
  241. ISP_DISABLE: ;禁止ISP/IAP操作(出于安全考虑才要)
  242.        MOV ISP_CONTR,#00H
  243.        MOV ISP_CMD,#00H
  244.        MOV ISP_TRIG,#00H
  245.        MOV ISP_ADDRH,#0FFH
  246.        MOV ISP_ADDRL,#0FFH
  247.        RET
  248. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  249. EEPROMW_1:      
  250.            LCALL ERASE
  251.            MOV DPTR,#00H     ;第1扇区
  252.            MOV A,TREBLE_TONE;MOV A,M_VOL;
  253.            ACALL EEPROMW     ;写一字节
  254.            LCALL DELAY10
  255.            LCALL DELAY10
  256.            MOV DPTR,#100H     ;第2扇区
  257.            MOV A,BASS_TONE;
  258.            ACALL EEPROMW     ;写一字节
  259.            RET;
  260. ;=============================================
  261. ;高低音调用
  262. CTRL_SHUI:
  263.                 MOV        DPTR,#TONG_DATA
  264.                 MOVC        A,@A+DPTR
  265.                 RET
  266. TONG_DATA:
  267.            DB 00H,01H,02H,03H,04H,05H,06H,07H
  268.            DB 0EH,0DH,0CH,0BH,0AH,09H,08H
  269. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  270. ;主音量调用
  271. VOL:
  272. MOV        DPTR,#VOL_DATA
  273. MOVC        A,@A+DPTR
  274. RET
  275. VOL_DATA:
  276.            DB 3FH,3EH,3DH,3CH,3BH,3AH,39H,38H,37H,36H ;
  277.                    DB 35H,34H,33H,32H,31H,30H,2FH,2EH,2DH,2CH
  278.                    DB 2BH,2AH,29H,28H,27H,26H,25H,24H,23H,22H
  279.                    DB 21H,20H,1FH,1EH,1DH,1CH,1BH,1AH,19H,18H
  280.                    DB 17H,16H,15H,14H,13H,12H,11H,10H,0FH,0EH
  281.                    DB 0DH,0CH,0BH,0AH,09H,08H,07H,06H,05H,04H
  282.                    DB 03H,02H,01H,00H  ;(PT2313主音量63)
  283. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  284. ;显示调用
  285. TABLE:  INC          A
  286.         MOVC         A,@A+PC
  287.         RET
  288.         DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,2DH,2BH,4FH,46H,20H,4EH,7FH;;1602
  289.            ;0   1   2   3   4   5   6   7   8   9        -        +   O        F  空位        N        ←   显示
  290.                    ;0   1   2   3   4        5        6        7        8        9        10        11        12        13        14        15        16  查表数
  291. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  292. ;高低音显示调用
  293. TAB:
  294. MOV DPTR,#TABLE1
  295.                 MOVC A,@A+DPTR         ;         以A中的数值为地址偏移量进行查表
  296.                 ret;
  297. TABLE1:  
  298.            DB 37H,36H,35H,34H,33H,32H,31H,30H,31H,32H,33H,34H,35H,36H,37H
  299.            ;   7   6   5   4   3   2   1   0   1   2   3   4   5   6   7   显示
  300.                    ;   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  查表数
  301. ;==============================================

  302. $INCLUDE (DIP.ASM)
  303. $INCLUDE (YZ.ASM)
  304. $INCLUDE (PT2314_WR.ASM)
  305. $INCLUDE (KEYDAT.ASM)
  306. $INCLUDE (VOL.ASM)
  307. $INCLUDE (BASS.ASM)
  308. $INCLUDE (TR.ASM)
  309. $INCLUDE (MUTE.ASM)



  310.         END

51hei截图20200510134556.jpg

作者: 小羡, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-4026945.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条