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

標題: 單片機匯編語言的直流電機三極管放大調速數碼管不亮 [打印本頁]

作者: 256202    時間: 2019-1-10 09:23
標題: 單片機匯編語言的直流電機三極管放大調速數碼管不亮
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:

  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)

作者: 256202    時間: 2019-1-10 09:24
請大家幫幫忙,壓縮包里是圖和程序,麻煩大家了
作者: ahshmj    時間: 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)單片機上電或啟動以后是從這里開始執行程序。

你好像還需要繼續打牢基本功。
作者: Y_G_G    時間: 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之間不能有其它代碼




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 色av一区 | 日韩精品一区二区三区中文字幕 | 欧美精品一区二区免费 | 激情国产在线 | 一区二区三区在线看 | 国产精品久久久久久久久久久免费看 | 久久国产免费看 | 激情婷婷 | 亚洲精品久久久蜜桃网站 | 久久性色 | 另类 综合 日韩 欧美 亚洲 | 网站黄色在线 | 午夜精品久久久久久久久久久久 | tube国产 | 天天综合91 | 亚洲精品日韩在线观看 | 亚洲视频中文字幕 | 国产午夜精品久久久久 | 九九激情视频 | 91精品久久久 | 亚洲日本视频 | 欧美精品福利 | 天天爽夜夜骑 | 在线视频成人 | 成年人视频在线免费观看 | 欧洲免费视频 | 国产黄色在线观看 | 久久综合久 | 国产精品夜色一区二区三区 | 亚洲三区在线观看 | 日韩午夜网站 | 在线观看精品视频网站 | 亚洲综合成人网 | 污污的网站在线观看 | 亚洲精品1| 国产福利在线 | 国产a一区二区 | www.青青草 | 久久国产精99精产国高潮 | 91久久久久久久久久久 | 国产亚洲欧美另类一区二区三区 |