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

自动化1105任军峰 - 图文(4)

来源:网络收集 时间:2019-01-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

单片机系统课程设计

图5.1

经过一周的资料查找和设计,我已完成了单片机的课程设计。通过这次设计学到了不少东西,动手操作后才知道,理论和实践的差别。就软件部分的程序的编写花费了好长时间,还有画图方面,都是通过自己学习后,才开始做的。

同时,由于设计的时间和能力有限,还有许多功能和技术没有充分研究,可能存在不合理的地方。但是,一个完整的课程设计过程,让我掌握了单片机系统和电子操作软件等方面的知识,尤其是熟悉了用protel画电路原理图和用visio画程序流程图。这使我在动手能力方面有很大的提升,也给今后更成功、完善的设计打下坚实的基础。

参考文献

[1] 张迎新.单片机原理、应用及接口技术.国防工业出版社,1993 [2] 王青林 张伟 赵静波Protel 99se基础教程.人民邮电出版社 2013/12/9 [3] 邓兴成.单片机原理与实践指导.北京:机械工业出版社,2010 [4] 阎石.数字电子技术基础.北京:高等教育出版社,2009.

附录

#include //包含头文件,

15

单片机系统课程设计 #include

#define uint unsigned int typedef unsigned char uint8;

sbit RS = P1^0; //定义端口 sbit RW = P1^1; sbit DS = P1^6; sbit KQ = P1^7; sbit EN = P2^5; sbit DU = P2^0; sbit WE = P2^1; sbit BF = P0^7 ;

sbit FM = P2^3;

sbit k1=P3^0; sbit k2=P3^1; sbit k3=P3^2; sbit k4=P3^3; sbit k5=P3^4; sbit k6=P3^5; sbit k7=P3^6; sbit k8=P3^7;

#define RS_CLR RS=0 #define RS_SET RS=1

#define RW_CLR RW=0 #define RW_SET RW=1

#define EN_CLR EN=0 #define EN_SET EN=1

#define DataPort P0

void cmg88()//关数码管,点阵函数 {

DU=1; P0=0X00; DU=0; }

/*------------------------------------------------

uS延时函数,含有输入参数 unsigned char t,无返回值

16

单片机系统课程设计 unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS

------------------------------------------------*/ void DelayUs2x(unsigned char t) {

while(--t); }

/*------------------------------------------------

mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编 ------------------------------------------------*/ void DelayMs(unsigned char t) {

while(t--) {

//大致延时1mS DelayUs2x(245); DelayUs2x(245); } }

/*------------------------------------------------ 判忙函数

------------------------------------------------*/ bit LCD_Check_Busy(void) {

DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET;

return (bit)(DataPort & 0x80); }

/*------------------------------------------------ 写入命令函数

------------------------------------------------*/ void LCD_Write_Com(unsigned char com) {

while(LCD_Check_Busy()); //忙则等待

17

单片机系统课程设计 RS_CLR; RW_CLR; EN_SET;

DataPort= com; _nop_(); EN_CLR; }

/*------------------------------------------------ 写入数据函数

------------------------------------------------*/ void LCD_Write_Data(unsigned char Data) {

while(LCD_Check_Busy()); //忙则等待 RS_SET; RW_CLR; EN_SET;

DataPort= Data; _nop_(); EN_CLR; }

/*------------------------------------------------ 清屏函数

------------------------------------------------*/ void LCD_Clear(void) {

LCD_Write_Com(0x01); DelayMs(5); }

/*------------------------------------------------ 写入字符串函数

------------------------------------------------*/

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x); //表示第一行 } else

{

LCD_Write_Com(0xC0 + x); //表示第二行 } while (*s)

18

单片机系统课程设计 {

LCD_Write_Data( *s); s ++; } }

/*------------------------------------------------ 初始化函数

------------------------------------------------*/ void LCD_Init(void) {

LCD_Write_Com(0x38); //显示模式设置 DelayMs(5);

LCD_Write_Com(0x38); DelayMs(5);

LCD_Write_Com(0x38); DelayMs(5);

LCD_Write_Com(0x38);

LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/

LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5);

LCD_Write_Com(0x0C); /*显示开及光标设置*/ }

void wait(void) { P0 = 0xFF; do { RS = 0; RW = 1; EN = 0; EN = 1; }while (BF == 1); EN = 0; }

void w_dat(uint8 dat) { wait(); //忙则等待 EN_CLR;

19

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库自动化1105任军峰 - 图文(4)在线全文阅读。

自动化1105任军峰 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/447676.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: