ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:201.50KB ,
资源ID:2280931      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2280931.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(pic16c7x单片机原理及应用new.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

pic16c7x单片机原理及应用new.doc

1、PIC18C7X 单片机原理及应用1PIC16C7X 单片机原理及应用实验简介:实验目的:本实验由四个部分组成:1、利用 PIC 单片机的 PC 计数器及实时计数器计数或计时,利用 LED 数码管显示数据。 2、利用 PIC 单片机进行各种信号、数据的采集。3、利用单片机的控制功能实现控制。4、利用 EEPROM实现单片机的数据掉电保存及利用 I2C 模式进行通讯。实验器材:PIC 仿真器, 24LC02,LM324,OP07,面包板实验原理:PIC167X 有 RTCC、TMR1、TMR2 实时计数器,可作为CCP(捕捉、比较、脉宽调制)用,通过应用 CCP 模块,可以驱动扬声器实现定时报闹

2、和键盘按键发出 C 调相应音阶的功能。我们应用辅助芯片 4511 推动LED,4511 为 7 段锁存/ 译码/驱动器。按键信号,有两种输入方式,一种为用一个按键开关完成,通过硬件滤波,改变输入电压即可;一种是通过键盘扫描,扫描一个 34 的键盘,如果有键按下,则相应的行线和列线将变为低电平来判断。实验系统框图:PIC18C7X 单片机原理及应用2实验一通过 4511 驱动 LED 显示并完成 09999 的计数1、直接驱动 LED 显示4511 译码器能将单片机的 4 位二进制输出直接转换为代码驱动 LED,LED采用共阴方式,代码如下B00111111 “0” B00000110 “1”B

3、01011011 “2” B01001111 “3”B01100110 “4” B01101101 “5”B01111101 “6” B00000111 “7”B01111111 “8” B01101111 “9”以 RC0,RC1 来选通 4511 的 LE 端,RB 做为 4511 的输入端,显示值存在 20H 由RB 输出,选通值存在 21H 由 RC 输出。电路如图程序RA EQU 5 RB EQU 6RC EQU 7TRA EQU 85HTRB EQU 86HTRC EQU 87HSTATUS EQU 3HC EQU 0HZ EQU 2HRP0 EQU 5HORG 00HGOTO M

4、AINMAIN BSF STATUS,RP0MOVLW 0PIC18C7X 单片机原理及应用3MOVWF TRBMOVWF TRCBCF STATUS,RP0CLRF 20CLRF 21L1 CALL WRITECALL DELAYINCF 20MOVF 20,WCALL ADJANDLW 0FHSKPZINCF 21MOVF 22,WMOVWF 20MOVF 21,WCALL ADJMOVF 22,WMOVWF 21GOTO L1ADJ MOVWF 22ANDLW 0FHMOVWF 23MOVLW 0AHSUBWF 23SKPNZGOTO L2L3 MOVF 22,WANDLW 0F0HMO

5、VWF 23MOVLW 0A0HSUBWF 23SKPZRETLW 0MOVLW 60HADDWF 22RETLW 1L2 MOVLW 6ADDWF 22GOTO L3WRITE MOVF 20,WMOVWF RBBCF RC,0BSF RC,0MOVF 21,WMOVWF RBBCF RC,1BSF RC,1RETLW 0DELAY MOVLW 0FFHRETLW 0ENDPIC18C7X 单片机原理及应用4实验二:通过计时器计时实现时钟功能,并实现整点报闹、调时功能。方案:PIC 单片机的输出可以直接驱动 LED 显示,所以采用较简单的硬件,直接驱动 LED显示,仍然采用共阴接法。B0B6

6、 接 LED 段码,C4C7 接 LED 的 COM 端,进行位选。整点报闹采用 CCP 模块的 PWM 功能。PWM 功能可输出一个 PWM 信号,储存周期的寄存器为 PR2 寄存器,储存工作周期的寄存器为 CCPRxL 寄存器。当 TMR2 的值和CCPRxL 寄存器的值相同式, CCP 模块的输出引脚就会改变为输出低电平,然后继续递增下去,当 TMR2 的值等于 PR2 寄存器的值时,TMR2 便会重新归 0 并重新计数。整点报闹采用报 5 下,最后一次声音最“尖”的方式,即改变最后一次 CCP 模块输出的频率即可。调时采用两个简单按键完成。一个用于位选,一个通过累加调时。按键切换:采用

7、的按键为简单单路开关即按一下导通,再按一下截止。一个按键为切换 LED 显示数码管(选通的 LED 管闪烁) ,另一个按键调时(即按一次计数加一) 。简易原理,按键由 RC0,RC3 输入,采用中断方式,检查寄存器 RC0,RC3 的位值就可以知道按键的状态,再进行软件处理。电路如图程序INCLUDE “d:00141022p16c74.inc“LED_INDEX EQU 0X3E BUF_POINTER EQU 0X36TMR0H EQU 0X35PIC18C7X 单片机原理及应用5W_STK EQU 0X20STATUS_STK EQU 0X21PCLATH_STK EQU 0X22BFL

8、AG EQU 0X38FLASH_INDEX EQU 0X39FLASH_POINTEREQU 0X3CFLASH_FLAG EQU 0X3ACODE_SAVE EQU 0X3BTEMPV EQU 0X3DBELL_TIME EQU 0X3F#DEFINE _DIGIT_ADDR 0X30;+ORG 0GOTO STARTORG 4MOVWF W_STK MOVF STATUS,W CLRF STATUS MOVWF STATUS_STK MOVF PCLATH,W MOVWF PCLATH_STK CLRF PCLATH BCF STATUS,RP0 BTFSC INTCON,T0IF GO

9、TO TMR0_ISR ;+ END_INT: BCF STATUS,RP0 MOVF PCLATH_STK,W MOVWF PCLATH MOVF STATUS_STK,W MOVWF STATUS MOVF W_STK,W RETFIE;+ TMR0_ISR: BCF INTCON,T0IF MOVLW .255-.125 MOVWF TMR0 BTFSC PORTC,3 GOTO UN_PRESS1 BTFSC BFLAG,0 GOTO SKPP1 BSF BFLAG,0 MOVF FLASH_POINTER,W MOVWF FSR INCF INDF,F BTFSS FLASH_POI

10、NTER,0 GOTO NUMB10 MOVLW .6 GOTO NUMB6 NUMB10: MOVLW .10 NUMB6: SUBWF INDF,W BTFSS STATUS,Z GOTO SKPP1 MOVLW 0 MOVWF INDF GOTO SKPP1 UN_PRESS1: BCF BFLAG,0 SKPP1: BTFSC PORTC,0 GOTO UN_PRESS2 BTFSC BFLAG,1 GOTO SKPP2 BSF BFLAG,1 BCF STATUS,C RLF FLASH_INDEX,F INCF FLASH_POINTER,F BTFSS FLASH_INDEX,5

11、 GOTO SKPP2 MOVLW 1 MOVWF FLASH_INDEX MOVLW _DIGIT_ADDR MOVWF FLASH_POINTER GOTO SKPP2 UN_PRESS2: BCF BFLAG,1 SKPP2: SWAPF LED_INDEX,F COMF LED_INDEX,W ;LED INDEX MOVWF PORTC BCF PORTC,2 SWAPF LED_INDEX,F PIC18C7X 单片机原理及应用6MOVF BUF_POINTER,W MOVWF FSR MOVF INDF,W ;LED CODE CALL CHAR_CODE MOVWF CODE_

12、SAVE INCF FLASH_FLAG,F MOVF FLASH_INDEX,W SUBWF LED_INDEX,W BTFSC STATUS,Z GOTO DO_FLASH GOTO DO_DISPLAY DO_FLASH: BTFSS FLASH_FLAG,5 GOTO NOT_DISPLAY DO_DISPLAY: MOVF CODE_SAVE,W GOTO NOT_FLASH NOT_DISPLAY MOVLW 0 NOT_FLASH: MOVWF PORTB INCF BUF_POINTER,F BCF STATUS,C RLF LED_INDEX,F BTFSS LED_INDE

13、X,4 GOTO NOT_BEGIN MOVLW 0X01 MOVWF LED_INDEX MOVLW _DIGIT_ADDR MOVWF BUF_POINTER NOT_BEGIN:MOVF BELL_TIME,W ;BELL CONTROL BTFSC STATUS,Z GOTO GOON1 DECF BELL_TIME,F GOTO GOON2 GOON1: CLRF CCPR1L GOON2: INCF TMR0H,F MOVLW .250 SUBWF TMR0H,W BTFSS STATUS,Z GOTO END_INT CLRF TMR0H MOVLW _DIGIT_ADDR+3M

14、OVWF FSR ;判断是否报时,59:5559:59 MOVLW .5 SUBWF INDF,W BTFSS STATUS,Z GOTO NOT_BELLDECF FSR,FMOVLW .9SUBWF INDF,WBTFSS STATUS,ZGOTO NOT_BELLDECF FSR,FMOVLW .5SUBWF INDF,WBTFSS STATUS,ZGOTO NOT_BELLDECF FSR,FMOVLW .5 ;=5SUBWF INDF,WBTFSS STATUS,CGOTO NOT_BELLMOVLW .9 ;9SUBWF INDF,WBTFSC STATUS,CGOTO NOT_B

15、ELL;BELLMOVLW 0X30MOVWF CCPR1LBSF STATUS,RP0MOVLW 0X60MOVWF PR2BCF STATUS,RP0MOVLW .125MOVWF BELL_TIMENOT_BELL:MOVLW _DIGIT_ADDR;CLOCK COUNTMOVWF FSRINCF INDF,FMOVLW .10PIC18C7X 单片机原理及应用7SUBWF INDF,WBTFSS STATUS,ZGOTO T0_ISR_ENDCLRF INDFINCF FSR,FINCF INDF,FMOVLW .6SUBWF INDF,WBTFSS STATUS,ZGOTO T0_

16、ISR_ENDCLRF INDFINCF FSR,FINCF INDF,FMOVLW .10SUBWF INDF,WBTFSS STATUS,ZGOTO T0_ISR_ENDCLRF INDFINCF FSR,FINCF INDF,FMOVLW .6SUBWF INDF,WBTFSS STATUS,ZGOTO T0_ISR_ENDCLRF INDFINCF FSR,FMOVLW 0X10 ;报时MOVWF CCPR1LBSF STATUS,RP0MOVLW 0X20MOVWF PR2BCF STATUS,RP0MOVLW .250MOVWF BELL_TIMET0_ISR_END:GOTO E

17、ND_INTSTART:BSF STATUS,RP0MOVLW 0MOVWF TRISBMOVLW B00001001MOVWF TRISCBCF STATUS,RP0MOVLW 0XFFMOVWF PORTBMOVLW 0MOVWF PORTCCLRF INTCONBSF INTCON,T0IEBSF STATUS,RP0MOVLW B11000100MOVWF OPTION_REGCLRF PIE1MOVLW 0X80MOVWF PR2BCF STATUS,RP0CLRF PIR1MOVLW 0X05CLRF CCPR1LMOVLW B00001100MOVWF CCP1CONMOVWF

18、TMR0CLRF TMR0HCLRF T2CONBSF T2CON,1BSF T2CON,2BSF INTCON,GIECLRF _DIGIT_ADDRCLRF _DIGIT_ADDR+1CLRF _DIGIT_ADDR+2CLRF _DIGIT_ADDR+3MOVLW 0X01MOVWF LED_INDEXMOVLW _DIGIT_ADDRMOVWF BUF_POINTERMOVLW 0MOVWF BFLAGMOVLW 0X10MOVWF FLASH_INDEXMOVLW 0MOVWF FLASH_FLAGMOVLW _DIGIT_ADDR+4MOVWF FLASH_POINTERMAIN:

19、 GOTO MAINDELAY:MOVLW 0X2MOVWF 0X50PIC18C7X 单片机原理及应用8DL1:MOVLW 0XFFMOVWF 0X51DL2:DECFSZ 0X51GOTO DL2DECFSZ 0X50GOTO DL1RETLW 0CHAR_CODE:ADDWF PCL,FRETLW B00111111RETLW B00000110RETLW B01011011RETLW B01001111RETLW B01100110RETLW B01101101RETLW B01111101RETLW B00000111RETLW B01111111RETLW B01101111END

20、实验三:行列式键盘的扫描本部分只进行了调试,并没有接 LED 显示。键盘为 34 的键盘,扫描方法:4 根口线接行线,3 根接列线。若从所有的行线输出低电平,从列线读入数据,若为全“1”则无键按下,否则有键,继续扫描。或直接逐行输出低电平,检查列线读进的数值,为低的证明该行改列有键按下。键盘示意图程序RA EQU 5 ;PROT ARB EQU 6 ;PROT BRC EQU 7 ;PROT CRD EQU 8 ;PROT DTRISA EQU 85H ;TRISATRISB EQU 86H ;TRISBTRISC EQU 87H ;TRISCKEY_SAVE EQU 40HSTATUS EQ

21、U 3HTEMP_VAL EQU 0X3DROW_INDEXEQU 0X48LINE_INDEXEQU 0X49ROW_CH EQU 0X4ALINE_CH EQU 0X4BBSF STATUS RP0CLRF TRISCMOVLW B11110000MOVWF TRISBBCF STATUS RP0MOVLW 0XFFMOVWF RBCLRF ROW_INDEXPIC18C7X 单片机原理及应用9MOVLW 0XFE ;第一行扫描MOVWF ROW_CHROW_SCAN:MOVF ROW_CH,WMOVWF RC ;OUTPUT SCAN SIGNALMOVLW .5MOVWF TEMP_V

22、ALDELAY1:DECFSZ TEMP_VALGOTO DELAY1CLRF LINE_INDEXINCF LINE_INDEX,FBTFSS RB,5 ;第一列?GOTO GET_BUTTONINCF LINE_INDEX,FBTFSS RB,6 ;第二列?GOTO GET_BUTTONINCF LINE_INDEX,FBTFSS RB,7 ;第三列?GOTO GET_BUTTONMOVLW 3 ;键码加 3ADDWF ROW_INDEX,FBSF STATUS,CRLF ROW_CH,FBCF STATUS,CBTFSC ROW_CH,4GOTO ROW_SCANGET_BUTTON:M

23、OVF ROW_INDEX,WADDWF LINE_INDEX,FMOVF LINE_INDEX,WMOVWF KEY_SAVEINCF KEY_SAVEEND附加,通过键盘扫描驱动扬声器按 C 调发出 1234567。电路程序INCLUDE “f:00141025p16c74.inc“LED_INDEX EQU 0X3EBUF_POINTER EQU 0X36TMR0H EQU 0X35W_STK EQU 0X20STATUS_STK EQU 0X21PCLATH_STK EQU 0X22BFLAG EQU 0X38FLASH_INDEX EQU 0X39FLASH_POINTEREQU 0

24、X3CFLASH_FLAG EQU 0X3ACODE_SAVE EQU 0X3BTEMP_VAL EQU 0X3DBELL_TIME EQU 0X3FROW_INDEXEQU 0X48LINE_INDEXEQU 0X49ROW_CH EQU 0X4ALINE_CH EQU 0X4BCUR_VAL EQU 0X4C#DEFINE _DIGIT_ADDR 0X30PIC18C7X 单片机原理及应用10ORG 0GOTO STARTORG 4MOVWF W_STKMOVF STATUS,WCLRF STATUSMOVWF STATUS_STKMOVF PCLATH,WMOVWF PCLATH_STK

25、CLRF PCLATHBCF STATUS,RP0BTFSC INTCON,T0IFGOTO TMR0_ISREND_INT:BCF STATUS,RP0MOVF PCLATH_STK,WMOVWF PCLATHMOVF STATUS_STK,WMOVWF STATUSMOVF W_STK,WRETFIETMR0_ISR:BCF INTCON,T0IFCLRF ROW_INDEXMOVLW 0XFEMOVWF ROW_CHROW_SCAN:MOVF ROW_CH,WMOVWF PORTD ;输出 SCAN SIGNALMOVLW .5MOVWF TEMP_VALDELAY1:DECFSZ TE

26、MP_VALGOTO DELAY1CLRF LINE_INDEXINCF LINE_INDEX,FBTFSS PORTD,5GOTO GET_BUTTONINCF LINE_INDEX,FBTFSS PORTD,6GOTO GET_BUTTONINCF LINE_INDEX,FBTFSS PORTD,7GOTO GET_BUTTONMOVLW 3ADDWF ROW_INDEX,FBSF STATUS,CRLF ROW_CH,FBCF STATUS,CBTFSC ROW_CH,4GOTO ROW_SCANCLRF CCPR1L ;NO BUTTON, SHUT DOWNBSF STATUS,RP

27、0CLRF PR2BCF STATUS,RP0GOTO T0_ISR_ENDGET_BUTTON:MOVF ROW_INDEX,WADDWF LINE_INDEX,FMOVF LINE_INDEX,WSUBWF CUR_VAL,WBTFSC STATUS,ZGOTO T0_ISR_ENDMOVF LINE_INDEX,WMOVWF CUR_VALCALL GET_FSC ;送扬声器MOVWF TEMP_VALBSF STATUS,RP0MOVWF PR2BCF STATUS,RP0BCF STATUS,CRRF TEMP_VAL,WMOVWF CCPR1LT0_ISR_END:GOTO END

28、_INTSTART:BSF STATUS,RP0MOVLW 0MOVWF TRISBMOVLW B00001001MOVWF TRISCMOVLW B11110000MOVWF TRISDBCF STATUS,RP0MOVLW 0XFFPIC18C7X 单片机原理及应用11MOVWF PORTBMOVLW 0MOVWF PORTCCLRF INTCONBSF INTCON,T0IEBSF STATUS,RP0MOVLW B11000100MOVWF OPTION_REGCLRF PIE1MOVLW 0X80MOVWF PR2BCF STATUS,RP0CLRF PIR1MOVLW 0X05CL

29、RF CCPR1LMOVLW B00001100MOVWF CCP1CONMOVWF TMR0CLRF TMR0HCLRF T2CONBSF T2CON,1BSF T2CON,2BSF INTCON,GIECLRF _DIGIT_ADDRCLRF _DIGIT_ADDR+1CLRF _DIGIT_ADDR+2CLRF _DIGIT_ADDR+3MOVLW 0X01MOVWF LED_INDEXMOVLW _DIGIT_ADDRMOVWF BUF_POINTERMOVLW 0MOVWF BFLAGMOVLW 0X10MOVWF FLASH_INDEXMOVLW 0MOVWF FLASH_FLAG

30、MOVLW _DIGIT_ADDR+4MOVWF FLASH_POINTERMAIN: GOTO MAINDELAY:MOVLW 0X2MOVWF 0X50DL1:MOVLW 0XFFMOVWF 0X51DL2:DECFSZ 0X51GOTO DL2DECFSZ 0X50GOTO DL1RETLW 0CHAR_CODE: ;段码ADDWF PCL,FRETLW B00111111RETLW B00000110RETLW B01011011RETLW B01001111RETLW B01100110RETLW B01101101RETLW B01111101RETLW B00000111RETL

31、W B01111111RETLW B01101111GET_FSC: ;各音符频率ADDWF PCL,FRETLW 0RETLW .239RETLW .213RETLW .189RETLW .179RETLW .159RETLW .142RETLW .127RETLW .120RETLW 0RETLW 0RETLW 0RETLW 0RETLW 0ENDPIC18C7X 单片机原理及应用12实验四:A/D 转换并显示PIC16C7X 有 RA 和 RE 口可以进行 A/D 转换,实验中采用 RA0 进行单通道转换,直接驱动 LED256 级显示,两个数码管 0FF。电路如图程序ADCON1 EQ

32、U 9FHADCON0 EQU 1FHADRES EQU 1EHPCFG0 EQU 0HPCFG1 EQU 1HPCFG2 EQU 2HCHS0 EQU 3HCHS1 EQU 4HCHS2 EQU 5HADCS1 EQU 7HADCS0 EQU 6HGO EQU 2HADON EQU 0HSTATUS EQU 3HINTCON EQU 0BHC EQU 0HZ EQU 2HRP0 EQU 5HTRA EQU 85HRA EQU 5HPIC18C7X 单片机原理及应用13TRB EQU 86HTRC EQU 87HTRD EQU 88HRB EQU 6HRC EQU 7HRD EQU 8HPCL

33、 EQU 02HPIR1 EQU 0CHPIE1 EQU 8CHADIF EQU 6H ;FLAG OF INTERRUPTADIE EQU 6H ;ADMITTE INTERRUPTINTCON EQU 0BHGIE EQU 7HPEIE EQU 6H W_STK EQU 30HSTATUS_STK EQU 31HRESULT EQU 32H ;A/D 转换结果RESULT1 EQU 33HRESULT11 EQU 34HRESULT22 EQU 35HTIME1 EQU 36HYANSHI1 EQU 37HDIS_FLAG EQU 38HORG 0HGOTO MAINORG 4HBCF S

34、TATUS,RP0 ;BANK 0BCF INTCON,GIEMOVWF W_STKMOVF STATUS,WCLRF STATUSMOVWF STATUS_STKBCF STATUS,RP0BTFSS ADCON0,GO ;GO=0,A/D FINISHGOTO DISGOTO END_ITHDIS BCF PIR1,ADIF ;CLERA FLAG ADIFMOVF ADRES,W ;READ ADRES(A/D RESULT REGISTER)MOVWF RESULTEND_ITH BCF STATUS,RP0MOVF STATUS_STK,WMOVWF STATUSMOVF W_STK

35、,WBSF INTCON,GIERETFIE MAIN CALL ADSTARTCALL DELAYMOVLW 0XFFMOVWF DIS_FLAGBSF ADCON0,GO ;开始 A/DDISPLAY MOVF RESULT,WMOVWF RESULT1 ;RESULT1=RESULTMOVLW 0FHANDWF RESULT,WMOVWF RESULT11 ;RESULT11=ADRES 03MOVLW 0F0HANDWF RESULT1,WMOVWF RESULT1SWAPF RESULT1,FMOVF RESULT1,WMOVWF RESULT22 ;RESULT22=ADRES 4

36、7BCF STATUS,RP0 ;BANK 0MOVLW B10111111 ;RC6=0MOVWF RCMOVF RESULT11,WCALL CHAR_CODEMOVWF RBCALL YANSHIMOVLW B01111111 ;RC7=0MOVWF RCMOVF RESULT22,WCALL CHAR_CODEMOVWF RBCALL YANSHIDECFSZ DIS_FLAG,1GOTO DISPLAYGOTO MAIN DELAY MOVLW 0FHMOVWF TIME1PIC18C7X 单片机原理及应用14DELAY1 DECFSZ TIME1GOTO DELAY1RETURNA

37、DSTART CLRF STATUSCLRF INTCONBSF STATUS,RP0 ;BANK 1BCF ADCON1,PCFG0BCF ADCON1,PCFG1BCF ADCON1,PCFG2 ;ALL A/D Vref=VDDMOVLW 0FFHMOVWF TRA ;A 口读入MOVLW 0MOVWF TRBMOVLW B00001111MOVWF TRCBCF STATUS,RP0 ;BANK 0MOVLW 0MOVWF RD ;RD=0BCF ADCON0,CHS0BCF ADCON0,CHS1BCF ADCON0,CHS2 ;CHANNEL 0BCF ADCON0,ADCS1BS

38、F ADCON0,ADCS0 ;CLOCK=8TOSCBSF ADCON0,ADON ;OPEN A/DBCF PIR1,ADIF ;CLERA FLAGBSF STATUS,RP0 ;BANK 1BSF PIE1,ADIE ;BCF STATUS,RP0 ;BANK 0BSF INTCON,PEIE ;;允许外部中断BSF INTCON,GIECLRF RESULTCLRF RESULT1CLRF RESULT11CLRF RESULT22RETURNYANSHI MOVLW 0FFHMOVWF YANSHI1YANSHI11 DECFSZ YANSHI1 GOTO YANSHI11RETU

39、RNCHAR_CODE ;段码ADDWF PCL,FRETLW B00111111 ;0RETLW B00000110 ;1RETLW B01011011 ;2RETLW B01001111 ;3RETLW B01100110 ;4RETLW B01101101 ;5RETLW B01111101 ;6RETLW B00000111 ;7RETLW B01111111 ;8RETLW B01101111 ;9RETLW B01110111 ;ARETLW B01111100 ;bRETLW B00111001 ;CRETLW B01011110 ;dRETLW B01111001 ;ERETL

40、W B01110001 ;FENDPIC18C7X 单片机原理及应用15实验五:I2C 通信I2C 总线为双线串行通信方式,采用 SCL 总线传输时序信号, SDA 总线传输数据信号,其标准模式下传输速率为 100Kbps,高速模式下传输速率为 400Kbps。总线是开漏极输出,可以实现多器件的线与,使用时需添加上拉电阻,但这种方式可节省大量端口。I2C 总线的时序比较重要,必须按规定进行:SCL 为高时, SDA 信号有效;SDA 由高变低为启动传输信号,由低变高为结束传输信号。传输过程中,SDA 需保持一段时间以保证接受端能采样到数据,而 SDA 只有在 SCL 为低时才可变化,否则会导致数据传输错误。I2C 总线上所有数据都以字节进行传输,字节数没有限制,接受设备不管是主设备或从设备都要在正确接受一个字节数据后向总线发送一个反馈信号 ACK,若发送设备未接受到反馈信号,则必须终止传输。当主控端是接受设备时,若要终止传输,需向总线发送一个结束信号,以告诉发送设备结束传输,释放总线。如图I2C 总线上每一个设备都有一个固定没有重复的地址,以保证选择设备时不会冲突。总线上地址传送有两种格式,即 7 位地址位加一位读写位和 10 位地址位加一位读写位。系统框图PIC18C7X 单片机原理及应用16INCLUDE “d:00141022p16c74.inc“CON_BY

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报