找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7559|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)控制PT2313 CD3313 1602顯示 匯編程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
源程序《LM4766+PT2313-hifi放大器控制程序》  歷盡千辛萬(wàn)苦、查找資料才把2313的部分摳出來(lái)修改變成自己想要的  覺得其2313很多功能用不到只有音量和高低音控
單片機(jī)是12C5A60S2 使用內(nèi)部IRC時(shí)鐘   旋轉(zhuǎn)編碼器用的是EC11
初次使用時(shí)按住旋轉(zhuǎn)編碼器不放在通電 程序會(huì)把預(yù)置的高低音寫入單片機(jī)內(nèi)部存儲(chǔ)區(qū) 直到正常顯示在松手  以后再開機(jī)不用按了 (除非高低音異常)
打算在加個(gè)電壓顯示 結(jié)果沒能實(shí)現(xiàn)(沒系統(tǒng)的學(xué)過(guò)編程 自己沒事琢磨玩的)

51hei截圖20200510134520.jpg (191.17 KB, 下載次數(shù): 172)

51hei截圖20200510134520.jpg

51hei截圖20200510134530.jpg (128.27 KB, 下載次數(shù): 153)

51hei截圖20200510134530.jpg

51hei截圖20200510134539.jpg (124.67 KB, 下載次數(shù): 149)

51hei截圖20200510134539.jpg

51hei截圖20200510134548.jpg (127.22 KB, 下載次數(shù): 150)

51hei截圖20200510134548.jpg

51hei截圖20200510134556.jpg (111.52 KB, 下載次數(shù): 155)

51hei截圖20200510134556.jpg

51hei.png (18.99 KB, 下載次數(shù): 159)

51hei.png

STC12C5A60S2 PT2313 1602顯示 - 旋轉(zhuǎn)編碼器 - 內(nèi)部存儲(chǔ)高低音.rar

