ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:54KB ,
资源ID:12211073      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-12211073.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(公交车lcd显示.doc)为本站会员(hskm5268)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

公交车lcd显示.doc

1、公交车 lcd显示/* 描述: * 12864标准字库液晶演示 数据 p0,控制 p2 */#include #include #define uchar unsigned char#define uint unsigned int/* 12864LCD引脚定义 */#define LCD_data P0 /数据口sbit LCD_RS = P26; /寄存器选择输入 sbit LCD_RW = P25; /液晶读/写控制sbit LCD_EN = P27; /液晶使能控制sbit LCD_PSB = P32; /串/并方式控制sbit LCD_RST = P37; /液晶复位端口sbit s

2、1=P30;sbit s2=P31;sbit s3=P33;int s1num=0,i;#define delayNOP(); _nop_();_nop_();_nop_();_nop_();/*/uchar code DIS1 = “东圃客运站“;uchar code DIS2 = “羊城花园“;uchar code DIS3 = “东圃镇 “;uchar code DIS4 = “车陂“;uchar code DIS5=“棠东“;uchar code DIS6=“棠下“;uchar code DIS7=“学院“;uchar code DIS8=“上社“;uchar code DIS9=“华

3、景新城“;uchar code DIS10=“师大暨大“;uchar code DIS11=“岗顶“;uchar code DIS12=“石牌桥“;uchar code DIS13=“终点站“;uchar code DIS14=“车转弯,请坐好附稳“;uchar code DIS15=“请你为有需要的乘客让座,谢谢合作“;/*/*/*/* */* 延时函数 */* */*/void delay(int ms)while(ms-)uchar i;for(i=0;i150;i+) _nop_(); _nop_();_nop_();_nop_();/*/* */* 延时函数 */* */*/void

4、 delay1(int ms)while(ms-)uchar y;for(y=0;y100;y+) ; /*/* */*检查 LCD忙状态 */*lcd_busy为 1时,忙,等待。lcd-busy 为 0时,闲,可写指令与数据。 */* */*/bit lcd_busy() bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;delayNOP();result = (bit)(P0LCD_EN = 0;return(result); /*/* */*写指令数据到 LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */* */*/void

5、lcd_wcmd(uchar cmd) while(lcd_busy();LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_(); P0 = cmd;delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0; /*/* */*写显示数据到 LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */* */*/void lcd_wdat(uchar dat) while(lcd_busy();LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;delayNOP();LCD_EN =

6、 1;delayNOP();LCD_EN = 0; /*/* */* LCD初始化设定 */* */*/void lcd_init() LCD_PSB = 1; /并口方式LCD_RST = 0; /液晶复位delay(3); LCD_RST = 1; delay(3);lcd_wcmd(0x34); /扩充指令操作delay(5);lcd_wcmd(0x30); /基本指令操作delay(5);lcd_wcmd(0x0C); /显示开,关光标delay(5);lcd_wcmd(0x01); /清除 LCD的显示内容delay(5);/*/* */* 设定显示位置 */* */*/void l

7、cd_pos(uchar X,uchar Y) uchar pos;if (X=1)X=0x80;else if (X=2)X=0x90;else if (X=3)X=0x88;else if (X=4)X=0x98;pos = X+Y ; lcd_wcmd(pos); /显示地址/* * 闪烁函数 * */void lcdflag() lcd_wcmd(0x08); delay(400);lcd_wcmd(0x0c); delay(400);lcd_wcmd(0x08); delay(400);lcd_wcmd(0x0c); delay(400);lcd_wcmd(0x08); delay(

8、200); lcd_wcmd(0x0c); delay(5);lcd_wcmd(0x01); delay(5);/* * 清屏函数 * */void clr_screen()lcd_wcmd(0x34); /扩充指令操作delay(5); lcd_wcmd(0x30); /基本指令操作delay(5); lcd_wcmd(0x01); /清屏 delay(5); /*; 显示字符表代码*/void bytecode()uchar s;clr_screen(); /清屏 lcd_wcmd(0x80); /设置显示位置为第一行 for(s=0;s16;s+)lcd_wdat(0x30+s); lc

