用RC振荡电路测量电阻RWord下载.docx
《用RC振荡电路测量电阻RWord下载.docx》由会员分享,可在线阅读,更多相关《用RC振荡电路测量电阻RWord下载.docx(13页珍藏版)》请在冰豆网上搜索。
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
ORG0013H
ORG001BH
LJMPT1INT
ORG0023H
ORG002BH
-------------------------------------------
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行
MOVDPTR,#R_INFO;
R="
SJMP$;
功能设定指令
┌——————┬—————————————————————————————┬———┐
ㄧㄧ指令编码
ㄧ执行ㄧ
ㄧ指令功能├——┬——┬——┬——┬——┬——┬——┬——┬——┬——┤时间ㄧ
ㄧㄧ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点阵/每字符
显示开关控制指令
ㄧ显示开关控制ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ0ㄧ1ㄧDㄧCㄧBㄧ40ㄧ
控制显示器开/关、光标显示/关闭以及光标是否闪烁。
D0=显示功能关1=显示功能开
C0=无光标1=有光标
B0=光标闪烁1=光标不闪烁
设定显示屏或光标移动方向指令
ㄧ设定显示屏或ㄧ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;
MOVLCM_DATA,#20H;
MOVA,#28H
LCALLWCOM
MOVR5,#1;
延时等待;
MOVA,#0CH
作者:
刘玉宏
MOVA,#01H;
显示清屏
RET
-----------------------------------------------------------------
产生下降沿用于写命令;
EN:
SETBLCM_EN
LCALLDE
CLRLCM_EN
DE:
MOVR7,#10
DJNZR7,$
写命令
参数传递A;
WCOM:
PUSHB
MOVB,A;
A暂存
ANLA,#0F0H;
清除低4位,保持LCD_EN为0
MOVLCM_DATA,A;
写高4位
CLRLCM_RS;
写命令LCM_RS=0
MOVA,B;
取出保存的参数
RLCA
RLCA;
4位方式先写高4位,再写低4位
MOVLCM_DATA,A
POPB
RET;
、
--------------------------------------------------------------------
--------