47.88 KB, 下載次數(shù): 98, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-5-10 14:44 | 只看該作者
好東東,下面是樓主的源碼:

  1. ;;12M晶振可用
  2. ;----------------------
  3.        ISP_DATA  EQU 0C2H ;定義EEPROM相關(guān)寄存器
  4.        ISP_ADDRH EQU 0C3H ;此類寄存器地址需參考所用單片機(jī)的手冊(cè)來(lái)設(shè)置
  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設(shè)置成功普通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        ;發(fā)送PT2314數(shù)高位
  20.             MUTE_BIT BIT  P3.2;靜音狀態(tài)指示

  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        ;開機(jī)時(shí)默認(rèn)音量為第30級(jí)  0級(jí)聲音最大(一共0-63級(jí))
  54.                 MOV IN_BUFF,#45H;輸入通道默認(rèn)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扇區(qū)
  61.            MOV A,DAT1;DAT1;
  62.            ACALL EEPROMW     ;寫一字節(jié)
  63.            LCALL DELAY10;
  64.            MOV DPTR,#100H     ;第2扇區(qū)
  65.            MOV A,DAT2;
  66.            ACALL EEPROMW     ;寫一字節(jié)

  67. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  68. YZ1:   MOV DPTR,#00H     ;第1扇區(qū)起始地址;存入新鍵值
  69.            LCALL EEPROMR         ;讀
  70.            MOV TREBLE_TONE,A;MOV M_VOL,A;
  71.            LCALL DELAY10;
  72.            MOV DPTR,#100H     ;第1扇區(qū)起始地址;存入新鍵值
  73.            LCALL EEPROMR          ;
  74.            MOV BASS_TONE,A;   
  75.           
  76.            LCALL VOL_DIV; 調(diào)用音量除用以顯示
  77.            LCALL BASS_DIV;調(diào)用低音強(qiáng)度查表用以顯示
  78.            LCALL TR_DIV;  高音強(qiáng)度查表用以顯示       
  79.            LCALL YZ;          調(diào)用預(yù)置音量
  80. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  81. ;×××××××××××××××××××××××××
  82. LCD:MOV        P2,#38H        ;設(shè)置功能
  83.         LCALL        XML
  84.         MOV        P2,#38H        ;設(shè)置功能
  85.         LCALL        XML
  86.         MOV        P2,#01H        ;清除屏幕
  87.         LCALL        XML
  88.         MOV        P2,#0CH        ;設(shè)置顯示屏開,光標(biāo)關(guān)
  89.         LCALL        XML
  90.         MOV        P2,#1CH        ;設(shè)置
  91.         LCALL        XML
  92.         LCALL DIP2;
  93.         LCALL DIP1;BASS+TR          DIP1顯示低音 高音強(qiáng)弱 -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. ;秒延時(shí)子程序
  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相關(guān)操作
  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    ;扇區(qū)擦除
  211.        ACALL ISPCF         ;觸發(fā)IAP
  212.        ACALL ISP_DISABLE   ;禁止ISP/IAP操作
  213.        RET
  214. ;----------------------
  215. EEPROMW:;寫
  216.        MOV ISP_DATA,A      ;ACC里是要寫入的數(shù)據(jù)
  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         ;觸發(fā)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         ;觸發(fā)IAP
  231.        MOV A,ISP_DATA      ;讀出的數(shù)據(jù)放到ACC
  232.        ACALL ISP_DISABLE   ;禁止ISP/IAP操作
  233.        RET
  234. ;----------------------
  235. ISPCF: ;觸發(fā)ISP/IAP
  236.        MOV ISP_TRIG,#5AH; #46H  ;以MCU型號(hào)來(lái)定;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扇區(qū)
  252.            MOV A,TREBLE_TONE;MOV A,M_VOL;
  253.            ACALL EEPROMW     ;寫一字節(jié)
  254.            LCALL DELAY10
  255.            LCALL DELAY10
  256.            MOV DPTR,#100H     ;第2扇區(qū)
  257.            MOV A,BASS_TONE;
  258.            ACALL EEPROMW     ;寫一字節(jié)
  259.            RET;
  260. ;=============================================
  261. ;高低音調(diào)用
  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. ;主音量調(diào)用
  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. ;顯示調(diào)用
  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  查表數(shù)
  291. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  292. ;高低音顯示調(diào)用
  293. TAB:
  294. MOV DPTR,#TABLE1
  295.                 MOVC A,@A+DPTR         ;         以A中的數(shù)值為地址偏移量進(jìn)行查表
  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  查表數(shù)
  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
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

板凳
ID:96926 發(fā)表于 2020-10-6 13:28 | 只看該作者
有沒原理圖
回復(fù)

使用道具 舉報(bào)

地板
ID:261025 發(fā)表于 2020-10-9 20:17 | 只看該作者

不需要原理圖啊  看程序就知道怎么接     2313的原理圖網(wǎng)上很多
回復(fù)

使用道具 舉報(bào)

5#
ID:742085 發(fā)表于 2023-3-25 23:15 | 只看該作者
麻煩 可提供 打板文件 和原理圖 謝謝...
回復(fù)

使用道具 舉報(bào)

6#
ID:102189 發(fā)表于 2023-4-16 19:50 | 只看該作者
程序是不是有問題呀顯示屏不能顯示
回復(fù)

使用道具 舉報(bào)

7#
ID:1071715 發(fā)表于 2023-4-19 21:36 來(lái)自手機(jī) | 只看該作者
程序能不能燒錄到st89c52芯片上使用?
回復(fù)

使用道具 舉報(bào)

8#
ID:23844 發(fā)表于 2023-4-22 08:11 | 只看該作者
這個(gè)移植不方便,會(huì)匯編的都是高手
回復(fù)

使用道具 舉報(bào)

9#
ID:1071715 發(fā)表于 2023-4-23 07:30 | 只看該作者
哪位大神可以把程序移植到stc89c52RC上運(yùn)行
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表