• a20880
    了解作者
  • C++
    开发工具
  • 84KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 6
    下载次数
  • 2015-08-28 14:40
    上传日期
DS12c887电子时钟,1602液晶屏显示,
ds12c887.rar
  • ds12c887_ok12
  • main.M51
    18.3KB
  • ds12887_lcd
    9.3KB
  • main
    18.2KB
  • ds12887RW.LST
    5.4KB
  • key.c
    3.5KB
  • ds12887_lcd.plg
    6.6KB
  • ds12887_lcd.PWI
    935B
  • key.h
    1.3KB
  • char_lcd.c
    4.1KB
  • main.OBJ
    3.4KB
  • data_proc.h
    1011B
  • data_proc.OBJ
    872B
  • char_lcd.LST
    8.5KB
  • lcd_display.OBJ
    5.3KB
  • data_proc.LST
    5.8KB
  • lcd_display.LST
    5.3KB
  • ds12887_lcd.Opt
    2.5KB
  • data_pro.LST
    6.4KB
  • ds12887_lcd.Uv2
    2.2KB
  • main.hex
    2.8KB
  • ds12887RW.c
    2.3KB
  • main.lnp
    74B
  • char_lcd.OBJ
    5.7KB
  • main.plg
    197B
  • ds12887_lcd.lnp
    67B
  • lcd_display.c
    1.8KB
  • model.h
    1019B
  • model.c
    2.9KB
  • char_lcd.h
    1.4KB
  • ds12887_lcd.DSN
    115KB
  • lcd_display.h
    1.4KB
  • key.LST
    9.7KB
  • Last Loaded ds12887_lcd.DBK
    113.1KB
  • main.LST
    4.6KB
  • char_lcd.plg
    221B
  • data_proc.c
    2.9KB
  • main.c
    2.1KB
  • ds12887RW.OBJ
    2.7KB
  • key.OBJ
    6.4KB
  • ds12887_lcd_Opt.Bak
    2.6KB
  • ds12887RW.h
    1.1KB
  • ds12887_lcd.M51
    9.6KB
内容介绍
//----------------------------------------------------------------- // 程序描述:LCD字符型子程序 // 作 者: // 开始日期:20-- // 完成日期:20-- // 修改日期:20-- // // 说 明: // (1)调试使用的工作晶振Fosc=12MHz; // (2)LCD的接口方式:直接控制方式; // (3)LCM的数据线和控制线可以和单片机的任意I/O口相连; // (4)每次读/写LCD操作之前,应首先检测忙标志BF,确认BF=0后,访问过程才能进行 //----------------------------------------------------------------- //----------------------------------------------------------------- // 头文件包含 //----------------------------------------------------------------- #include <reg51.h> #include <intrins.h> #include "char_lcd.h" //----------------------------------------------------------------- // 初始化程序 //----------------------------------------------------------------- //----------------------------------------------------------------- // void lcd_init (void) //----------------------------------------------------------------- // // 函数功能: LCM初始化 // 入口参数: 无 // 返回参数: 无 // 全局变量: 无 // 调用模块: lcd_wcmd(); delay(); //----------------------------------------------------------------- void lcd_init() { lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); } //----------------------------------------------------------------- // 功能程序 //----------------------------------------------------------------- //----------------------------------------------------------------- // bit lcd_bz() //----------------------------------------------------------------- // // 函数功能: 检测LCM BF的状态 // 入口参数: 无 // 返回参数: 无 // 全局变量: 无 // 调用模块: 无 // 注意事项: 每次读写LCM操作之前,应首先检测忙标志BF,确认BF=0后,访问过程才能进行 //----------------------------------------------------------------- bit lcd_bz() { bit busy; rs=0; rw=1; ep=1; _nop_(); _nop_(); _nop_(); _nop_(); busy=(bit)(P1&0x80); ep=0; return busy; } //----------------------------------------------------------------- // void lcd_wcmd(unsigned char cmd) //----------------------------------------------------------------- // // 函数功能: 写LCM的指令代码 // 入口参数: LCM指令 // 返回参数: 无 // 全局变量: // 调用模块: lcd_bz(); // 注意事项: //----------------------------------------------------------------- void lcd_wcmd(unsigned char cmd) { while(lcd_bz());//判断LCD是否忙碌 rs=0; rw=0; ep=0; _nop_(); _nop_(); P1=cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep=1; _nop_(); _nop_(); _nop_(); _nop_(); ep=0; } //----------------------------------------------------------------- // void lcd_pos(unsigned char pos) //----------------------------------------------------------------- // // 函数功能: 写LCM的指令地址 // 入口参数: LCM指令地址 // 返回参数: 无 // 全局变量: // 调用模块: lcd_wcmd(); // 注意事项: //----------------------------------------------------------------- void lcd_pos(unsigned char pos) { lcd_wcmd(pos|0x80); } //----------------------------------------------------------------- // void WrCLcdD (uchar lcddata) //----------------------------------------------------------------- // // 函数功能: 写LCM要显示的数据 // 入口参数: 待写的数据 // 返回参数: 无 // 全局变量: // 调用模块: lcd_bz(); // 注意事项: //----------------------------------------------------------------- void lcd_wdat(unsigned char dat) { while(lcd_bz());//判断LCD是否忙碌 rs=1; rw=0; ep=0; P1=dat; _nop_(); _nop_(); ep=1; _nop_(); _nop_(); ep=0; _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); } //----------------------------------------------------------------- // 延时程序 //----------------------------------------------------------------- void delay(uchar ms) { uchar i; while(ms--) { for(i=0; i<250; i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } //----------------------------------------------------------------- // End Of File //-----------------------------------------------------------------
评论
    相关推荐