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

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

QQ登錄

只需一步,快速開始

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

誰能告訴我哪錯(cuò)了嗎(1): error C141: syntax error near ';' 溫度計(jì).C(2): error C...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1034970 發(fā)表于 2022-6-21 15:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
;===================================================================================
; Main.asm file generated by New Project wizard
;
; Created:   //周四 6 月 7 2018
; Processor: 80C51
; Compiler:  ASEM-51 (Proteus)
;===================================================================================

$NOMOD51
$INCLUDE (8051.MCU)

;===================================================================================
; DEFINITIONS
;===================================================================================

;===================================================================================
; VARIABLES
;===================================================================================

;===================================================================================
; RESET and INTERRUPT VECTORS
;===================================================================================

      FLAG BIT F0                  ;  //聲明傳感器復(fù)位返回的標(biāo)志位
      DQ BIT P1.7                  ;  //定義DQ 作為數(shù)據(jù)傳輸端口名
      ABIT EQU 35H
      BBIT EQU 36H
      CBIT EQU 37H                 ;  //固定個(gè),十,百位的存儲(chǔ)位置,名稱
      ORG 0000H
      AJMP MAIN
      ORG 0100H                                   

;//主程序
MAIN: LCALL INIT_1                     ;  //復(fù)位
          LCALL FBLCHANGE                  ;  //改變溫度的初始分辨率為9位
          LCALL GET_TEMP                             ;  //得到溫度
          AJMP CHANGE                               ;  //跳轉(zhuǎn)到數(shù)據(jù)處理子程序
;//復(fù)位程序
          INIT_1:SETB DQ                       ;  //總線釋放
          NOP                                                   ;  //保持高電平,延時(shí)
          CLR DQ                                         ;  //總線置 0,請(qǐng)求響應(yīng)
          MOV R0,#0FBH
TSR1: DJNZ R0,TSR1                        ;  //延時(shí)
          SETB DQ                                            ;  //再釋放
          MOV R0,#25H
TSR2: JNB DQ,TSR3                                    ;  //改變?yōu)?0,則代表得到對(duì)應(yīng)
          DJNZ R0,TSR2                                 ;  //未得到則繼續(xù)等待,判斷
TSR3: SETB FLAG                                    ;  //得到相應(yīng)則標(biāo)志位置 1,代表傳感器正常存在
          MOV R0,#06BH
TSR4: DJNZ R0,TSR4                        ;  //延時(shí)
          SETB DQ                                            ;  //釋放總線,完成復(fù)位
RET


;//改變溫度分辨率
FBLCHANGE:
          LCALL INIT_1                                   ;  //復(fù)位
          MOV A,#0CCH                                     ;  //跳過ROM
          LCALL WRITE                                   ;  //把A寫入傳感器
          MOV A,#1FH                               ;  //改變溫度分辨率為9
          LCALL WRITE                               ;  //把A寫入傳感器
RET


://得到溫度并轉(zhuǎn)換
GET_TEMP:
          SETB DQ                                           ;  //釋放總線
          LACALL INIT_1                                   ;  //復(fù)位
          JB FLAG,TSS1                                   ;  //若傳感器不存在,則直接返回主程序
RET

TSS2: MOV A,#0CCH
          LCALL WRITE                                   ;  //執(zhí)行跳過ROM指令
          MOV A,#44H
          LCALL WRITE                                     ; // 執(zhí)行測(cè)溫指令
          LCALL DISPLAY                            ;  //不僅延時(shí),還讓程序完全生效前數(shù)碼管置零
          LCALL INIT_1                             ;  //復(fù)位
          MOV A,#0CCH
          LCALL WRITE                                     ;  //執(zhí)行跳過ROM置零
          MOV A,#0BEH
          LCALL WRITE                                     ;  //執(zhí)行讀取溫度數(shù)據(jù)指令
          LCALL READ                                    ;  //跳轉(zhuǎn)至通信子程序
RET


;//寫入數(shù)據(jù)                                                      ;  注:不可超過120us,否則無法寫入
WRITE:MOV R2,#8                                    ;  //寫入八位二進(jìn)制碼,即循環(huán)次數(shù)
          CLR C                                         ;  //進(jìn)位標(biāo)志位初始置零
WR1:  CLR DQ                                            ;  //拉低總線為寫入做準(zhǔn)備
          MOV R3,#6
          DJNZ R3,$                                     ;  //快速延時(shí)
          RRC A
          MOV DQ,C                                     ;  //將A又循環(huán)寫入C,寫入總線以輸入到傳感器
          MOV R3,#23
          DJNZ R3,$                                     ;  //快速延時(shí)
          SETB DQ                                                ;  //釋放,表示此位寫入完畢
          NOP
          DJNZ R2,WR1                                    ;  //循環(huán)八次,一次寫入八位
          SETB DQ                                         ;  //釋放總線
RET


;//讀入數(shù)據(jù)
READ: MOV R4,#2                                    ;  //讀取兩個(gè)八位數(shù)據(jù),是外層循環(huán)次數(shù)
          MOV R1,#29H                                    ;  //立即數(shù)尋址給定存儲(chǔ)位置
