基于单片机的电机软启动器设计(9)

2020-04-14 23:00

中北大学2014届毕业设计说明书

JD_k=0; }

/*------------------------------------------------ 外部中断1程序

------------------------------------------------*/ void INT1_isr(void) interrupt 2 using 1 { g2++; }

/*----------------------------------------------- 名称:LCD1602

------------------------------------------------*/ #include \#include \#define CHECK_BUSY

sbit RS = P2^5; //定义端口 sbit RW = P2^6; sbit EN = P2^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

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

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

#ifdef CHECK_BUSY DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_();

}

中北大学2014届毕业设计说明书

EN_SET;

return (bit)(DataPort & 0x80); #else return 0; #endif }

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

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

// while(LCD_Check_Busy()); //忙则等待 DelayMs(15); RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; }

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

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

//while(LCD_Check_Busy()); //忙则等待 DelayMs(15); RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; }

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

中北大学2014届毕业设计说明书

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

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

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

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

void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { while (*s) {

LCD_Write_Char(x,y,*s); s ++; x++; } }

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

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

void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) {

LCD_Write_Com(0x80 + x); } else {

LCD_Write_Com(0xC0 + x); } LCD_Write_Data( Data); }

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

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

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

中北大学2014届毕业设计说明书

LCD_Write_Com(0x38); DelayMs(15);

LCD_Write_Com(0x38); DelayMs(15);

LCD_Write_Com(0x38);

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

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

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

#include #include\

/*------------------------------------------------ 定时器0初始化子程序 ------------------------------------------------*/ void Init_Timer0(void) {

TMOD |= 0x01;

TH0=(65536-10)/256;

TL0=(65536-10)%6;//定时10m ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 }

void Init_Timer1(void) {

TMOD |= 0x50; TH1=65535;

TL1=65535;//定时10mS ET1=1; //计数器中断打开 TR1=1; //计数器开关打开 }

void Init_Timer2(void) {

中北大学2014届毕业设计说明书

C_T2=1; TH2=0;

TL2=0;//定时10mS

TR2=1; //计数器开关打开 }

void Init_INT0(void) {

EX0=1; //外部中断0开 IT0=1; //边沿触发 }

void Init_INT1(void) {

EX1=1; //外部中断0开 IT1=1; //边沿触发 }#include #include #define uchar unsigned char #define uint unsigned int //定义AD芯片的管脚 sbit sdo0=P2^3;

sbit clk0=P2^1; //TLC549管脚定义 sbit sc0 =P2^2;

uchar TLC549_0() //TLC549 AD转换函数 {

uchar temp=0; uchar i;

sc0=1; //CS置高,片选无效 clk0=0; sdo0=1; sc0=0; _nop_();

_nop_(); //延迟1.4us

for(i=0;i<8;i++) //串行数据移位输入 { temp=(temp<<1)|sdo0;

clk0= 1; //0.4us _nop_(); //0.1us

中北大学2014届毕业设计说明书

clk0= 0; //0.4us }

sc0=1; //CS置高,片选无效 i=5;

while(i--); //需要延迟时间17us以上

return (temp);

}


基于单片机的电机软启动器设计(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车构造名词解释 - 简答题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: