51试验--串口通信液晶显示c程序_第1页
51试验--串口通信液晶显示c程序_第2页
51试验--串口通信液晶显示c程序_第3页
51试验--串口通信液晶显示c程序_第4页
51试验--串口通信液晶显示c程序_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序: C 语言 1: /* 实现功能 * 接收电脑 串口调试助手 发来的信息, 显示在发光二极管上 (查询方式 ) */ 包含头文件 */ 51 实验 11- 串口通信 串口通信,原理图如下: /* #include 初始化函数 */ /* void init() TMOD=0 x20;/设置定时器 1 为工作方式 2 TH1=0 xfd;/T1 装初值 TL1=0 xfd; TR1=1;/启动 T1 REN=1;/允许串行接收 SM0=0;/ 设置串口为工作方式 1 SM1=1; /* 主函数 */ void main() init();/ 初始化 while(1) if(RI=1); R

2、I=0;/ 接收中断标志位 (取消终端申请 ) 2: P1=SBUF;/读/ 取缓冲寄存器内数据 C 语言 /* 实现功能 * 接收电脑 串口调试助手 发来的信息, 显示在发光二极管上 (中断方式 ) */ /* 包含头文件 */ #include 初始化函数 void init() TMOD=0 x20;/设置定时器 1 为工作方式 2 TH1=0 xfd;/T1 装初值 TL1=0 xfd; TR1=1;/启动 T1 REN=1;/允许串行接收 SM0=0;/ 设置串口为工作方式 1 SM1=1; EA=1;/开总中断 ES=1;/开串口中断 主函数 * void main() init(

3、);/ 初始化 while(1) void ser() interrupt 4 RI=0;/ 接收中断标志位 (取消终端申请 ) P1=SBUF;/读/ 取缓冲寄存器内数据 C 语言 3 : /* 实现功能 * 接收电脑 串口调试助手 发来的信息, 并将收到的信息再发给电脑。 */ 包含头文件 */ /* #include /*宏定义 */ #define uint unsigned int #define uchar unsigned char /* 变量声明 */ uchar flag,shou; /* 初始化函数 */ void init() TMOD=0 x20;/设置定时器 1 为工

4、作方式 2 TH1=0 xfd;/T1 装初值 TL1=0 xfd; TR1=1;/启动 T1 REN=1;/允许串行接收 SM0=0;/ 设置串口为工作方式 1 SM1=1; EA=1;/开总中断 ES=1;/开串口中断 主函数 * void main() init();/ 初始化 while(1) if(flag=1) flag=0; ES=0;/关串行口中断 SBUF=shou;/SBUF=1;/SBUF=s; / 将变量 shou 中的数据传给缓冲器 while(!TI); TI=0;/ 发送中断标志位 (取消中断申请 ) ES=1;/开串行口中断 void ser() interru

5、pt 4 RI=0;/ 接收中断标志位 (取消中断申请 ) P1=SBUF;/读/ 取缓冲寄存器内数据 shou=SBUF;/将缓冲区的数据读入变量 shou flag=1; 1602 液晶显示,原理图如下: 程序: C 语言 1: /* 实现功能 * 在第一行显示 ILIKEY! ,在第二行显示 WOAINI ! 。 显示完毕后,整屏左移,进入液晶显示界面。 */ /* 包含文件头 */ #include /* 宏定义 */ #define uint unsigned int #define uchar unsigned char /* 位声明 */ sbit lcden=P34;/ 液晶控

6、制 sbit lcdrs=P35;/ 液晶控制 sbit dula=P26;/ 关锁存器,防止 USB sbit wela=P27;/ 供电不足 /* 函数声明 */ void delay(uint z);/ 延时 void write_com(uchar com);/ 写指令 void write_date(uchar date);/ 写数据 /* 显示编码 */ uchar code table1=ILIKEY!; uchar code table2=WOAINI!; /* 变量声明 */ uchar num; /* 初始化函数 */ void init() dula=0;/ 关锁存器 w

