BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #17838同步于 2011/7/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

希望牛人帮帮忙,请你吃饭啊

xt092515
2011/7/11镜像同步8 回复
LIST P=16F877 INCLUDE"P16F877.INC" TOWRITE EQU 55H NUM EQU 56H BYTENUM EQU 57H TOREAD EQU 69H SHOW1 EQU 75H SHOW2 EQU 76H SHOW3 EQU 77H STATUS EQU 03H FSR EQU 04H TMR0 EQU 01H ;初始化 PCL EQU 02H INTCON EQU 0BH RBPU EQU 7 TMR1L EQU 0EH TMR1H EQU 0FH TRISB EQU 86H OPTION_REG EQU 81H MAO EQU 50H PORTB EQU 06H PORTC EQU 07H TRISC EQU 87H PORTA EQU 05H TRISA EQU 85H PORTD EQU 08H TRISD EQU 88H PORTE EQU 09H TRISE EQU 89H RP0 EQU 05H ADCON1 EQU 9FH SCLK EQU 00H DIO EQU 01H RET EQU 02H INDF EQU 00H CBLOCK 20H M N COUNTCLOCK1 COUNTCLOCK2 COUNTCLOCK3 XIUZHENG DATA1 KEYDATA ZHI ;33H ENDC ;//////////////////////////////////宏定义//////////////////////////////// T1 MACRO BSF STATUS,RP0 ENDM T0 MACRO BCF STATUS,RP0 ENDM ENABLE MACRO MOVWF PORTD BSF PORTE,1 NOP NOP NOP NOP NOP BCF PORTE,1 ENDM PRO18B20 MACRO T1 MOVLW 0FFH MOVWF TRISA T0 ENDM CLRA MACRO T1 CLRF TRISA T0 ENDM CLRFPORT MACRO CLRF TRISC CLRF TRISD CLRF TRISE ENDM ORG 0000H GOTO MAIN ;////////////////////////////////////////////////////////////////////////////////////////// ORG 0005H ;???????????????? MAIN NOP T1 CLRFPORT MOVLW 0FFH MOVWF TRISB MOVLW 0FFH MOVWF PORTA T0 CLRF SHOW1 CLRF SHOW2 CLRF SHOW3 CALL INTLCD CALL IN18B20 ZHU CALL GETWEN CALL SHOW18B20 GOTO ZHU ;///////////////////////////////////////////////////////////////////////////////// ;///////////////////////////////液晶屏幕初始化///////////////////////////// INTLCD T1 MOVLW 06H MOVWF ADCON1 T0 BCF PORTE,0 CALL DELAY15MS MOVLW 30H ENABLE CALL DELAY4MS MOVLW 30H ENABLE CALL DELAY100US MOVLW 30H ENABLE CALL DELAY40US MOVLW 38H ENABLE CALL DELAY40US MOVLW 08H ENABLE CALL DELAY40US MOVLW 01H ENABLE CALL DELAY1_64MS MOVLW 06H ENABLE CALL DELAY40US MOVLW 0CH ENABLE CALL DELAY40US RETURN ;/////////////////////////////////////////////////////////////////////////// IN18B20 CLRA BCF PORTA,0 CALL DELAY500US PRO18B20 CALL DELAY70US CHECK18B20 BTFSC PORTA,0 ;如果初始化成功,则在15到60MS GOTO CHECK18B20 ;之间会由DS18B20返回低电平,由 ;此判断它的存在,但是不能无限的等待 CALL DELAY500US MOVLW 0CCH MOVWF TOWRITE CALL WRITE18B20 CALL DELAY60US RETURN ;//////////////////////////////////////////////////////////////////////////////////////////////// WRITE18B20 MOVLW 09H MOVWF NUM BITCOUNT DECFSZ NUM,1 GOTO WRITEDIAN GOTO RE18B20 WRITEDIAN BTFSC TOWRITE,0 GOTO WRITEH GOTO WRITEL WRITEL T1 CLRF TRISA T0 BCF PORTA,0 CALL DELAY60US PRO18B20 RRF TOWRITE,1 CALL DELAY60US GOTO BITCOUNT WRITEH T1 CLRF TRISA T0 BCF PORTA,0 NOP NOP NOP PRO18B20 CALL DELAY60US RRF TOWRITE,1 CALL DELAY60US GOTO BITCOUNT RE18B20 RETURN ;///////////////////////////////////////////////////////////////////////////////////////////// GETWEN T1 MOVLW 07H MOVWF ADCON1 NOP NOP T0 CALL IN18B20 MOVLW 44H MOVWF TOWRITE CALL WRITE18B20 CALL DELAY100MS CALL IN18B20 MOVLW 0BEH MOVWF TOWRITE CALL WRITE18B20 CALL READ18B20 RETURN ;/////////////////////////////////////////////////////////////////////////////////////////////// READ18B20 MOVLW 58H MOVWF FSR MOVLW 09H MOVWF BYTENUM BYTECOUNT MOVLW 08H MOVWF NUM READBIT MOVF PORTA,0 MOVWF TOREAD MOVWF INDF RRF TOREAD,1 CLRA BCF PORTA,0 NOP PRO18B20 NOP NOP NOP NOP NOP NOP NOP ;MOVF PORTA,0 ;MOVWF TOREAD BTFSS TOREAD,0 BCF TOREAD,7 BSF TOREAD,7 GOTO SAVEBIT SAVEBIT CALL DELAY60US DECFSZ NUM,1 GOTO READBIT INCF FSR,1 DECFSZ BYTENUM,1 GOTO BYTECOUNT GOTO STEP STEP CLRF SHOW1 CLRF SHOW2 CLRF SHOW3 SWAPF 58H,0 MOVWF 70H MOVWF M ANDLW 0FH MOVWF 71H SWAPF 59H,0 MOVWF 72H MOVWF N ANDLW 0F0H IORWF 71H,0 MOVWF SHOW3 BTFSS SHOW3,7 ;通过第七位判断正负位 GOTO GAO INCF SHOW1,1 DECF SHOW3,1 COMF SHOW3,1 GAO MOVLW D'10' SUBWF SHOW3,0 BTFSS STATUS,C RETURN MOVWF SHOW3 INCF SHOW2,1 GOTO GAO RETURN ;//////////////////////////////////////////////////////////////////////////////////////////// SHOW18B20 MOVLW 30H ADDWF SHOW2,1 ADDWF SHOW3,1 ;CALL INTLCD BTFSC SHOW1,0 GOTO SHOWFU GOTO SHOWZHENG SHOWFU BSF PORTE,0 MOVLW 2DH MOVWF PORTD ENABLE CALL DELAY4MS BCF PORTE,0 MOVLW 0FH ENABLE CALL DELAY4MS SHOWZHENG BCF PORTE,0 MOVLW 81H MOVWF PORTD ENABLE CALL DELAY4MS BSF PORTE,0 MOVF SHOW2,0 MOVWF PORTD ENABLE CALL DELAY4MS BCF PORTE,0 MOVLW 82H MOVWF PORTD ENABLE CALL DELAY4MS BSF PORTE,0 MOVLW SHOW3 MOVWF PORTD ENABLE CALL DELAY4MS BCF PORTE,0 MOVLW 83H MOVWF PORTD ENABLE CALL DELAY4MS BSF PORTE,0 MOVLW B'11011111' MOVWF PORTD ENABLE CALL DELAY4MS BCF PORTE,0 MOVLW 84H MOVWF PORTD ENABLE CALL DELAY4MS BSF PORTE,0 MOVLW B'01000011' MOVWF PORTD ENABLE CALL DELAY4MS ;BCF PORTE,0 ;MOVLW 0FH ;ENABLE ;CALL DELAY4MS RETURN ;///////////////////////////////////////////////////////////////// ;//////////////////////////////各种各种各种TMD延时/////////////////////////// DELAY1S MOVLW D'133' MOVWF COUNTCLOCK1 MOVLW D'10' MOVWF COUNTCLOCK3 LOOP11 MOVLW D'249' MOVWF COUNTCLOCK2 LOOP12 DECFSZ COUNTCLOCK2,1 GOTO LOOP12 DECFSZ COUNTCLOCK1,1 GOTO LOOP11 LOOP3 MOVLW D'133' MOVWF COUNTCLOCK1 LOOPNOP DECFSZ XIUZHENG,1 GOTO LOOPNOP MOVLW D'37' MOVWF XIUZHENG DECFSZ COUNTCLOCK3,1 GOTO LOOP11 RETURN ;////////////////////////////// DELAY15MS MOVLW D'101' MOVWF COUNTCLOCK1 LOOP151 MOVLW D'49' MOVWF COUNTCLOCK2 LOOP152 DECFSZ COUNTCLOCK2,1 GOTO LOOP152 DECFSZ COUNTCLOCK1,1 GOTO LOOP151 RETURN ;////////////////////////////// DELAY10MS MOVLW D'13' MOVWF COUNTCLOCK1 LOOP101 MOVLW 0FFH MOVWF COUNTCLOCK2 LOOP102 DECFSZ COUNTCLOCK2,1 GOTO LOOP102 DECFSZ COUNTCLOCK1,1 GOTO LOOP101 RETURN ;////////////////////////////// DELAY4MS MOVLW D'101' MOVWF COUNTCLOCK1 LOOP41 MOVLW D'13' MOVWF COUNTCLOCK2 LOOP42 DECFSZ COUNTCLOCK2,1 GOTO LOOP42 DECFSZ COUNTCLOCK1,1 GOTO LOOP41 RETURN ;////////////////////////////// DELAY100US MOVLW D'33' MOVWF COUNTCLOCK1 LOOP100 DECFSZ COUNTCLOCK1,1 GOTO LOOP100 RETURN ;////////////////////////////// DELAY40US MOVLW D'13' MOVWF COUNTCLOCK1 LOOP40 DECFSZ COUNTCLOCK1,1 GOTO LOOP40 RETURN ;////////////////////////////// DELAY10US MOVLW D'2' MOVWF COUNTCLOCK1 LOOP10 NOP DECFSZ COUNTCLOCK1,1 GOTO LOOP10 RETURN ;////////////////////////////// DELAY1_64MS MOVLW D'3' MOVWF COUNTCLOCK1 LOOP641 MOVLW D'136' MOVWF COUNTCLOCK2 LOOP642 NOP NOP NOP DECFSZ COUNTCLOCK2,1 GOTO LOOP642 DECFSZ COUNTCLOCK1,1 GOTO LOOP641 RETURN ;////////////////////////////////// DELAY60US MOVLW D'29' MOVWF COUNTCLOCK1 LOOP60 DECFSZ COUNTCLOCK1,1 GOTO LOOP60 RETURN ;///////////////////////////////////////////////////////////////////////////// DELAY100MS MOVLW D'180' MOVWF COUNTCLOCK1 LOOP100MS1 MOVLW D'185' MOVWF COUNTCLOCK2 LOOP100MS2 DECFSZ COUNTCLOCK2,1 GOTO LOOP100MS2 DECFSZ COUNTCLOCK1,1 GOTO LOOP100MS1 RETURN DELAY70US MOVLW D'29' MOVWF COUNTCLOCK1 LOOP70 DECFSZ COUNTCLOCK1,1 GOTO LOOP60 RETURN DELAY500US MOVLW D'165' MOVWF COUNTCLOCK1 LOOP500 DECFSZ COUNTCLOCK1,1 GOTO LOOP500 RETURN ;////////////////////////////// END 这是我的一个小程序。是18B20的测温度,现在不知道是写入还是读出的问题,单步后觉得是读有问题,希望学姐学长能帮忙看看呢
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
xt092515机器人#1 · 2011/7/11
对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的
wugui机器人#2 · 2011/7/11
【 在 xt092515 的大作中提到: 】 : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : -- 给你一行行看程序太费时间。把我当年的单片机小学期资料给你吧。也是做18B20的参考一下就行了,学长不是纵容你们抄作业~~ 附件(23.3KB)
police机器人#3 · 2011/7/11
汇编程序不会编 sorry。 【 在 xt092515 (枫的性格) 的大作中提到: 】 : LIST P=16F877 : INCLUDE"P16F877.INC" : TOWRITE EQU 55H : ...................
xt092515机器人#4 · 2011/7/12
【 在 wugui 的大作中提到: 】 : : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : : -- : 给你一行行看程序太费时间。把我当年的单片机小学期资料给你吧。也是做18B20的参考一下就行了,学长不是纵容你们抄作业~~ : ................... 想抄都不行呢,呜呜呜呜,出现好多error.......还看不懂呢,现在在努力看,要努力看呢
xt092515机器人#5 · 2011/7/12
【 在 wugui 的大作中提到: 】 : : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : : -- : 给你一行行看程序太费时间。把我当年的单片机小学期资料给你吧。也是做18B20的参考一下就行了,学长不是纵容你们抄作业~~ : ................... 是我太笨了吗?看了整个程序,是做温度的吗,全是音乐的啊。。。。
wugui机器人#6 · 2011/7/12
【 在 xt092515 的大作中提到: 】 : : : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : : : -- : : 给你一行行看程序太费时间。把我当年的单片机小学期资料给你吧。也是做18B20的参考一下就行了,学长不是纵容你们抄作业~~ : ................... 这次应该没错了 附件(8.3KB)
teamo机器人#7 · 2011/7/12
赞!看汇编代码都能看出音乐来 【 在 xt092515 的大作中提到: 】 : : : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : : : -- : : 给你一行行看程序太费时间。把我当年的单片机小学期资料给你吧。也是做18B20的参考一下就行了,学长不是纵容你们抄作业~~ : ...................
wugui机器人#8 · 2011/7/12
【 在 teamo 的大作中提到: 】 : 赞!看汇编代码都能看出音乐来 : 【 在 xt092515 的大作中提到: 】 : : : : 对了,前面的定义是还有一些程序的,就没有删了 呢,应该没事的 : ................... 要是没记错的话应该就是某个频率的方波