打印
[AVR单片机]

iccAVR编程+proteus仿真问题求解

[复制链接]
922|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guiyin|  楼主 | 2015-6-23 17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序加到电路中仿真始终没法让K6控制Q1的通断,请求大神赐教。。。。程序哪里有不对的地方,多学习了。。。
电路图如下所示

程序如下所示
#define F_CPU 12000000UL
#include <iom16v.h>
#define uchar    unsigned char
#define uint     unsigned int
#include "macros.h"
#include <eeprom.h>
#include <math.h>
//--------------------------------
//主程序
//-------------------------------------

void main(void)
{  

   DDRD|=BIT(PD4);              //PD4端口输出
   PORTD&=~BIT(PD4);            //断开继电器
   DDRB=0X00;                   //PB2端口输入
   PORTB|=0xFF;                 //PB2端口内部上拉


while(1)
  {
  if(PINB&0x04==0)
         {
          while(PINB&0x04==0);
          PORTD|=BIT(PD4);
          delay_nms(5000);
      PORTD&=~BIT(PD4);
     }
  }
}

void delay_1us(void)                 //1us延时函数
{
  asm("nop");
  }

void delay_nus(unsigned int n)       //N us延时函数
{while(n--)
   ;
  }

void delay_1ms(void)                 //1ms延时函数
  {
   unsigned int i;
   for (i=0;i<1428;i++);
  }
void delay_nms(unsigned int n)       //Nms延时函数
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }

相关帖子

沙发
694844985| | 2015-6-23 19:35 | 只看该作者
你要确定是那里问题,是单片机端口不能控制,还是三极管仿真不行,proteus里有很多三极管没有仿真模型,不能仿真的,你可以用示波器看一看单片机io端口是不是有变化,确定是软件问题和硬件问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