版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;硬件连接:1602lcd显示hz短接p1.4--p3.则显示010hz;LCD1602显示在不增加外部计数硬件的情况下,本试验软件可测最高频率达到460KHz;工作原理:;1S钟内对输入脉冲所计数的次数则为频率值。;16位二进制加法计数器的最大计数值为65535。;设置定时器0工作在定时方式1,定时1S。;设置定时器1工作在计数方式1,对输入脉冲进行计数,溢出产生中断。;将定时器1中断定义为优先。在中断处理程序里对中断次数进行计数°1S到后,;将中断次数和计数器里的计数值取出进行综合数据处理,处理后的数据送LCD1602显示?;信号来源:;1、软件里对P1.4定时取反,形成输出脉冲,接到P3.5可自测。;显示结果:P1.4-P3.5显示:10(Hz);如果有条件的话,可使用专用设备(信号发生器和频率计)进行校正。;频率计的程序;包含:外部中断设置,中断服务程序,定时程序,定时服务程序;以及数据处理,显示,包括三位十进制数转化为四位BCD码,;INT_GEQU35H;中断计数缓冲单元高地址INT_HEQU34H;中断计数缓冲单元中地址INT_LEQU33H;中断计数缓冲单元低地址BEEPBITP3.7LCD_RSBITP2.0LCD_RWBITP2.1LCD_ENBITP2.2LCD_XEQU3FH;LCD地址变量TIMER_HEQU30H;定时器高位字节单元TIMER_LEQU31H;定时器低位字节单元TIMCOUNT'EQU32H;时间中断数T_SEQU36H;数据显示低位T_MEQU37H;数据显示中位T_HEQU38H;数据显示高位T_GEQU39H;数据显示最高位;ORGHJMPMAIN;主程序开始ORG0BHJMPTIMER_INT;定时器T0中断服务程序ORG1BH;定时器T1中断服务程序JMPTIMER1ORG30HMAIN: MOVSP,#60H;设置SP指针LCALLPRO_SET;初始化CALLSET_LCDLCALLTIM_T0;;LCD1602是慢速显示器件,故1MS显示一次。;MAIN1:MOVR5,40MAIN2:ACALLDELAY1;3msDJNZR5,MAIN2ACALLSBIN_SBCDCALLCONVJMPMAIN1;;T1计数器中断服务子程序;计T1计数器溢出次数;TIMER1:INC2AHRETI;;初始化程序;PRO_SET: MOVA,#HMOVB,#HMOV2AH,AMOVP0,#0FFHMOVP1,#0FFHMOVP2,#0FFHMOVINT_H,#HMOVINT_L,#HMOVINT_G,#HMOVT_S,#HMOVT_H,#HMOVT_M,#HMOVTIMCOUNT,#HMOVTIMER_H,#04CH;定时50MSMOVTIMER_L,#10H;CLRBEEPSETBP3.5;P3.5端置输入状态RET;T1(TIMER1的外部输入脚);;LCD初始化设置;-SET_LCD:CLRLCD_ENCALLINIT_LCD;初始化LCDCALLDELAY1MOVDPTR,#INFO1;指针指到显示信息1MOVA,#1;显示在第一行CALLLCD_SHOWMOVDPTR,#INFO2';指针指到显示信息2MOVA,#2;显示在第二行CALLLCD_SHOWRET;INFO1:DB" CYMOMETER ",0;LCD第一行显示信息INFO2:DB"FREQ:HZ",0;LCD第二行显示信息;;LCD接初始化;8位I/O控制;INIT_LCD:MOVA,#38H;双列显示,字形5*7点阵CALLWCOMCALLDELAY1MOVA,#38H;双列显示,字形5*7点阵CALLWCOMCALLDELAY1MOVA,#38H;双列显示,字形5*7点阵CALLWCOMCALLDELAY1MOVA,#0CH;开显示,关光标,CALLWCOMCALLDELAY1MOVA,#01H;清除LCD显示屏CALLWCOMCALLDELAY1RET;LCD_SHOW: ;在LCD的第一行或第二行显示信息字符CJNEA,#1,LINE2;判断是否为第一行LINE1:MOVA,#80H;设置LCD的第一行地址CALLWCOM;写入命令CALLCLR_LINE;清除该行字符数据MOVA,#80H;设置LCD的第一行地址CALLWCOM;写入命令JMPFILLLINE2:MOVA,#0C0H;设置LCD的第二行地址CALLWCOM;写入命令CALLCLR_LINE;清除该行字符数据MOVA,#0C0H;设置LCD的第二行地址CALLWCOMFILL:CLRA;填入字符MOVCA,@A+DPTR;由消息区取出字符CJNEA,#0,LC1;判断是否为结束码RETLC1:CALLWDATA;写入数据INCDPTR;指针加1JMPFILL;继续填入字符RET,CLR_LINE:;清除该行LCD的字符MOVR0,#24CL1:MOVA,#’’CALLWDATADJNZR0,CL1RET,;写指令、数据使能子程序;ENABLE: ;写指令使能CLRLCD_RS;RS=L,LCD_RW=L,D0-D7指*令码,E=高脉冲CLRLCD_RWSETBLCD_ENCALLDELAY0CLRLCD_ENRETENABLE1:
SETBCLRSETB
;写数据使能LCD_RS;RS=H,RW=L,D0-D7=S据,E=高脉冲LCD_RWLCD_ENCALLDELAY0CLRLCD_ENRETDELAY0:MOVR7,#250DJNZR7,$RET;;写入命令子程序;WCOM:P0,AMOVENABLECALLRET;;写入数据子程序;WDATA:P0,AMOVENABLE1CALL;RET;在LCD第二行显示字符;A=ASCDATA,B=LINEXPOS;-LCDP2:PUSHACCMOVA,BA,#0C0HADDCALLWCOMACCWDATAPOPCALLRET;
;延时5微秒;以8位控制方式将命令写至LCD;写入命令;以8位控制方式将数据写至LCD;写入数据;在;LCD的第二行显示字符;设置显示地址;设置LCD的第二行地址;写入命令;由堆栈取出A;写入数据;ASCII转换并在第二行显示数字子程序;CONV: ;MOV A,T_GMOV LCD_X,#6 ;设置位置;CALLSHOW_DIG2,MOV A,T_H;INCLCD_X ;加载小时数据CALL SHOW_DIG2 ;显示数据MOV A,T_M ;加载分钟数据INCLCD_X ;设置位置;SHOW_DIG2:;DELAY1:
CALLMOVINCCALLRETMOVDIVADDPUSHMOVCALLPOPMOVADDINCMOVCALLRET
SHOW_DIG2A,T_SLCD_XSHOW_DIG2B,#16ABA,#30HBB,LCD_XLCDP2BA,BA,#30HLCD_XB,LCD_XLCDP2
;显示数据;加载秒数数据;设置位置;显示数据--;延时3MSD2: MOVR6,#15MOVR7,#1DJNZR7,$DJNZR6,D2RET;/----旧出;设置定时器0工作在定时方式1,定时器1工作在计数方式1;MOVTMOD,#0D1HTIM_T0:MOVTH0,TIMER_HMOVTL0,TIMER_LMOVTH1,#HMOVTL1,#HMOVIE,#8AHSETBPT1SETBTR1SETBTR0RET;淀时器0中断服务程序;TIMER_INT:
;设置定时初值高位;设置定时初值低位;清计数器;开中断总允许,允许T0溢出中断;定时器开始工作CLRTR0;关闭定时器MOVTL0,TIMER_L;重新赋初值MOVTH0,TIMER_H;INCTIMCOUNT;定时1S,时间单位MOVA,TIMCOUNT;查看数量值CPLP1.4;产生自测信号CJNE;A,#20,T_END;如果没有到1S返回CLRTR1;关闭计数器T1MOVTIMCOUNT,#H;到1S则清零MOVINT_L,TL1;取出计数值低位MOVINT_H,TH1;取出计数值高位MOVINT_G,2AH;取出溢出计数值位MOVTH1,#HMOVTL1,#HMOV2AH,#HSETBTR1T_END:SETBTR0;重新开始定时操作RETI;;三字节二进制整数转换成四字节BCD码子程序;二进制数从低位到高位分别存放在INT_LINT_H、INT_G单元中;BCD码从低位到高位分别存放在T_S、T_M、T_H、T_G单元中;SBIN_SBCD:PUSHPSWSETBPSW.3;设置当前寄存器CLRPSW.4CLRA;清累加器MOVT_G,AMOVT_H,A;清除出单元,准备转换MOVT_M,AMOVT_S,AMOV R5,INT_GMOV R7,INT_L;设置二进制数起始地址MOV R6,INT_HMOV R2,#24CLRCHH1:MOV A,R7RLCAMOV R7,AMOVA,R6RLCAMOVR6,AMOVA,R5RLCAMOVR5,AMOVA,T_S
;得到低位数据ADDCA,T_S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论