单片机实训报告
课程名称:单片机实训
班级:
姓名:
学号:
教学周数: 2周
指导教师:
一、实验目的
通过本周课程设计:
轴流风机启动
(1):进一步熟悉KEIIL C51集成环境的利用方式。
(2):熟悉51指令,把握编程方式, 能进行稍复杂程序的编写。
(3):把握LCD1602液晶中英文显示的方式。
(4):把握液晶的利用,在液晶上显示年,月,日,时,分,秒,并能进行时刻的调整。
(5):能进行电路板的焊接,并能检查存在的问题。
(6):对给定题目能进行系统设计,能画出硬件原理图,给出软件流程图。并进行软件仿真。
(7):熟练调试程序。
(8):利用编程器写入单片机程序,对完成的软硬件进行系统调试。
二、实验内容
利用单片机AT89C51操纵实现LCD1602液晶进行
1.中英文显示。
2.时钟显示
第一周:进行软件仿真
第二周:进行实物制作
三、实验环境
软件:WINDOWS XP操作系统下KEIL C51集成环境,TOP51
编程软件。
硬件:联想CPU 420,电脑一台,TOP51编程器一台,仿真电源线一条,连接导线假设干。
四、实验步骤
依如实验要求在Proteus中画出单片机与LCD1602液晶显示连
接电路图进行仿真:
实验一:显示字符“A”
程序如下:
COM EQU 20H;要写入LCD的命令寄存在20H中DAT EQU 21H ;要写入LCD的数据寄存在21H中LCD_PORT EQU P2
RS EQU
RW EQU
E EQU
ORG 0000H
LJMP START
ORG 0100H
START: MOV SP, #70H ;给堆栈指针赋值
MOV P2, #0FFH ;P1口赋全1,为读取状态做预备
MOV COM,#84H ;第一行第五列DDRAM地址命令字
LCALL LCD_W_CMD ;挪用写命令子程序
MOV DA T,#41H;设置字符“A”的ASCII码
LCALL LCD_W_DA T ;挪用写数据子程序SJMP $
;************LCD初始化子程序INT***********
INT: MOV COM,#3CH
LCALL LCD_W_CMD
MOV COM,#0EH
LCALL LCD_W_CMD
MOV COM,#01H
LCALL LCD_W_CMD
MOV COM,#06H
LCALL LCD_W_CMD
MOV COM,#80H
LCALL LCD_W_CMD
RET
;************写显示数据子程序LCD_W_DAT********** LCD_W_DA T: PUSH ACC
LCD_W_DA T_A: LCALL LCD_R_STAT
JNB ,LCD_W_DA T_B
LCALL DELAY100us
SJMP LCD_W_DAT_A
LCD_W_DAT_B: CLR RW
LCALL NOP5
SETB RS
LCALL NOP5
SETB E双生筷
LCALL NOP5
MOV A,DAT
MOV LCD_PORT,A
LCALL NOP5
CLR E
LCALL NOP5
SETB RW
输电线路监测
POP ACC
RET
;************写命令子程序LCD_W_CMD*********** LCD_W_CMD: PUSH ACC
LCD_W_CMD_A: LCALL LCD_R_STA T
JNB ,LCD_W_CMD_B
LCALL DELAY100us
SJMP LCD_W_CMD_A
LCD_W_CMD_B:CLR RW
LCALL NOP5
CLR RS
LCALL NOP5
SETB E
LCALL NOP5
MOV A,COM
MOV LCD_PORT,A
LCALL NOP5
CLR E
LCALL NOP5
SETB RW
POP ACC
RET
;************读状态子程序LCD_R_STAT*********** LCD_R_STAT: SETB RW
双向节流阀
空气质量流量
LCALL NOP5
CLR RS
SETB E
ACALL NOP5
MOV A,LCD_PORT
ACALL NOP5
CLR E
ACALL NOP5
CLR RW
RET
;************延时子程序DELAY100us********** DELAY100us: MOV R7,#24H
D1: NOP
NOP
新方法DJNZ R7,D1
RET
NOP5: NOP
NOP
NOP
NOP
NOP
RET
END
LCD仿真“A”结果如下: