单片机c语言仿真

来源:互联网 发布:matlab centos ubuntu 编辑:程序博客网 时间:2024/05/17 21:08

介绍一下c语言单片机仿真的工具

keil 和 proteus

keil链接:https://pan.baidu.com/s/1skS3jrv 密码:afd5

proteus链接:https://pan.baidu.com/s/1pKBCnaz 密码:7inc

keil压缩包解压后有注册机可以激活

一切就绪后打开keil->projedt->new uvision project, 然后file->new,就可以在文件中写c代码了(文件的后缀要写成.c),写完后把改文件添加到工程里,右键source group->add files to group..找到自己的刚才写的c文件,ok,这样就添加进去了。那么你的文件是基于什么样的环境,如果是51单片机那么就file->device databases,找到atmel,点击+展开,找到AT89c51,双击或者点击add即可。如果自己还写了头文件,那么在project->options for target...->A51,在include path中填入头文件的路径即可。当然我们要的是以.hex结尾的文件,project->oprions for target..->output,把create hex file打钩。然后从左到右依次点击页面左上角白色的project头上的三个按钮,就会产生hex文件,如果代码有错误那一定是代码有问题,如果没有那么恭喜。

当然,写c代码是根据自己设计的电路写的。

打开proteus,file->new project,写自己的工程文件名,然后next,next...最后finish。然后左键点击P,在出现的窗口中搜索自己想要的元件,双击选中的元件就添加到了P下面。添加完成后在P下面的元件中左键点击一个要用的,在到右边空白处左键点击,就出现了,如果选错了,点击右键就取消了,点击左键就确定了,当然也可以右键元件,delete object。电容电阻什么的左键双击可以在part value中设置参数。电路设计完成后,左键双击单片机在program file中添加刚才的hex文件,然后点击最左下角按钮就开始运行了,点击左下角第四个按钮停止运行。


举一个交通信号灯的例子,电路图如下,效果是红灯亮10秒,绿灯亮5秒,黄灯亮3秒。

代码如下:

sfr P1 =0x90;
sbit P1_0 =P1^0;
sbit P1_2 =P1^2;
sbit P1_5 =P1^5;

void delay(unsigned int count);
void fled(void);
void led1on(void);
void led1off(void);
void led3on(void);
void led3off(void);
void led6on(void);
void led6off(void);

void main() {
fled();
while(1);
}

void fled(void) {
while(1) {
led1on();   //P10 口的 LED 亮
delay(1000); //延迟 1000*10(ms),即 2 秒
led1off();  //P10 口的 LED 灭
led3on(); //P12口的LED亮
delay(500); //延迟5秒
led3off();  //p12口的LED灭
led6on();   //P15 口的 LED 亮
delay(300); //延迟3秒
led6off();  //P15 口的 LED 灭
}
}

void led1on(void) {
P1_0=1;
}

void led1off(void) {
P1_0=0;
}

void led3on(void) {
P1_2=1;
}

void led3off(void) {
P1_2=0;
}

void led6on(void) {
P1_5=1;
}

void led6off(void) {
P1_5=0;
}

void delay(unsigned int count) {//延迟 10ms 函数


unsigned int i,j,k;
for(i=0;i<count;i++)
for(j=0;j<10;j++)
for(k=0;k<120;k++)
;
}

阅读全文
0 0
原创粉丝点击