用RC振荡电路测量电阻R.docx

上传人:b****1 文档编号:3010988 上传时间:2023-05-05 格式:DOCX 页数:16 大小:17.69KB
下载 相关 举报
用RC振荡电路测量电阻R.docx_第1页
第1页 / 共16页
用RC振荡电路测量电阻R.docx_第2页
第2页 / 共16页
用RC振荡电路测量电阻R.docx_第3页
第3页 / 共16页
用RC振荡电路测量电阻R.docx_第4页
第4页 / 共16页
用RC振荡电路测量电阻R.docx_第5页
第5页 / 共16页
用RC振荡电路测量电阻R.docx_第6页
第6页 / 共16页
用RC振荡电路测量电阻R.docx_第7页
第7页 / 共16页
用RC振荡电路测量电阻R.docx_第8页
第8页 / 共16页
用RC振荡电路测量电阻R.docx_第9页
第9页 / 共16页
用RC振荡电路测量电阻R.docx_第10页
第10页 / 共16页
用RC振荡电路测量电阻R.docx_第11页
第11页 / 共16页
用RC振荡电路测量电阻R.docx_第12页
第12页 / 共16页
用RC振荡电路测量电阻R.docx_第13页
第13页 / 共16页
用RC振荡电路测量电阻R.docx_第14页
第14页 / 共16页
用RC振荡电路测量电阻R.docx_第15页
第15页 / 共16页
用RC振荡电路测量电阻R.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用RC振荡电路测量电阻R.docx

《用RC振荡电路测量电阻R.docx》由会员分享,可在线阅读,更多相关《用RC振荡电路测量电阻R.docx(16页珍藏版)》请在冰点文库上搜索。

用RC振荡电路测量电阻R.docx

用RC振荡电路测量电阻R

;用RC振荡电路测量电阻R

;振荡频率接到外部定时器T0

;液晶显示采用JMC1602C-HD44780

;键盘P2口独立式按键

;C=1UF

;R=200

;RX=721500/F-100欧姆

;RC振荡信号接T0(14)脚

;按下key0(P20)键可以保持测量数据

;============================================================

;HD44780引脚连接

;1GND

;2VDD

;3V0-GND对比度最亮

;4RS-P000写入指令,1写入数据

;5RW-GND只写不读,各数据指令之间延时

;6EN-P01下降沿写入指令

;7DB0

;8DB1

;9DB2

;10DB3

;11DB4-P04

;12DB5-P05

;13DB6-P06

;14DB7-P07

;15BL1

;16BL2

;工作方式:

只写不读,中间延时,4位数据宽度

;[注:

AT89S51使用12M晶振]

;=============================================================*/

;-------------------------------------

;LCD引脚定义

LCM_RSEQUP0.0

LCM_ENEQUP0.1

LCM_DATAEQUP0

F_INPUT_PINEQUP1.1;频率输入脚

LEDEQUP3.4

KEY0EQUP2.0

;...........................................

;变量定义

RCAP_BUF0_HEQU08H

RCAP_BUF0_LEQU09H

RCAP_BUF1_HEQU0AH

RCAP_BUF1_LEQU0BH

FRQ_HEQU0CH

FRQ_LEQU0DH

DISBUF0EQU0EH

DISBUF1EQU0FH

;位定义

FLAGEQU20H

RCAP_END_FGEQUFLAG.0

RCAP_FULL_FGEQUFLAG.1

CF_END_FGEQUFLAG.2

;------------------------------------------

T2CONDATA0C8H

RCAP2LDATA0CAH

RCAP2HDATA0CBH

TL2DATA0CCH

TH2DATA0CDH

TF2BIT0CFH

EXF2BIT0CEH

RCLKBIT0CDH

TCLKBIT0CCH

EXEN2BIT0CBH

TR2BIT0CAH

C_T2BIT0C9H

CP_RL2BIT0C8H

;以下是主程序开始

ORG0000H

AJMPSTART;转主程序

ORG0003H

RETI

ORG000BH

RETI

ORG0013H

RETI

ORG001BH

LJMPT1INT

ORG0023H

RETI

ORG002BH

RETI

;-------------------------------------------

ORG0030H

START:

MOVSP,#60H

;...........................................

CLRLCM_EN;LCD_EN初始状态0

LCALLINIT_LCD;初始化LCD

MOVR5,#10;延时等待

LCALLDELAY

;...........................................

MOVA,#0;0行