7、ela=0; lcden=0;/ 使能信号,允许控制 write_com(0 x38);/ 显示模式设置 / 设置显示为 16*2 显示, 5*7 点阵, 8 位数据接口 / write_com(0 x0e);/ 开显示,显示光标,光标不闪烁 / write_com(0 x0f);/ 开显示,显示光标,光标闪烁 / write_com(0 x0b);/ 关显示,显示光标,光标不闪烁 write_com(0 x0c);/ 开显示,不显示光标,光标不闪烁 / write_com(0 x0d);/ 开显示,不显示光标,光标闪烁 write_com(0 x06); / 当读或写一个字符后,地址指针加一

8、,且光标加一 / 当写一个字符时,整平显示不移动 /* write_com(0 x04); / 当读或写一个字符后,地址指针减一,且光标减一 / 当写一个字符时,整平显示不移动 */ /* write_com(0 x07); / 当写一个字符时,整平显示左移, / 以得到光标不移而屏幕移动的效果。 */ /* write_com(0 x05); / 当写一个字符时,整平显示右移 , / 以得到光标不移而屏幕移动的效果。 */ write_com(0 x01);/ 显示清屏 / 数据指针清零,所有显示清零 /* write_com(0 x02);/ 显示回车 / 数据指针清零 */ write_

9、com(0 x80+0 x10);/ 设置数据地址指针 / 设置数据指针为外侧,然后移动到内侧 /* 主函数 */ void main() init();/ 初始化 for(num=0;num7;num+)/ 第一行显示 7 个字符 write_date(table1num);/ 写数据 delay(20); / write_com(0 x01);/ 清屏 write_com(0 x80+0 x50);/ 设置第二行为显示位 for(num=0;num7;num+)/ 第二行显示 7 个字符 write_date(table2num);/ 写数据 delay(20); for(num=0;nu

10、m0;x-) for(y=110;y0;y-); C 语言 2: 。 实现功能 在第一行显示 ILIKEY! ,在第二行显示 WOAINI! 光标显示,光标闪烁,慢速从左向右显示! #include /* 宏定义 */ 包含文件头 */ #define uint unsigned int #define uchar unsigned char /* 位声明 */ sbit lcden=P34;/ 液晶控制 sbit lcdrs=P35;/ 液晶控制 sbit dula=P26;/ 关锁存器,防止 USB sbit wela=P27;/ 供电不足 /* 函数声明 */ void delay(ui

11、nt z);/ 延时 void write_com(uchar com);/ 写指令 void write_date(uchar date);/ 写数据 /* 显示编码 */ uchar code table1=ILIKEY!; uchar code table2=WOAINI!; /* 变量声明 */ uchar num; /* 初始化函数 */ void init() dula=0;/ 关锁存器 wela=0; lcden=0;/ 使能信号,允许控制 write_com(0 x38);/ 显示模式设置 / 设置显示为 16*2 显示, 5*7 点阵, 8 位数据接口 / write_com

12、(0 x0e);/ 开显示,显示光标,光标不闪烁 write_com(0 x0f);/ 开显示,显示光标,光标闪烁 / write_com(0 x0b);/ 关显示,显示光标,光标不闪烁 / write_com(0 x0c);/ 开显示,不显示光标,光标不闪烁 / write_com(0 x0d);/ 开显示,不显示光标,光标闪烁 write_com(0 x06); / 当读或写一个字符后,地址指针加一,且光标加一 / 当写一个字符时,整平显示不移动 /* write_com(0 x04); / 当读或写一个字符后,地址指针减一,且光标减一 / 当写一个字符时,整平显示不移动 */ /* wr

13、ite_com(0 x07); / 当写一个字符时,整平显示左移, / 以得到光标不移而屏幕移动的效果。 */ /* write_com(0 x05); / 当写一个字符时,整平显示右移 , / 以得到光标不移而屏幕移动的效果。 */ write_com(0 x01);/ 显示清屏 / 数据指针清零,所有显示清零 /* write_com(0 x02);/ 显示回车 / 数据指针清零 */ write_com(0 x80);/ 设置数据地址指针 / 设置数据指针为第一行起始位置 主函数 * void main() init();/ 初始化 for(num=0;num7;num+)/ 第一行显示 7 个字符 write_d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论