REE0: MOV R2,#8                                     ;  //給定數(shù)據(jù)位數(shù),是內(nèi)層循環(huán)次數(shù)
REE1: CLR C                                         ;  //進(jìn)位標(biāo)志位初始置零
          SETB C
          NOP
          NOP
          CLR DQ
          NOP
          NOP
          NOP
          SETB DQ                                                ;  //輸入脈沖并持續(xù)2-3個(gè)機(jī)器周期
          MOV R3,#7                                   
          DJNZ R3,$                                      ;  //快速延時(shí),等待傳感器響應(yīng)
          MOV C,DQ                                      ;  //按位讀出
          MOV R3,#23
          DJNZ R3,$                                       ;  //快速延時(shí)
          RRC A                                                 ;  //把C存入A內(nèi)
          DJNZ R2,REE1                                    ;  //循環(huán)8次
          MOV @R1,A                                     ;  //存儲(chǔ)A
          DEC R1                                              ;  //更換地址
          DJNZ R4,REE0                                     ;  //循環(huán)2次
RET


;//數(shù)據(jù)處理函數(shù)
CHANGE:
          MOV A,29H
          MOV 26H,29H
          MOV 25H,28H
          MOV 24H,28H                                     ;  //在24H存儲(chǔ)原始數(shù)據(jù)防止丟失
          MOV C,25H.7                                     ;  //存儲(chǔ)符號(hào)位進(jìn)C
          JNC SN1                                              ;  //判斷溫度的正負(fù),正數(shù)則跳過轉(zhuǎn)補(bǔ)碼程序
          MOV A,25H
          CPL A                                              ;  //取補(bǔ)碼,由于無效位置1,25H不必?fù)?dān)心數(shù)據(jù)溢出
          MOV 25H,A
          MOV A,26H
          CPL A
          INC A                                               ;  //由于是末位,需要加一
          MOV 26H,A
          MOV 29H,26H
          MOV 28H,25H                                      ;  //在26H,25H中操作后放回29H,28H
SN1:  MOV C,28H.0                                      ;  //正負(fù)溫度到此均得到整數(shù)部分絕對(duì)值
          RRC A
          MOV C,28H.1
          RRC A
          MOV C,28H.2
          RRC A
          MOV C,28H.3                                       ;  //分別循環(huán),存入A內(nèi),連續(xù)4次濾掉小數(shù)部分
          RRC A                                                    ;  //可分析A內(nèi)八位恰為整數(shù)部分(最高位為0)
          JC SL0
          MOV 27H,#00H
          AJMP SL5
SL0:  MOV 27H,#05H
SL5:  MOV 29H,A                                       ;  //為小數(shù)部分顯示0和5做準(zhǔn)備
            LCALL DISPLAY                                   ;  //轉(zhuǎn)入顯示函數(shù)
LJMP MAIN                                                ;  //返回主函數(shù),程序執(zhí)行完畢


;//顯示函數(shù)
DISPLAY:
          MOV A,29H
          MOV B,#10
          DIV AB
          MOV ABIT,B
          MOV B,#10
          DIV AB
          MOV BBIT,B
          MOV CBIT,A                                       ;  //此時(shí)可知CBA即為百十個(gè)位
          MOV R0,#4                                        ;  //循環(huán)顯示
DPL1: MOV R1,#250                                       ;  //長時(shí)間延時(shí)循環(huán)
DPL2: MOV C,24H.7
          JNC DPL3
          MOV P0,#0BFH
          SETB P1.2
          LCALL DELAY
          CLR P1.2
          AJMP DPL4
DPL3: MOV P0,#0FFH  
          SETB P1.2
          LCALL DELAY
          CLR P1.2                                              ;  //符號(hào)位判斷顯示
DPL4: MOV DPTR,#TAB
          MOV A,27H
          MOVC A,@A+DPTR
          MOV P0,A
          SETB P1.6
          LCALL DELAY
          CLR P1.6                                            ;  //小數(shù)位判斷顯示
          MOV A,ABIT
          MOV DPTR,#TAB1
          MOVC A,@A+DPTR
          MOV P0,A
          SETB P1.5
          LCALL DELAY
          CLR P1.5
          MOV A,BBIT
          MOV DPTR,#TAB
          MOVC A,@A+DPTR
          MOV P0,A
          SETB P1.4
          LCALL DELAY                                            ; //個(gè)十百位顯示
          CLR P1.4        
          MOV A,CBIT
          MOVC A,@A+DPTR
          MOV P0,A
          SETB P1.3
          LCALL DELAY  
          CLR P1.3
          DJNZ R1,DPL2
          DJNZ R0,DPL1
RET


;//延遲函數(shù)
DELAY:MOV R5,#10
DEL0: MOV R6,#1
DEL1: MOV R7,#20
DEL2: DJNZ R7,DEL2
          DJNZ R6,DEL1
          DJNZ R5,DEL0
