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

上传人:b****0 文档编号:311339 上传时间:2022-10-08 格式:DOCX 页数:13 大小:16.77KB
下载 相关 举报
用RC振荡电路测量电阻R.docx_第1页
第1页 / 共13页
用RC振荡电路测量电阻R.docx_第2页
第2页 / 共13页
用RC振荡电路测量电阻R.docx_第3页
第3页 / 共13页
用RC振荡电路测量电阻R.docx_第4页
第4页 / 共13页
用RC振荡电路测量电阻R.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

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

用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;、

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

;--------

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

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1