第一范文网 - 专业文章范例文档资料分享平台

基于单片机设计课程设计论文 - 图文

来源:用户分享 时间:2025/5/30 11:59:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#endif

CHAR LCD.C #include #include #include \// 初始化程序

// 函数功能: LCD初始化 // 入口参数: 无 // 返回参数: 无 // 全局变量: 无

// 调用模块: 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() //

// 函数功能: 检测LCD 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; }

25

//----------------------------------------------------------------- // 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)

//----------------------------------------------------------------- //

// 函数功能: 写LCD的指令地址 // 入口参数:LCD指令地址 // 返回参数: 无 // 全局变量:

// 调用模块: lcd_wcmd(); // 注意事项:

//----------------------------------------------------------------- void lcd_pos(unsigned char pos) {

lcd_wcmd(pos|0x80); }

//----------------------------------------------------------------- // void WrCLcdD (uchar lcddata)

26

//----------------------------------------------------------------- //

// 函数功能: 写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_(); } } }

CHAR LCD.H #ifndef __char_lcd_h__ #define __char_lcd_h__

//-----------------------------------------------------------------

27

// 数据类型宏定义

//----------------------------------------------------------------- #define uchar unsigned char #define uint unsigned int

//----------------------------------------------------------------- // I/O口定义:控制/数据线接口

//----------------------------------------------------------------- sbit rs=P2^2; //寄存器选择端口 sbit rw=P2^1; //读写选择端口 sbit ep=P2^0; //使能信号端口

//----------------------------------------------------------------- // 外部变量声明

//----------------------------------------------------------------- //----------------------------------------------------------------- // 外部函数声明

//----------------------------------------------------------------- extern void lcd_init(void); // LCD初始化

extern bit lcd_bz(void); // 检测LCD BF的状态 extern void lcd_wcmd(uchar cmd); // 写LCD的指令代码 extern void lcd_wdat(uchar dat); // 写LCD显示的数据

extern void lcd_pos(uchar pos); // 写LCD的指令代码地址//extern void CG_Write (void);

extern void delay(uchar ms); // 延时 #endif

4.1 时钟部分软件设计

Display.c

#include #include \//#include \#include \

uchar code dis4[] = {\

uchar code initdisp[] = {\//uchar code DT_place[] = {7,10,13,21,24,27};

uchar code DT_lcdplace[] = {0x07,0x0a,0x0d,0x45,0x48,0x4b}; uchar code DTdata_addr[] = {9,8,7,4,2,0}; uchar DTdata_tab[] = {0,0,0,0,0,0};

uchar code chars[8][6] = {{\ \ \{\ day \{%uchar data_h,data_l; void data_wr() {

uchar i;

for(i=5; i>=0; i--) {

*(ds_addr+(DTdata_addr[i]))=DTdata_tab[i];

28

搜索更多关于: 基于单片机设计课程设计论文 - 图文 的文档
基于单片机设计课程设计论文 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3a9er8mvc26o2vt5ky9z_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top