找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2174|回复: 0
打印 上一主题 下一主题
收起左侧

Proteus虚拟仿真见张志良主编的《单片机应用项目式教程——基于Keil和Proteus》(...

[复制链接]
跳转到指定楼层
楼主
ID:111634 发表于 2016-3-31 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已知单片机控制四相步进电机电路,如图7-8所示,Kp为正转(顺时针)按钮,Kn为反转(逆时针)按钮,试按表7-7中8拍激励方式,编制驱动程序,画出Proteus ISIS虚拟电路,并仿真调试。









⒈ 编程
#include<reg51.h>                       //包含访问sfr库函数reg51.h
sbit  Kp=P1^6;                         //定义位标识符Kp为P1.6(正转按键)
sbit  Kn=P1^7;                         //定义位标识符Kn为P1.7(反转按键)
void  main(){                           //主函数
unsigned char  r[8]={                  //定义8拍驱动数组,并赋值
0xc1,0xc3,0xc2,0xc6,0xc4,0xcc,0xc8,0xc9};
unsigned char  i;                      //定义无符号字符型变量i(循环序数)
unsigned int  t;                       //定义无符号整型变量t(延时参数)
P1=0xf0;                             //清P1口低4位数据
while(1){                             //无限循环执行下列语句
if ((Kp==0)&(Kn!=0)){               //若正转键单独按下
for (i=0;i<8;i++){                  //循环正转
P1=(P1&0xf0)|r[i];               //依次输出正转控制字
for (t=0;t<10000;t++);}}           //约延时60ms
else  if ((Kn==0)&(Kp!=0)){          //若反转键单独按下
for (i=7;i<8;i--){                   //循环反转
P1=(P1&0xf0)|r[i];               //依次输出反转控制字
for (t=0;t<10000;t++);}}           //约延时60ms
else  P1&=0xf0;}}                  //否则,停转
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表