RET

TAB:                                                                      ;  //正常陽極數(shù)碼0-9
          DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
TAB1:                                                                      ;  //帶小數(shù)點(diǎn)的個(gè)位顯示數(shù)碼0-9
          DB  40H,79H,24H,30H,19H,12H,02H,78H,00H,10H


LOOP:
          JMP LOOP ;====================================================================
END


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

使用道具 舉報(bào)

沙發(fā)
ID:979299 發(fā)表于 2022-6-21 18:04 | 只看該作者
語法錯(cuò)誤,少符號(hào)了
回復(fù)

使用道具 舉報(bào)

板凳
ID:979299 發(fā)表于 2022-6-21 18:06 | 只看該作者
://得到溫度并轉(zhuǎn)換。此處把:號(hào)換成;號(hào)
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2022-6-21 20:14 | 只看該作者
內(nèi)容明明是匯編asm文件,名字卻是c文件,無法編譯。
回復(fù)

使用道具 舉報(bào)

5#
ID:342822 發(fā)表于 2022-6-21 22:51 | 只看該作者
://得到溫度并轉(zhuǎn)換
GET_TEMP:
          SETB DQ                                           ;  //釋放總線
          LACALL INIT_1                                   ;  //復(fù)位
          JB FLAG,TSS1                                   ;  //若傳感器不存在,則直接返回主程序紅字的地方好好研究
應(yīng)是 分號(hào) ;
LCALL  
TSS1標(biāo)簽不存在,是不是TSR1

回復(fù)

使用道具 舉報(bào)

6#
ID:1034970 發(fā)表于 2022-6-22 07:19 | 只看該作者
改了,但運(yùn)行后總是顯示一二行有錯(cuò)誤,
Build target 'Target 1'
compiling 溫度計(jì).c...
溫度計(jì).C(1): error C141: syntax error near ';'
溫度計(jì).C(2): error C129: missing ';' before '.'
Target not created
回復(fù)

使用道具 舉報(bào)

7#
ID:883242 發(fā)表于 2022-6-23 00:32 | 只看該作者
暮至北海 發(fā)表于 2022-6-22 07:19
改了,但運(yùn)行后總是顯示一二行有錯(cuò)誤,
Build target 'Target 1'
compiling 溫度計(jì).c...

我在地板位已經(jīng)說的很清楚了,你就是看不懂。

你的源文件是匯編,你卻給了擴(kuò)展名c,結(jié)果導(dǎo)致編譯器當(dāng)成c文件來編譯。

兩種語言語法完全不一樣,能編譯通過就真的見鬼了。
回復(fù)

使用道具 舉報(bào)

8#
ID:1034970 發(fā)表于 2022-7-1 09:27 | 只看該作者
Hephaestus 發(fā)表于 2022-6-23 00:32
我在地板位已經(jīng)說的很清楚了,你就是看不懂。

你的源文件是匯編,你卻給了擴(kuò)展名c,結(jié)果導(dǎo)致編譯器當(dāng) ...

我按你說的改過還是不行。。。
回復(fù)

使用道具 舉報(bào)

9#
ID:1034970 發(fā)表于 2022-7-1 09:54 | 只看該作者
Hephaestus 發(fā)表于 2022-6-23 00:32
我在地板位已經(jīng)說的很清楚了,你就是看不懂。

你的源文件是匯編,你卻給了擴(kuò)展名c,結(jié)果導(dǎo)致編譯器當(dāng) ...

可以了,謝謝,我確實(shí)是把那個(gè)擴(kuò)展名弄錯(cuò)了。。
回復(fù)

使用道具 舉報(bào)

10#
ID:329625 發(fā)表于 2022-7-1 19:36 | 只看該作者
符號(hào)不對(duì)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人jvid在线播放 | 欧美日韩精品中文字幕 | av一区二区在线观看 | 久久综合狠狠综合久久综合88 | 欧美成人h版在线观看 | 免费激情网站 | 日韩成人中文字幕 | 中文字幕av第一页 | 国产精品永久久久久 | 麻豆av网站 | www国产亚洲精品久久网站 | 日韩一级 | 99re热精品视频 | 国户精品久久久久久久久久久不卡 | 成人福利在线观看 | 欧美区日韩区 | 在线播放一区二区三区 | 精品一区在线免费观看 | 国产无套一区二区三区久久 | 国产精品久久久久久妇女6080 | 欧美日韩电影一区二区 | 成人在线小视频 | 日韩中文字幕在线视频观看 | 一区二区三区国产在线观看 | 亚洲欧美精品久久 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 精品亚洲第一 | 欧美在线免费 | 91精品久久久久久久久久 | 婷婷在线视频 | 日韩精品久久久久 | 午夜精品久久久 | 亚洲午夜小视频 | 在线播放亚洲 | 亚洲精品九九 | 亚洲免费在线观看 | 一区久久| 中文字幕国产视频 | 中文字幕二区 | 超级乱淫av片免费播放 | 国产在线精品区 |