9、d_wcmd(0x90); /设置显示位置为第二行 for(s=0;s16;s+)lcd_wdat(0x40+s); lcd_wcmd(0x88); /设置显示位置为第三行 for(s=0;s16;s+)lcd_wdat(0x50+s); lcd_wcmd(0x98); /设置显示位置为第四行 for(s=0;s16;s+)lcd_wdat(0x60+s); /* * 按键 * */void keyscan()if(s1=0)delay(5);if(s1=0)s1num+;while(!s1);switch(s1num)case 1: lcd_pos(1,0);clr_screen(); /设

10、置显示位置为第一行for(i=0;i10;i+)lcd_wdat(DIS1i);delay(30);break;case 2: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i8;i+)lcd_wdat(DIS2i);delay(30);break;case 3: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i6;i+)lcd_wdat(DIS3i);delay(30);break;case 4: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)

11、lcd_wdat(DIS4i);delay(30);break;case 5: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS5i);delay(30);break;case 6: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS6i);delay(30);break;case 7: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS7i);delay(30

12、);break;case 8: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS8i);delay(30);break;case 9: lcd_pos(1,0); clr_screen(); /设置显示位置为第一行for(i=0;i8;i+)lcd_wdat(DIS9i);delay(30);break;case 10: lcd_pos(1,0); clr_screen(); /设置显示位置为第一行for(i=0;i8;i+)lcd_wdat(DIS10i);delay(30);break;case 11: lcd

13、_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS11i);delay(30);break;case 12: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i6;i+)lcd_wdat(DIS12i);delay(30);break;case 13: lcd_pos(1,0); clr_screen(); /设置显示位置为第一行for(i=0;i6;i+)lcd_wdat(DIS13i);delay(30);break;case 14: lcd_pos(1,0);clr_scr

14、een(); /设置显示位置为第一行for(i=0;i6;i+)lcd_wdat(DIS12i);delay(30);break;case 15: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS11i);delay(30);break;case 16: lcd_pos(1,0); clr_screen(); /设置显示位置为第一行for(i=0;i8;i+)lcd_wdat(DIS10i);delay(30);break;case 17: lcd_pos(1,0); clr_screen(); /设置显示位置为第

15、一行for(i=0;i8;i+)lcd_wdat(DIS9i);delay(30);break;case 18: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS8i);delay(30);break;case 19: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS7i);delay(30);break;case 20: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_w

16、dat(DIS6i);delay(30);break;case 21: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS5i);delay(30);break;case 22: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i4;i+)lcd_wdat(DIS4i);delay(30);break;case 23: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i6;i+)lcd_wdat(DIS3i);delay(30);

17、break;case 24: lcd_pos(1,0);clr_screen(); /设置显示位置为第一行for(i=0;i8;i+)lcd_wdat(DIS2i);delay(30);break;case 25: lcd_pos(1,0); /设置显示位置为第一行for(i=0;i10;i+)lcd_wdat(DIS1i);delay(30);break;case 26: s1num=0;break;if(s2=0) clr_screen();lcd_pos(1,0); /设置显示位置为第一行for(i=0;i18;i+)lcd_wdat(DIS14i);delay(30);if(s3=0)

18、 clr_screen();lcd_pos(1,0); /设置显示位置为第一行for(i=0;i32;i+)lcd_wdat(DIS15i);delay(30);/* * 主函数 * */void main()uchar i;delay(100); /上电,等待稳定lcd_init(); /初始化 LCDwhile(1)/*lcd_pos(1,0); /设置显示位置为第一行for(i=0;i10;i+)lcd_wdat(DIS1i);delay(30);lcd_pos(2,0); /设置显示位置为第二行for(i=0;i8;i+)lcd_wdat(DIS2i);delay(30);lcd_pos(3,0); /设置显示位置为第三行for(i=0;i6;i+)lcd_wdat(DIS3i);delay(30);lcd_pos(4,0); /设置显示位置为第四行for(i=0;i4;i+)lcd_wdat(DIS4i);delay(30);delay(1000);*/keyscan();/*/

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报