单片机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++)
;
}
- 单片机c语言仿真
- 基于proteus的51单片机仿真实例十二、51单片机的C语言程序结构
- 用C语言(keil c)给8051单片机编程来做一个LCD计算器(proteus仿真)
- 基于C语言STC89C52单片机电子密码锁的设计与仿真
- 读书笔记之51单片机工程师是怎样炼成的-基于C语言+Proteus仿真
- 单片机51c语言程序实例(可调控的跑马灯)+Proteus仿真+源代码
- 基于proteus的51单片机仿真实例二十七、C语言的语句演示实例
- 基于proteus的51单片机仿真实例三十、C语言的for循环语句
- 基于proteus的51单片机仿真实例三十一、C语言的while循环语句
- 基于proteus的51单片机仿真实例三十二、C语言的do-while循环语句
- 基于proteus的51单片机仿真实例三十四、C语言的break语句
- 基于proteus的51单片机仿真实例三十五、C语言的continue语句
- 基于proteus的51单片机仿真实例三十六、C语言的函数返回值
- 基于proteus的51单片机仿真实例三十七、C语言的函数参数传递
- 基于proteus的51单片机仿真实例三十八、C语言的函数调用
- 基于proteus的51单片机仿真实例三十九、C语言的文件调用
- 基于proteus的51单片机仿真实例四十、C语言的文件调用
- 基于proteus的51单片机仿真实例四十一、C语言的一维数组
- POJ-2752 Seek the Name,Seek the Fame
- dedecms自定义模型提示:Call to a member function GetInnerTex
- 微信小程序目录详解
- Qt5.9动态调用c++的dll方法(Qt5.9调用MQTT的一个实例)
- Adobe Audition CS5.5中文汉化版下载附安装教程
- 单片机c语言仿真
- c++多态特性
- dede5.7联动枚举类型在分类信息中无法更新问题的解决办法
- 2321: [BeiJing2011集训]星器
- 修复dede织梦undefined function pasterTempletDiy报错
- Java 运算符
- PHPEXCEl
- TensorFlow技术解析与实战 6 神经网络的发展及其 TensorFlow 实现
- 支配树(Dominator Tree)学习笔记