久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2337|回復: 3
收起左側

單片機匯編語言的直流電機三極管放大調速數碼管不亮

[復制鏈接]
ID:461851 發表于 2019-1-10 09:23 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

單片機源程序如下:

  1. ;AD轉換的數據在20H-25H,讀出的數據在24H
  2. ACK BIT 20H.0     ;應答標志位ACK=0表示無應答
  3. SCL BIT P2.0      ;時鐘線
  4. SDA BIT P2.1          ;數據線
  5. WADD EQU 21H      ;器件地址(從地址)
  6. SUBD EQU 22H      ;器件內部地址(子地址)
  7. NUMBR EQU 23H     ;需讀取的字節數
  8. RDATA EQU 25H     ;讀出數據的存放首地址
  9.        
  10.        
  11. QJCSH:        MOV 20H,#00H
  12.                 MOV 21H,#00H
  13.                 MOV 22H,#00H
  14.                 MOV 23H,#00H
  15.                 MOV 24H,#00H
  16.                 MOV 25H,#00H
  17.                 MOV 30H,#00H
  18.                 MOV 31H,#00H
  19.                 MOV 32H,#00H
  20.                 MOV 33H,#00H
  21.                 MOV TMOD,#51H
  22.                 MOV TL0,#00H
  23.                 MOV TH0,#4CH
  24.                 MOV TL1,#00H
  25.                 MOV TH1,#00H
  26.                 SETB EA
  27.                 SETB ET0
  28.                 SETB ET1
  29.                 RET
  30.                 LJMP START
  31.                 ORG 000BH
  32.                 LJMP IT0P
  33.                 ORG 001BH
  34.                 LJMP IT1P
  35.                 ORG 0100H
  36. START:        MOV SP,#60H
  37.                 MOV SCON,#00H
  38.                 LCALL QJCSH;???
  39.                   
  40. ;ad轉換子程序
  41. DQAD:        MOV WADD,#90H     ;寫入PCF8591的地址
  42.                 MOV SUBD,#40H      ;寫入PCF8591的控制字
  43.                 MOV NUMBR,#1       ;寫入需讀取的字節數
  44.                 MOV RDATA,#24H     ;送入首地址
  45.                 LCALL READI2C     ;讀PCF8591子程序
  46.                 MOV A,24H
  47. ;從I2C總線讀取N個字節數據子程序
  48. READI2C:LCALL STARTI2C     ;啟動I2C總線
  49.                 MOV A,WADD         ;送入器件地址
  50.                 LCALL WI2C         ;向I2C總線發送一個字節數據子程序
  51.                 LCALL RACK         ;讀取從機應答子程序
  52.                 JNB ACK,ROUT       ;判斷從機有無應答ACK=0則無應答
  53.                 MOV A,SUBD         ;?送入器件內部地址
  54.                 LCALL WI2C
  55.                 LCALL RACK
  56.                 LCALL STARTI2C
  57.                 MOV A,WADD  
  58.                 INC A         
  59.                 LCALL WI2C
  60.                 LCALL RACK  
  61.                 JNB ACK,READI2C  
  62.                 MOV R0,RDATA      
  63. RI2C2:        LCALL RI2C
  64.                 MOV @R0,A  
  65.                 DJNZ NUMBR,RI2C1   
  66.                 LCALL NMACK         
  67. ROUT:        LCALL STOPI2C   
  68.                 MOV RDATA,#24H
  69.                 RET  
  70. RI2C1:        LCALL MACK     
  71.                 INC R0  
  72.                 SJMP RI2C2

  73. ;I2C?總線啟動子程序
  74. STARTI2C:SETB SDA
  75.                 SETB SCL
  76.                 NOP
  77.                 NOP
  78.                 NOP
  79.                 NOP
  80.                 NOP  
  81.                 CLR SDA
  82.                 NOP
  83.                 NOP
  84.                 NOP
  85.                 NOP
  86.                 NOP  
  87.                 CLR SCL
  88.                 RET   

  89. ;I2C總線停止子程序
  90. STOPI2C:CLR SDA
  91.                 SETB SCL
  92.                 NOP
  93.                 NOP
  94.                 NOP
  95.                 NOP
  96.                 NOP  
  97.                 SETB SDA
  98.                 RET   

  99. ;主機應答子程序
  100. MACK:        CLR SDA
  101.                 SETB SCL
  102.                 NOP
  103.                 NOP
  104.                 NOP
  105.                 NOP
  106.                 NOP  
  107.                 CLR SCL
  108.                 RET   

  109. ;主機非應答子程序
  110. NMACK:  SETB SDA
  111.                 SETB SCL
  112.                 NOP
  113.                 NOP
  114.                 NOP
  115.                 NOP
  116.                 NOP  
  117.                 CLR SCL
  118.                 RET   

  119. ;向I2C總線發送一個字節數據子程序
  120. WI2C:        MOV R7,#8
  121. WLP:         RLC A
  122.                 MOV SDA,C
  123.                 NOP  
  124.                 SETB SCL
  125.                 NOP
  126.                 NOP
  127.                 NOP
  128.                 NOP
  129.                 NOP  
  130.                 CLR SCL  
  131.                 DJNZ R7,WLP
  132.                 RET   

  133. ;從I2C總線讀取一個字節數據子程序
  134. RI2C:        MOV R7,#8
  135.                 CLR A
  136.                 SETB SDA
  137.                 NOP
  138. RLP:        SETB SCL
  139.                 NOP
  140.                 NOP  
  141.                 MOV C,SDA
  142.                 NOP  
  143.                 CLR SCL
  144.                 RLC A
  145.                 NOP
  146.                 NOP
  147.                 NOP
  148.                 NOP  
  149.                 DJNZ R7,RLP
  150.                 NOP
  151.                 RET
  152.                
  153. ;讀取從機應答子程序
  154. RACK:        SETB SDA
  155.                 NOP
  156.                 NOP  
  157.                 SETB SCL
  158.                 CLR ACK
  159.                 NOP
  160.                 NOP  
  161.                 MOV C,SDA
  162.                 JC ACKEND
  163.                 SETB ACK
  164. ACKEND: NOP
  165.                 CLR SCL
  166.                 NOP
  167.                 RET
  168.                
  169. ;DA轉換程序
  170.                 ORG 1000H            ;000000000000000000000
  171. DAZH:        CLR P2.4
  172.                 SETB P2.5
  173.                 CLR P2.6
  174.                 MOV R0,#0FEH
  175.                 MOVX @R0,A
  176.                 RET               

  177.                
  178. ;測速程序
  179.             ORG 0000H
  180. RESET:  LJMP CESU               
  181. CESU:        MOV SP,#60H
  182.                 MOV B,#14H
  183.                 MOV R0,#00H
  184.                 MOV R1,#70H
  185.                 MOV TMOD,#51H
  186.                 MOV TL0,#00H
  187.                 MOV TH0,#4CH
  188.                 MOV TL1,#00H
  189.                 MOV TH1,#00H
  190.                 SETB ET0
  191.                 SETB ET1
  192.                 SETB EA
  193.                 SETB TR0
  194.                 SETB TR1
  195. HERE:   SJMP HERE
  196. IT0P:   MOV TL0,#00H
  197.                 MOV TH0,#4CH
  198.                 DJNZ B,RTURN
  199.                 CLR TR0
  200.                 SETB F0
  201. IT1P:        MOV        R1,TH1
  202.                 MOV        R0,TL1
  203.                 MOV B,3CH    ;60的16進制
  204.                 MOV A,R0
  205.                 MUL AB        ;1s轉速轉換成1min轉速
  206.                 MOV R1,B
  207.                 MOV R0,A
  208.                 MOV A,R0      
  209.                 ANL A,#0FH
  210.                 MOV 30H,A
  211.                 MOV A,R0      
  212.                 SWAP A
  213.                 ANL A,#0FH
  214.                 MOV 31H,A
  215.                 MOV A,R1      
  216.                 ANL A,#0FH
  217.                 MOV 32H,A
  218.                 MOV A,R1      
  219.                 SWAP A
  220.                 ANL A,#0FH
  221.                 MOV 33H,A
  222.                 CLR TR1
  223.                 SETB F0       
  224. RTURN:  RETI


  225. ;顯示程序
  226. XS:                 CLR TI
  227.                  MOV R0,#30
  228.                  MOV R1,#4
  229. SEND:         MOV A,@R0
  230.                  MOV DPTR,#TAB
  231.                  MOVC A,@A+DPTR
  232.                  CPL A
  233.                  MOV SBUF,A
  234.                  JNB TI,$
  235.                  CLR TI
  236.                  INC R0
  237.                  DJNZ R1,SEND
  238.                  RET
  239. TAB:         DB 0C0H,0F9H,0A4H,0B0H,99H
  240.              DB 92H,82H,0F8H,80H,90H       
  241. END