MOVB,#0;0列

MOVDPTR,#TITLE;字符串

LCALLLCD_PRN_STR;显示字符串"89c51RTEST"

MOVA,#1;1行

MOVB,#0;0列

MOVDPTR,#R_INFO;字符串

LCALLLCD_PRN_STR;显示字符串"R="

SJMP$

;...........................................

;初始化LCD

;功能设定指令

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/usㄧ

;├——————┼——┼——┼——┼——┼——┼——┼——┼——┼——┼——┼———┤

;ㄧ功能设定ㄧ0ㄧ0ㄧ0ㄧ0ㄧ1ㄧDLㄧNㄧFㄧXㄧXㄧ40ㄧ

;└——————┴——┴——┴——┴——┴——┴——┴——┴——┴——┴——┴———┘

;功能:

设定数据总线位数、显示的行数及字型。

参数设定的情况如下:

;位名设置

;DL0=数据总线为4位1=数据总线为8位

;N0=显示1行1=显示2行

;F0=5×7点阵/每字符1=5×10点阵/每字符

;显示开关控制指令

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/usㄧ

;├——————┼——┼——┼——┼——┼——┼——┼——┼——┼——┼——┼———┤

;ㄧ显示开关控制ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ1ㄧDㄧCㄧBㄧ40ㄧ

;└——————┴——┴——┴——┴——┴——┴——┴——┴——┴——┴——┴———┘

;功能:

控制显示器开/关、光标显示/关闭以及光标是否闪烁。

参数设定的情况如下:

;位名设置

;D0=显示功能关1=显示功能开

;C0=无光标1=有光标

;B0=光标闪烁1=光标不闪烁

;设定显示屏或光标移动方向指令

;

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/usㄧ

;├——————┼——┼——┼——┼——┼——┼——┼——┼——┼——┼——┼———┤

;ㄧ设定显示屏或ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ1ㄧS/CㄧR/LㄧXㄧXㄧ40ㄧ

;ㄧ光标移动方向ㄧㄧㄧㄧㄧㄧㄧㄧㄧㄧㄧㄧ

;└——————┴——┴——┴——┴——┴——┴——┴——┴——┴——┴——┴———┘

;功能:

使光标移位或使整个显示屏幕移位。

参数设定的情况如下:

;S/CR/L设定情况

;00光标左移1格,且AC值减1

;01光标右移1格,且AC值加1

;10显示器上字符全部左移一格,但光标不动

;11显示器上字符全部右移一格,但光标不动

;清屏指令

;

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/msㄧ

;├——————┼——┼——┼——┼——┼——┼——┼——┼——┼——┼——┼———┤

;ㄧ清屏ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ1ㄧ1.64ㄧ

;└——————┴——┴——┴——┴——┴——┴——┴——┴——┴——┴——┴———┘

;功能:

<1>清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;

;<2>光标归位,即将光标撤回液晶显示屏的左上方;

;<3>将地址计数器(AC)的值设为0。

INIT_LCD:

MOVLCM_DATA,#30H;4位I/O初始化

LCALLEN;写动作

MOVR5,#2;延时等待

LCALLDELAY

MOVLCM_DATA,#30H;4位I/O初始化

LCALLEN;写动作

MOVR5,#2;延时等待

LCALLDELAY

MOVLCM_DATA,#30H;4位I/O初始化

LCALLEN;写动作

MOVR5,#2;延时等待

LCALLDELAY

MOVLCM_DATA,#20H;4位I/O初始化

LCALLEN;写动作

MOVR5,#2;延时等待

LCALLDELAY

MOVA,#28H

LCALLWCOM

MOVR5,#1;延时等待;

LCALLDELAY

MOVA,#0CH

LCALLWCOM

MOVR5,#1;延时等待;作者:

刘玉宏

LCALLDELAY

MOVA,#01H;显示清屏

LCALLWCOM

MOVR5,#1;延时等待

LCALLDELAY

RET

;-----------------------------------------------------------------

;产生下降沿用于写命令;

EN:

SETBLCM_EN

LCALLDE

CLRLCM_EN

LCALLDE

RET

;-----------------------------------------------------------------

DE:

MOVR7,#10

DJNZR7,$

RET

;-----------------------------------------------------------------

;写命令

;参数传递A;

WCOM:

PUSHB

MOVB,A;A暂存

ANLA,#0F0H;清除低4位,保持LCD_EN为0

MOVLCM_DATA,A;写高4位

