下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LISTP=16f877A#include p16f877a.inc;定义所用单片机的头文件;*;* CountEQU 20HCount1EQU21HCount2EQU 22H KEYRESEQU ADKEYHEQU L_REQU 25HDLY1EQU26HDLY2EQU27HCNTEQU 28HINC_FEQU 29HCNT1EQU 2AH INC_F1EQU ORG 000H GOTO START NOPSTARTCALL InitPWM12 CALL InitADKEYMAINCALL GetADKEY GOTO MAIN;*InitADKEY;A/D 转换初始化子程序MOVLW0X41
2、MOVWFADCON0;选择 A/D 通道为 RA0,打开 A/D转换器;AD 转换时钟为 FOSC/8BSFMOVLW0X02MOVWFADCON1;转换结左移,及 ADRESL 寄存器的6 位为0BSFTRISA,0;且把 RA0 口设置为模拟量输入方式;RA0 为输入方式BCFRETURN;*GetADKEY;读取键值处理子程BSFADCON0,GO;启动AD转换BTFSCADCON0,GO;A/D 转换结束GOTO$-1MOVFADRESH,W;A/D 转换结果MOVWFADKEYH;19,若无键按下,0MOVLW0X31;MOVWFKEYRESKEY1 MOVLW0XCB量的高 8
3、位SUBWFADKEYH,W能力BTFSSGOTOKEY2GOTOKEYOUT KEY2INCFMOVLW0XA8;CC S1 A/D 转换数字;比较阈值设为 CB 可增强抗干扰;采用逐键比较判断;A9 为S2 按下对应A/D 转换数字量的高8 位SUBWFBTFSSSTATUS,C GOTOKEY3CALL DEC1GOTOKEYOUTKEY3INCFMOVLW0X8F;90 为S3 按下对应A/D 转换数字量的高8 位SUBWFBTFSSSTATUS,C GOTOKEY4CALL INC1GOTOKEYOUTKEY4INCFMOVLW0X7D高 8 位SUBWFBTFSSSTATUS,C
4、GOTOKEY5GOTOKEYOUT KEY5INCFMOVLW0X6F;7E S4 A/D 转换数字量的;70为S5按下对应A/D转换数字量的高8 位SUBWFBTFSSSTATUS,CGOTOKEY6CALLDEC2GOTOKEYOUT KEY6INCFMOVLW0X63;64为S6按下对应A/D转换数字量的高8 位SUBWFBTFSSSTATUS,C GOTOKEY7CALLINC2GOTOKEYOUTKEY7INCFKEYRES,FMOVLW0X5A;5B S7 A/D 8 位SUBWFBTFSSSTATUS,C GOTOKEY8GOTOKEYOUT KEY8INCFMOVLW0X53
5、;54为S8按下对应A/D8位SUBWFBTFSSSTATUS,C GOTOKEY9GOTOKEYOUTKEY9INCFKEYRES,FMOVLW0X4C;4D 为S9按下对应A/D转换数字量的高8 位SUBWFBTFSSSTATUS,C GOTOKEY0GOTOKEYOUTKEY0 MOVLW0 x30;无键按下,30 键按下的设定值MOVWFKEYRES;KEYOUTRETURN;*;递增递减PWM1 INC1INCF MOVLW 03HANDWFCNT,1;BCF CCP1CON,4BCFCCP1CON,5SWAPF CNT,W ADDWF CCP1CON,F MOVLW 03H SUB
6、WF CNT,F BTFSS STATUS,Z GOTOKEYOUT BCF CCP1CON,4 BCF CCP1CON,5INCFCCPR1L,F;脉宽递增COMFCCPR1L,W;检测当前值是最亮态否?BTFSCSTATUS,Z;CCPR1L=FFH00H,Z=1INCFINC_F,F;是!递增标志位取RETURN;返回DEC1DECF MOVLW 03HANDWFCNT,1;屏蔽高六位BCF CCP1CON,4 BCF CCP1CON,5 SWAPF CNT,W ADDWF CCP1CON,F MOVLW 00H SUBWF CNT,F BTFSS STATUS,Z GOTOKEYOUT
7、 BCF CCP1CON,4 BCF CCP1CON,5DECFCCPR1L,F;脉宽递减BTFSCSTATUS,Z;CCPR1L=00H,Z=1INCFINC_F,F;是!递增标志位取RETURN;返回;*;递增递减PWM2 INC2INCF MOVLW 03HANDWFCNT1,1;BCF CCP2CON,4BCF CCP2CON,5 SWAPF CNT1,W ADDWF CCP2CON,F MOVLW 03H SUBWF CNT1,F BTFSS STATUS,Z GOTOKEYOUTBCF CCP2CON,4 BCF CCP2CON,5INCFCCPR2L,F;脉宽递增COMFCCPR
8、2L,W;检测当前值是最亮态否?BTFSCSTATUS,Z;CCPR1L=FFH00H,Z=1INCFINC_F1,F;是!递增标志位取RETURN;返回DEC2DECF MOVLW 03HANDWFCNT1,1;屏蔽高六位BCF CCP2CON,4 BCF CCP2CON,5 SWAPF CNT1,W ADDWF CCP2CON,F MOVLW 00H SUBWF CNT1,F BTFSS STATUS,Z GOTOKEYOUT BCF CCP2CON,4 BCF CCP2CON,5DECFCCPR2L,F;脉宽递减BTFSCSTATUS,Z;CCPR1L=00H,Z=1INCFINC_F1
9、,F;是!递增标志位取RETURN;返回;*;InitPWM12BSFSTATUS,RP0;bank1MOVLWB11111001;CCP1 RC2MOVWF TRISCMOVLW0XFF;PWM 周期为最大值MOVWF PR2MOVWFINC_F;设置递增标志BCF STATUS,RP0;选bank0MOVLW0X0C;设定ccp1模块位MOVWFCCP1CON;PWM 输出MOVWFCCP2CON;PWM 输出CLRF CCPR1L;0CLRF CCPR2L;0CLRF T2CON;设定TMR2:后分频比1:1,预分频比1:1;暂时不开BSFT2CON,TMR2ON;启TMR2RETURN
10、;*;* Delay - 延时子程序;* Delay; call2 个指令周期clrf Count; 清 Count 1 个指令周期DloopdecfszCount,f; 这两行指令将延时gotoDloop; (256 * 3) -1 个指令周期return;return 占用 2 个指令周期;*;* LongDelay - 长延时子程序*;*LongDelay; call 指令占用 2 个指令周期clrf Count;清 Count 占用 1 个指令周期clrf Count1;清 Count1 占用 1 个指令周期movlw0 x03;占用 1 个指令周期movwfCount2;占用 1 个指令周期LDloopdecfszCount,f; 这两行指令将延时gotoLDloop; (256 * 3) -1 个指令周期decfszC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年自动化立体仓库的电气传动系统
- 2026年互联网+土木工程智能化施工的探索
- 2026春招:行政主管题库及答案
- 2026年建筑电气设计的多样化方案
- 2026春招:五粮液真题及答案
- 贴面课件教学课件
- 货运船舶相关知识培训课件
- 货运安全生产标准化培训课件
- 医疗物联网设备与智慧医院建设
- 护理护理安全管理与患者护理
- 法制副校长课件
- 水利安全生产六项机制实施方案
- 2025年信阳淮滨县司法局招聘合同制社区矫正社会工作者12名笔试考试参考试题及答案解析
- 2025危险化学品企业“5.10化学品安全和危险化学品重大危险源”解读与应用指南(编制-2025A1)
- 《Multisim14电子系统仿真与设计》课件(中)
- 送货单回签管理办法
- 2025年兽医公共卫生学考试试题(附答案)
- 医保编码管理办法
- 【MOOC答案】《创新与创业管理》(南京邮电大学)章节作业慕课答案
- 消防高位水箱巡查方案(3篇)
- 消渴的中医护理常规课件
评论
0/150
提交评论