单片机课程设计

发布 2022-10-05 00:23:28 阅读 4847

目录 0

一、题目简介 1

二、实现方案 1

三、电路功能 1

3.1各模块的功能 1

3.2 usb转串口模块 1

3.3 1602液晶显示模块 2

四、软件流程图 4

五、软件设计源程序 7

六、总结 10

七、参考文献 10

1602液晶也叫符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5x7或者5x11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,1602lcd是指显示的内容为16x2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

市面上字符液晶大多数是基于hd44780液晶芯片的,控制原理是完全相同的,因此基于hd44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

1. 通过pc机上串口助手等相关软件,将ascii码发送至单片机;

2. 单片机将接收到的ascii码显示到lcd1602液晶上。

1. usb转串口模块:将usb接口转化为串口后与单片机相连,用来**程序和实现单片机pc串口通讯。

2. 1602液晶显示模块:lcd1602具有微功耗、体积小、显示内容丰富、超薄轻巧等优点,能够同时显示16×2个字,用来显示单片机接收到的ascii码。

1.单片机串口和电脑串口的通信。

由于单片机串口是ttl电平,要和电脑串口通信就需要使得两者的电平逻辑一样才可以通信。这时,就需要用到usb电平转ttl电平的芯片,本次实验所用转换芯片为ch340。

单片机与电脑的连接方式为:单片机串口—usb转ttl芯片(ch340)—usb口。

2.串口通信工作原理。

pc机先发送从键盘输入的数据,单片机接收后回发给pc机。单片机和pc机进行通信时,要求使用的波特率、传送的位数等相同。要能够进行数据传送也必须首先测试双方是否可以可靠通信。

可在pc机和单片机上各编制非常短小的程序,具体可分成pc机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。这三个程序能运行通过,即可证明串行口工作正常。

pc机串行口发送接收程序设置串行口为波特率位数据、1位停止位、无奇偶校验的简单设置。从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。

图1 usb转串口**电路。

1. 1602外形与引脚。

图2 lcd1602模块外形。

图3 1602英文数字显示屏。

1602采用标准的16脚接口:

第1脚:vss为地电源。

第2脚:vdd接5v正电源。

第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度(建议接地,弄不好有的模块会不显示)

第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:rw为读写信号线,高电平时进行读操作,低电平时进行写操作。

第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:d0~d7为8位双向数据线。

第15~16脚:空脚(有的用来接背光)

2. 1602主要命令。

指令1:清显示,指令码01h,光标复位到地址00h位置。

指令2:光标复位,光标返回到地址00h。

指令3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

指令4:显示开关控制。 d:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。

指令6:功能设置命令 dl:高电平时为4位总线,低电平时为8位总线 n:

低电平时为单行显示,高电平时双行显示 f: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:字符发生器ram地址设置。

指令8:ddram地址设置。

指令9:读忙信号和光标地址 bf:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。

指令11:读数据。

本设计由主控芯片51单片机,usb转串口模块、1602液晶显示模块组成。单片机负责控制整个系统的执行过程。

图4 软件流程图。

图5 实验结果图。

主程序:#include<>

#include<>

#define uchar unsigned char

#define uint unsigned int

uchar code table1=

uchar table[17];

uchar n,num;

void send();

void write_hexnum(uchar n)

if(n>=10)

else write_data('0'+n);

void display_num(uchar num)

write_com(0xc0);

write_hexnum(num>>4);/高四位。

write_hexnum(num&0x0f);/低四位。

void display(uchar *p)

while(*p!='0')

void main()/上位机发送数据,单片机控制1602液晶显示。

uint i,j;

i=0;j=0;

tmod=0x20; /打开定时器1选择工作模式2

scon=0x50;

th1=0xfd确定波特率9600

tl1=0xfd;

tr1=1启动定时器1

es=1打开串口中断。

ea=1打开总中断。

write_com(0x80);

init();1602初始化。

for(num=0;num<16;num++)

while(1)

void send(uchar dat)

sbuf = dat发送。

while(!ti);

ti = 0;

*void ser() interrupt 4 //串行口中断程序。

while(!ri);

send(shuju);

table[n]=sbuf;

n++;if(n==17)

1602液晶显示程序:

#include<>

#define uchar unsigned char

#define uint unsigned int

sbit lcden=p2^0;//使能信号。

sbit lcdrs=p2^2;//数据/命令(h/l)选择端。

sbit lcdrw=p2^1;

uchar shuju;

void delay(uint z)//z=1延时1ms

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--)

void write_com(uchar com)//写指令。

lcdrs=0;

lcdrw=0;

p0=com;//输入数据指令码。

lcden=1;

delay(5);

lcden=0;

void write_data(uchar date)//写数据。

lcdrs=1;

lcdrw=0;

p0=date;//输入数据。

delay(5);

lcden=1;

delay(5);

lcden=0;

void init() 初始化。

//uchar num;

/ p0=0;

/ lcden=0;//使能端初始化。

write_com(0x38); 显示模式设置,设置16x2显示,5x7点阵,8位数据接口。

write_com(0x0c);/显示开及光标移动设置。

write_com(0x06); 写一个字符后地址加一,且光标加一。

write_com(0x01); 所有显示清零

本次课程设计;让我了解学习了pc与单片机串口通信的相关知识,加深了对其的了解认识,为以后的工作和学习积累了经验。今后的工作学习会更加便利。

1]《单片机课程设计指导》 北京航天航空大学出版社 2002

2] 伍时和等.数字电子技术基础.北京:清华大学出版社,2009.4.

3] 张天凡等.51单片机c语言开发详解.北京:电子工业出版社,2008.6.

4] 马忠梅等.单片机的c语言应用程序设计.北京:北京航空航天大学出版社,2007.1.

单片机课程设计

可变程序控制器是集微机技术 自动化技术 通讯技术于一体的通用工业控制装置。它可靠性强 性能 比高 使用方便,已在工业控制的各个领域里得到了极为广泛的应用,成为实现工业自动化的一种强有力的工具 1 plc的定义有许多种。国际电工委员会 iec 对plc的定义是 可编程控制器是一种数字运算操作的电子系统...

单片机课程设计

目录。内容提要2 关键词2引言3 一 硬件电路设计3 一 电路板原理3 二 电路元器件3 二 软件设计3 一 秒钟设计方案3 二 时钟设计方案4 结语7单片机时钟设计。内容摘要 一 在实验板上用动态扫描显示00 59秒钟,具体要求如下 一 6m晶振 二 l9 l10显示00 59十进制数并循环,间隔...

单片机课程设计

1 选题背景。1.1 家庭智能防盗报警系统设计的背景及目的。随着经济的发展,人们对防盗 防劫 防火保安设备的需求量大大增加。针对偷盗 抢劫 火灾 煤气泄漏等事故进行检测和报警的系统,其需求也越来越高。家居智能是以家为平台,兼备建筑 自动化,智能化于一体的高效 舒适 安全 便利的家居环境。自动化的家居...