復制代碼

全部資料51hei下載地址:
1.rar (141.45 KB, 下載次數: 13)
回復

使用道具 舉報

ID:461851 發表于 2019-1-10 09:24 | 顯示全部樓層
請大家幫幫忙,壓縮包里是圖和程序,麻煩大家了
回復

使用道具 舉報

ID:7485 發表于 2019-1-10 14:34 | 顯示全部樓層
本帖最后由 ahshmj 于 2019-1-10 17:24 編輯

你的程序寫的問題較多。最嚴重的是,"QJCSH"怎么放到了最前面?又沒有指定程序在程序存儲器的位置,自然就從0000H開始寫入。

以下的程序就沒地方寫了:

     LJMP START
        ORG 000BH
        LJMP IT0P
        ORG 001BH
        LJMP IT1P
        ORG 0100H

另外:       LJMP START  這一句的前面應該有: ORG  0000H  (意思是第一個字節就是跳轉到 START)單片機上電或啟動以后是從這里開始執行程序。

你好像還需要繼續打牢基本功。
回復

使用道具 舉報

ID:401564 發表于 2019-1-10 18:53 | 顯示全部樓層
看樣子應該是從C過來學匯編的
匯編代碼的位置和硬件是有很大關系的
首先:
ORG 00H
JMP  START
ORG  003H   ;聲明INT0中斷向量,也就是中斷地址
JMP   XXXX   ;去中斷處理程序
ORG  00BH  ;聲明INT1中斷向量
JMP   XXXX _1  ;去中斷處理程序
ORG 100H
START:           STARTD在這里相當于一個地址,在JMP  START到ORG 100H之間不能有其它代碼
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美一区二区三区情侣bbw | 国产中文 | 麻豆亚洲 | 97日韩精品 | 午夜激情网 | 亚洲视频二区 | 欧美国产日韩一区二区三区 | 欧美激情综合五月色丁香小说 | 中文字幕一区二区三区在线观看 | 国产在线精品免费 | 日韩福利在线 | 久久草在线视频 | 亚洲欧美综合精品久久成人 | 日日操日日舔 | 97热在线 | 久久久不卡网国产精品一区 | 亚洲一区亚洲二区 | 91精品久久久久久久久久入口 | 国产精品18久久久 | 毛片在线免费 | 国产精华一区 | 国产精品一区二 | 国产精品成人av | 亚洲色图综合网 | 日批免费看 | 国产精品久久99 | 国产精品夜间视频香蕉 | 亚洲 欧美 日韩 在线 | 三级黄色网址 | 亚洲欧美日韩精品久久亚洲区 | 丝袜 亚洲 欧美 日韩 综合 | 国产精品久久久久久久久久软件 | 国产精品色哟哟网站 | 97日韩精品 | 亚洲国产成人精品女人久久久 | 国产免费观看视频 | 欧美区日韩区 | 亚洲精品一 | 日本国产欧美 | 99热在线免费 | 激情五月婷婷在线 |