单片机课程设计--步进电机驱动器-毕业设计内容摘要:
R液晶显示步进电机运行状态,其效果比用数码管显示要更加明了,也更容易读取相关状态和数据。 液晶上显示有电机运行的状态、当前 步数 、运行方向以及其运转速度。 其显示原理如下图 42: 图 42 液晶显示流程图 正反转流程图 步进电机的正反转用 K K2控制,初始化电机为顺时针转,即“》”, 每当按下 K4键,电机转向改变,具体流程图如下图 43: 启动与停止流程图 启动与停止是用 K1键来 控制的,初始化标志位 on_off==0,档按下 K1,即将 on_off置 1,每当按下 k1,都将在启动与停止间切换,具体流程图如下图 44: 图 44 启动与停止流程图 第 4 章 硬件设计 硬件的设计与选取 步进电机的驱动 步进电机的驱动采用 ULN2020,接到单片机的 ~,具体如 图 51: 图 51 步进电机驱动及其接口图 单片机的选取 目前市面上的通用型单片机种类很多,且适合不同应用场合的新产品不断出现,但目前的应用状况,以 8位中档 MCS51系列单片机的应用最为普遍。 基于这次课程设计的要求不高,我们可以选用 51系列或 52系列单片机,其有可靠性高,易于扩展以及实用性好等特点,完全可以满足我们的控制要求。 液晶 LCD1602 显示模块 P0接液晶的数据传送口, ~。 其接线图如下图 53: 图 53 液晶与单片机接口原理图 硬件的总体电路连接 图 55 总体原理图 第 5 章 设计程序 设计程序 include////// // 这个的关键在于 adc0808的接线特别是 0808的输出高地位不要搞错了,一开始搞错了 include include //Keil library include //Keil library define LCD_databus P0 //LCD12864的 8位数据口 define uint unsigned int define uchar unsigned char sbit EN=P2^2。 //down wr high rd sbit RS=P2^0。 //di high dat low sbit RW=P2^1。 //high rd low wr sbit CS2=P2^3。 // sbit CS1=P2^4。 sbit key1=P3^0。 sbit key2=P3^1。 //sbit key3=P3^2。 sbit key3=P3^3。 sbit key4=P3^4。 sbit key5=P3^5。 uchar ii。 uint num=60。 // 1 to 208 uint sudu。 // uint bushu。 // uchar *temp。 uchar flag。 uint shuju。 unsigned char code tabz[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}。 //正转 unsigned char code tabf[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}。 //反转 unsigned char code time[][16]={ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0, 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1, 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2, 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3, 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4, 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5, 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6, 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7, 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8, 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9, 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,/*r,0*/ 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/*/,0*/ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,/*m,0*/ 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*i,0*/ 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,/*n,0*/ 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,/*b,0*/ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,/*z,0*/ 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /* 文字 : : */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =8x16 */ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, // 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% // 0xE3,0x13,0x08,0x08,0x08,0x08,0x10,0x00,0x07,0x08,0x10,0x10,0x10,0x10,0x08,0x00//C /* 文字 : K */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =8x16 */ 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,/*f,19*/ }。 uchar code HZ[][32]={ /* 文字 : 卢 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0x24,0xE4,0x04,0x00,0x00, 0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00, /* 文字 : 超 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x40,0x48,0x48,0x48,0xFF,0x48,0x48,0x42,0xA2,0x9E,0x82,0xA2,0xC2,0xBE,0x00,0x00, 0x80,0x60,0x1F,0x20,0x7F,0x44,0x44,0x40,0x4F,0x48,0x48,0x48,0x48,0x4F,0x40,0x00, /* 文字 : 望 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x04,0x04,0xFC,0x45,0x46,0x24,0x24,0x04,0x80,0x7E,0x2A,0xAA,0x2A,0xFE,0x00,0x00, 0x80,0x82,0x92,0x92,0x92,0x92,0x92,0xFF,0x92,0x92,0x92,0x92,0x93,0x82,0x80,0x00, 0x00,0xFE,0x00,0xFC,0x00,0xFE,0x02,0xF2,0x12,0x1A,0xD6,0x12,0x12,0xFB,0x12,0x00, 0x40,0x3F,0x00,0x1F,0x00,0x7F,0x80,0x8F,0x40,0x20,0x1F,0x20,0x20,0x4F,0x80,0x00, 0x40,0x42,0x44,0xCC,0x00,0x08,0xE9,0x0A,0x0C,0xF8,0x0C,0x0A,0xE9,0x08,0x00,0x00, 0x00,0x40,0x20,0x1F,0x20,0x40,0x47,0x62,0x52,0x4F,0x42,0x42,0x47,0x60,0x20,0x00, 0x04,0x34,0xC4,0x04,0xC4,0x3C,0x20,0x10,0x0F,0xE8,0x08,0x08,0x28,0x18,0x00,0x00, 0x10,0x08,0x06,0x01,0x82,0x8C,0x40,0x30,0x0C,0x03,0x0C,0x10,0x60,0xC0,0x40,0x00, //欢, 5 0x40,0x42,0x44,0xC8,0x00,0xFC,0x04,0x02,0x82,0xFC,0x04,0x04,0x04,0xFE,0x04,0x00, 0x00,0x40,0x20,0x1F,0x20,0x47,0x42,0x41,0x40,0x7F,0x40,0x42,0x44,0x63,0x20,0x00, 0x40,0x20,0xF8,0x07,0x04,0xF4,0x14,0x14,0x14,0xFF,0x14,0x14,0x14,0xF6,0x04,0x00, 0x00,0x00,0xFF,0x00,0x80,0x43,0x45,0x29,0x19,0x17,0x21,0x21,0x41,0xC3,0x40,0x00, 0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFF,0x02,0x00,0x00, 0x80,0x60,0x1F,0x02,0x02,0x02,0x02,0x7F,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00, /* 文字 : 姓 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x10,0x10,0xF0,0x1F,0x10,0xF0,0x40,0x3C,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00, 0x40,0x22,0x15,0x08,0x16,0x21,0x40,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x40,0x00, /* 文字 : 名 */ /* 宋体 12。 此字体下对应的 点阵为:宽 x高 =16x16 */ 0x00,0x20,0x20,0x10,0x08,0x14,0x67,0x84,0x44,0x24,0x14,0x0C,0x00,0x00,0x00,0x00, 0x04,0x04,0x04,0x02,0xFE,0x43,0x43,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00, /* 文字 : 学 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00, 0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00, /* 文字 : 号 */ /* 宋体 12。 此字体下对应的点阵为:宽 x高 =16x16 */ 0x80,0x80,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xBE,0x80,0x80,0x80,0x00, 0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x44,0x84,0x44,0x3C,0x00,0x00,0x00,0x00, /* 文字 : 电 */ /* 宋体 12。 此字体下对应的点。单片机课程设计--步进电机驱动器-毕业设计
相关推荐
ROM、键盘、马达、 LED、 AD/DA、部分 SPI 器件、部分 IIC 器件等)。 软件编译采用 KEIL C51 软件, Keil C51 是美国 Keil Software 公司出品的 51系列兼容单片机 C 语言软件开发系统,与汇编相比, C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51
以便投标人获取有关编制投标文件和签署合同所涉及现场的资料。 投标人承担踏勘现场发生的自身费用。 招标人向投标人提供的有关现场的数据和资料,是招标人现有的能被投标人利用的资料,招标人对投标人作出的任何推论、理解和结论均不负责任。 经招标人允许,投标人可为踏勘目的进入招标人的项目现场,但投标 人不得因此使招标人承担有关的责任和蒙受损失,投标人应承担踏勘现场的责任和风险。
窃电 窃电者 将 电能表 进线中的零线断开,仅接入一根 火 线, 再将电器 的另一 端接到大地(自来水管、暖气管或保护接地线)。 电器消耗的 电流直接 流 入大地, 使得没有电网电压进入 电能表, 导致电 能 表 停止 工作 而 不能正常计量 , 从而 实现窃电。 强 外部 强 磁场窃电 永久磁 铁 和电磁场都 会影响电 能 表的正常计量,窃电者在电 能 表附近放置强磁磁铁或大线圈都能干扰电 能
旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环。 这一点在进行DS18B20 硬件连接和软件设计时也要给予一定的重视。 DS18B20 的性能特点(1) 独特的单线接口仅需要一个端口引脚进行通讯;(2) 在DS18B20中的每个器件上偶有独一无二的序列号,因此多个DS18B20可以并联在唯一的三线上,实现多点组网功能;(3)
//初始化 ds1302 Write1302(0x8e,0x00)。 //写控制字,允许写 set_ds1302(0x80,now_time_date,8)。 //设置初始时间,日期,年月 //LCD 初始化 LCDInit()。 //LCM 初始化 //显示 初始化界面 DisplayListChar(0, 0, uctech)。 DisplayListChar(2, 1, )。
,它还具有一个看门狗( WDT)定时 /计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。 AT89S52 有 40 个 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。 其芯片外观及引脚图如下: 引脚, 32 个外部双向输入 /输出( I/O)端口,同时内含 2