CLRLCM_RS;写命令LCM_RS=0

LCALLEN;写动作

MOVA,B;取出保存的参数

RLCA

RLCA

RLCA

RLCA;4位方式先写高4位,再写低4位

ANLA,#0F0H;清除低4位,保持LCD_EN为0

MOVLCM_DATA,A

CLRLCM_RS;写命令LCM_RS=0

LCALLEN;写动作

POPB

RET;、

;--------------------------------------------------------------------

;-----------------------------------------------------------------

;写数据

;参数传递A

WDATA:

PUSHB

MOVB,A;A暂存

ANLA,#0F0H;清除低4位,保持LCD_EN为0

MOVLCM_DATA,A

SETBLCM_RS;写数据LCM_RS=1

LCALLEN;写动作

MOVA,B;取出保存的参数

RLCA

RLCA

RLCA

RLCA;4位方式先写高4位,再写低4位

ANLA,#0F0H;清除低4位,保持LCD_EN为0

MOVLCM_DATA,A

SETBLCM_RS;写数据LCM_RS=1

LCALLEN;写动作

POPB;

RET

;--------------------------------------------------------------------

;延时R5*10MS

DELAY:

MOVR6,#50

D1:

MOVR7,#100

DJNZR7,$

DJNZR6,D1

DJNZR5,DELAY

RET

;--------------------------------------------------------------------

;在第0行指定位置显示字符

;参数A显示字符的ascii码,B显示的位置

LCDP0:

PUSHACC

MOVA,B

;设定DDRAM地址指令

;

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/usㄧ

;├——————┼——┼——┼——┼——┴——┴——┴——┴——┴——┴——┼———┤

;ㄧ设定CGRAMㄧ0ㄧ0ㄧ1ㄧDDRAM的地址(7位)ㄧ40ㄧ

;ㄧ地址ㄧㄧㄧㄧㄧㄧ

;└——————┴——┴——┴——┴————————————————————┴———┘

;功能:

设定下一个要存入数据的CGRAM的地址。

;DDRAM地址与显示位置的对应关系;作者:

刘玉宏

;

;╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮

;┊┊

;┊00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH┊

;┊┊

;┊40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH┊

;┊┊

;╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯

ADDA,#80H;第一行地址

LCALLWCOM

POPACC;数据

LCALLWDATA

RET

;--------------------------------------------------------------------

;在第1行指定位置显示字符

;参数A显示字符的ascii码,B显示的位置

LCDP1:

PUSHACC

MOVA,B

;设定DDRAM地址指令

;

;┌——————┬—————————————————————————————┬———┐

;ㄧㄧ指令编码ㄧ执行ㄧ

;ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ

;ㄧㄧRSㄧR/WㄧDB7ㄧDB6ㄧDB5ㄧDB4ㄧDB3ㄧDB2ㄧDB1ㄧDB0ㄧ/usㄧ

;├——————┼——┼——┼——┼——┴——┴——┴——┴——┴——┴——┼———┤

;ㄧ设定CGRAMㄧ0ㄧ0ㄧ1ㄧDDRAM的地址(7位)ㄧ40ㄧ

;ㄧ地址ㄧㄧㄧㄧㄧㄧ

;└——————┴——┴——┴——┴————————————————————┴———┘

;功能:

设定下一个要存入数据的CGRAM的地址。

;DDRAM地址与显示位置的对应关系

;

;╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮

;┊┊

;┊00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH┊

;┊┊

;┊40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH┊

;┊┊

;╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯

ADDA,#0C0H;第二行地址

LCALLWCOM

POPACC;数据

LCALLWDATA

RET

;--------------------------------------------------------------------

;在指定位置显示一行字符串(以0结尾),不检查是否超长,没有考虑空格覆盖以后的内容

;参数A行,B列,DPTR字符串指针

LCD_PRN_STR:

CJNEA,#0,LINE2

LINE1:

MOVA,B

ADDA,#80H;第0行地址;

LCALLWCOM

LJMPFILL

LINE2:

MOVA,B

ADDA,#0C0H;第1行地址

LCALLWCOM

LJMPFILL

FILL:

CLRA

MOVCA,@A+DPTR

CJNEA,#0,L1

RET

L1:

;

LCALLWDATA

INCDPTR

AJMPFILL

;--------------------------------------------------------------------

TITLE:

DB'89C51RTEST',0

R_INFO:

DB'R=',0

;--------------------------------------------------------------------

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2