实验(十)1602驱动实验

该实验旨在通过AT89C52单片机在1602液晶屏上显示文字,了解串口通信、1602液晶的工作原理及中断服务函数的应用。实验涉及硬件原理、程序流程图、代码编写及1602液晶的初始化。通过Keil软件进行代码编译和Proteus进行仿真,最终成功在液晶屏上显示两行特定文字。
摘要由CSDN通过智能技术生成

一.实验目的、内容、仪器

实验内容:在1602上显示一排特定文字。

实验目的:1.了解单片机串口接收与发送方法

2.1602的显示原理

3.了解单片机串口中断服务函数用法

实验仪器:AT89C52:52单片机,LM016L:1602液晶,VIRTUAL TERMINAL:虚拟串口监视器,COMPIN:串口设备。

二.硬件原理

 

 三.程序流程图

 四.代码实现

	#include <reg52.h>
#include <stdio.h>
#include <string.h>
unsigned char code table1[] = {"hello,world."};
unsigned char code table2[] = {"0123456789"};
sbit RS=P2^0;   
sbit RW=P2^1;   
sbit EN=P2^2;   
void delay(unsigned int n)      
{
    unsigned int i=0,j=0;
    for (i=n;i>0;i--)
     for (j=0;j<110;j++);  
}
void writecmd(unsigned char command)
{    
        RS = 0;           
        RW = 0;  
        P3 = command;              
        EN = 1;        
        delay(2);
        EN = 0;
 
        RS = 0;           
        RW = 0;                
        P3 = command << 4;
        EN = 1;        
        delay(2);
        EN = 0;
}
void writedata(unsigned char dat)
{
        
        RS = 1;        
        RW = 0; 
        P3 = dat;               
        EN = 1;        
        delay(2);
        EN = 0;
 
        
        RS = 1;        
        RW = 0;                
        P3 = dat << 4;
        EN = 1;        
        delay(2);
        EN = 0;
}
void display(unsigned int len,unsigned char *s)
{
    unsigned int i;
    for(i=0;i<len;i++)
        writedata(s[i]);
}
void init_1602(void)
{
    delay(50);
    writecmd(0x33);//原来1602初始化成4位数据线之前必需先初始化成8位(此时命令发送方式是8位格式,但数据线只需接4位)
    writecmd(0x32);//然后再改到4位线宽,这样初始化才稳定
    writecmd(0x28);//四线模式设置
    writecmd(0x0c);//显示开--对应开关显示控制指令
    writecmd(0x01);
    delay(30);
}
void main(void)
{
   init_1602();
   writecmd(0x80);
   display(strlen(table1),table1);
   writecmd(0xc0);
   display(strlen(table2),table2);
   while(1);                  
}

五.实验步骤

(1)了解1602的显示原理

(2)搭建仿真电路,勾选debug,建立keil工程,选择单片机型号

(3)给工程创建源码文件,并以.c结尾,添加文件到源组里

(4)生成hex文件,点击魔术棒,在output中勾选Create HRX_File

(5)对代码进行编译,调试debug,点击USE,在下拉菜单里选中“Proteus VSM Monitor 一 51 ”进行设置

(6)将程序导入到单片机中运行,双击单片机,选择生成的hex文件

(7)在keil中启动调试,开始运行,观察proteus中的电路

六.结果及讨论

液晶,即液态晶体(Liquid Crystal,LC),是相态的一种,因为具有特殊的理化与光电特性,20世纪中叶开始被广泛应用在轻薄型的显示技术上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值