廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4777 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
22862827
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[8051]8051.聲控程式的問題
想問1下下面是我聲控程式不過我用程式檢查後有182個錯誤點他她都指向
OUTPUT CONTROL VIN DIV等地方不過小弟我也不知道錯在哪下面是我的程式碼請大家幫我抓錯1下
另外這是我在執行的時候錯誤的圖


懇請各位高手的幫忙..


PKH EQU 30H
PKL EQU 31H
COUNT EQU 32H
SECT EQU 33H
SUM EQU 34H
PK0 EQU 40H
OUTPUT REG P2
CONTROL REG P1
VIN REG P3.4
OFF EQU 0FFH
CNT EQU 1
SCT EQU 20
DIV EQU -30000

ORG 00H
JMP MAIN
ORG 0BH
JMP TIMER0
ORG 1BH
JMP TIMER1

MAIN:
SETB VIN
MOV CONTROL,#11111100B
MOV OUTPUT,#0C0H
MOV TMOD,#15H
SETB EA
SETB ET0
SETB ET1
SAMP:
MOV SECT,#SCT
MOV R0,#PK0
MOV R2,#0
JB VIN,$
WAIT: SETB VIN
JB VIN,SAMP
INC R2
CJNE R2,#30,WAIT

START:
MOV TH0,#0
MOV TL0,#0
MOV TH1,#>DIV
MOV TL1,#<DIV
MOV COUNT,#CNT
SETB TR0
SETB TR1
JNB F0,$
CLR F0
CJNE R0,#PK0,CONT
MOV A,THO
CJNE A,#0,SAMP
MOV A,TLO
ADD A,#252
JC CONT
MOV CONTROL,#11111000B
MOV OUPUT,#0C0H
JMP SAMP

CONT:
MOV A,TLO
MOV @R0,A
INC R0
DJNZ SECT,START

MOV CONTROL,#OFF
CALL DELAY2

VR:
M ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2006-05-13 12:09 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不同的編譯器有不同的宣告指令. KEIL 沒有 REG 這個指令 (2500AD X8051 就有這個指令)
所以你把
OUTPUT   REG   P2
CONTROL   REG   P1
VIN   REG   P3.4
改成
OUTPUT   EQU   P2
CONTROL   EQU   P1
VIN   EQU   P3.4


獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2006-05-14 01:22 |
22862827
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

qq"我改成EQU1樣有182個錯誤
X8051剛剛也去測試1下有些部份會無法辨識
拜託各位幫 我抓錯1下


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2006-05-17 16:25 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

你有很多應該寫數字 0 寫成字母 O, 還有 > 或者 < 是 X8051 的指令
DIV 為指令不可當成變數
複製程式
PKH     EQU     30H
PKL     EQU     31H
COUNT   EQU     32H
SECT    EQU     33H
SUM     EQU     34H
PK0     EQU     40H
OUTPUT  EQU     P2
CONTROL EQU     P1
VIN     EQU     P3.4
OFF     EQU     0FFH
CNT     EQU     1
SCT     EQU     20
DIV1    EQU     -30000

    ORG     00H
    JMP     MAIN
    ORG     0BH
    JMP     TIMER0
    ORG     1BH
    JMP     TIMER1

MAIN:     
    SETB     VIN
    MOV     CONTROL,#11111100B
    MOV     OUTPUT,#0C0H
    MOV     TMOD,#15H
    SETB     EA
    SETB     ET0
    SETB     ET1
SAMP:
    MOV     SECT,#SCT
    MOV     R0,#PK0
    MOV     R2,#0
    JB     VIN,$
WAIT:     SETB     VIN
    JB     VIN,SAMP
    INC     R2
    CJNE     R2,#30,WAIT

START:
    MOV     TH0,#0
    MOV     TL0,#0
    MOV     TH1,#HIGH DIV1
    MOV     TL1,#LOW DIV1
    MOV     COUNT,#CNT
    SETB     TR0
    SETB     TR1
    JNB     F0,$
    CLR     F0
    CJNE     R0,#PK0,CONT
    MOV     A,TH0
    CJNE     A,#0,SAMP
    MOV     A,TL0
    ADD     A,#252
    JC     CONT
    MOV     CONTROL,#11111000B
    MOV     OUTPUT,#0C0H
    JMP SAMP

CONT:
    MOV     A,TL0
    MOV     @R0,A
    INC     R0
    DJNZ     SECT,START

    MOV     CONTROL,#OFF
    CALL     DELAY2

VR:     
    MOV     A,043H
    ADD     A,044H
    ADD     A,045H
    MOV     SUM,A
    ADD     A,#229
    JC     VR1
;A<27
    MOV     CONTROL,#11110000B
    MOV     OUTPUT,#0BFH
    JMP     SAMP

VR1:     
    MOV     A,SUM
    ADD     A,#217
    JC     VR2
    MOV     A,041H
    ADD     A,042H
    JC     VR12
    ADD     A,043H
    JC     VR12
    ADD     A,044H
    JC     VR12
    ADD     A,045H
    JC     VR12
    ADD     A,046H
    JC     VR12
    ADD     A,047H
    JC     VR12
    ADD     A,048H
    JC     VR12

    ADD     A,49H
    JC     VR12
    ADD     A,4AH
    JC     VR12
    ADD     A,#81
    JC     VR12
    MOV     A,#5
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR12:     
    MOV     A,#1
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR2:   
    MOV     A,SUM
    ADD     A,#184
    JC     VR3
    MOV     A,48H
    ADD     A,49H
    ADD     A,4AH
    ADD     A,#211
    JC     VR4
    MOV     A,#4
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR3:     
    MOV     A,SUM
    ADD     A,#157
    JC     VR32
    MOV     A,#3
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR32:     
    MOV     A,#1
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR4:     
    MOV     A,41H
    ADD     A,42H
    ADD     A,#226
    JC     VR42
    MOV     A,#1
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

VR42:     
    MOV     A,#2
    MOV     DPTR,#LEDTABLE
    MOVC     A,@A+DPTR
    MOV     CONTROL,#11111110B
    MOV     OUTPUT,A
    JMP     SAMP

TIMER0:     
    RETI

TIMER1:     
    MOV     TH1,#HIGH DIV1
    MOV     TL1,#LOW DIV1
    DJNZ     COUNT,RETIME
    CLR     TR0
    CLR     TR1
    SETB     F0
RETIME:
    RETI

DELAY:     
    MOV     R5,#10
DE1:     
    MOV     R6,#248
    DJNZ     R6,$
    DJNZ     R5,DE1
    RET

DELAY2:     
    MOV     R5,#5

DL1:     
    MOV     R6,#200

DL2:     
    MOV     R7,#250
    DJNZ     R7,$
    DJNZ     R6,DL2
    DJNZ     R5,DL1
    RET

LEDTABLE:
      DB     11000000B
      DB     11111001B
      DB     10100100B
      DB     10110000B
      DB     10011001B
      DB     10010010B
      DB     10000010B
      DB     11011000B
      DB     10000000B
      DB     10010000B
      DB     00001000B
      DB     00000011B
      DB     01000110B
      DB     00100001B
      DB     00000110B
      DB     00001110B

VTABLE:     
      DB     0,0,0,0,0,0,0,0,1,1
      DB     1,1,1,1,1,0,2,2,2,2
      DB     2,0,3,3,3,3,3,3,0,4
      DB     4,4,4,0,5,5,5,5,5,5
      DB     5,0,0,0,0,0,0,0,0,0
      END 


獻花 x0 回到頂端 [3 樓] From:台灣中華電信 | Posted:2006-05-17 23:35 |
22862827
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

@@"感謝樓上2位大大的解答....
在與原始碼對應後我發現 錯在REG的部份
和O和零的迷惑   以及DIV的預設

看完大大的指正我想在問1下...DIV後面設的HIGH 和LOW是何作用


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2006-05-18 18:11 |
cmovies
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

HIGH, LOW 跟 X8051 中的 >, < 相同

例如; DIV1=-30000=8AD0 (請用小算盤輸入-30000然後選擇16進制, 最後四位就是8AD0)
High, > 的結果就是 8A (相等於數字除 256)
LOW, < 的結果就是 D0 (相等於數字除 256 的餘數)


獻花 x0 回到頂端 [5 樓] From:台灣中華電信 | Posted:2006-05-19 16:56 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.060574 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言