推荐阅读最新更新时间:2024-03-16 16:15
Matlab/RTW实时仿真与嵌入式系统开发
引 言
在日益激烈的竞争中,系统的开发周期显得尤为重要,但开发时间与系统安全性、可靠性又有一定冲突,如果仍然使用传统的编写代码的模式,显然有些不妥。本文介绍一种基于Matlab/RTW实现实时仿真与嵌入式系统开发的方法。方法所涉及的开发环境如下:
◆Microsoft Windows XP SP3: ◆Matlab Version 7.5.0.342(R2007b); ◆Keil uVersion2V 2.30; ◆Proteus 7.1SP2。
先借助Matlab/RTW建立模型并生成RTW(Real-Time Workshop)代码(C语言),再使用Keil编译、调试Matlab生成的C语言代码,并且生
[嵌入式]
用Keil C51开发串行口
MCS-51单片机的串行口具有两条独立的数据线 发送端TXD和接收端RXD,它允许数据同时往两个相反的方向传输。一般通信时发送数据由TXD端输出,接收数据由RXD端输入。 MCS-51单片机的串行口既可以用于网络通信,亦可实现串行异步通信,还可以用作同步移位寄存器。如果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。 MCS-51单片机的串行接口是一个全双工通信接口,它有两个物理上独立的接收、发送缓冲器SBUF,可以同时发送和接收数据。但是发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。两个缓冲器共用一个地址(99H)。 1 数据通信的基本概念 常用于数据通信的传输方式有单工、半双工、
[单片机]
KEIL C51中的多模块应用
通常一个C51程序工程按功能可以分成多个模块, 一个模块通常由两个文档组成一个头文件 *.h, 对模块中的数据结构和函数原型进行描述;另一个为C文件*.C , 对数据实例或对象进行定义,以及函数算法的具体实现,如I2C.C, ADC.C, DAC.C, LED.C 等,为了文件的调用,我们要为每个模块定义一个头文件,以I2C.C 来说,定义I2C.H。 #ifndef GRAPHICS_H /*防止graphics.h被重复引用*/ #define GRAPHICS_H #include math.h /*引用标准库的头文件*/ #include myheader.
[单片机]
使用Keil C进行51单片机延时程序编写的几点心得
应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。 以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要: 51 单片机的指令周期是晶振频率的1/12,也就是1us一个周期。mov r0, #09h需要2个极其周期,djnz也需要2个极其周期。那么存在r
[单片机]
单片机keil 常见问题
一、混合编程 1、模块内接口: 使用如下标志符: #pragma asm 汇编语句 #pragma endasm 注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler SRC File” 和“Assembler SRC File ”两个选项 来个实例吧: #i nclude void main(void) { P2=1; #pragma asm MOV R7,#10 DEL:MOV R6,#20 DJNZ R6,$ DJNZ R7,DEL #pragma endasm P2=0; } 另: 1、把"xx.c"加
[单片机]
STM32+freeRTOS学习笔记-1.使用cube MX创建一个freeRTOS的keil工程
硬件:机智云STM32平台V2.1 软件:cube MX+keil MDK-ARM V5 机智云的STM32开发平台小巧玲珑,用起来也顺手,所以就将正点原子的战舰开发板扔一旁吃灰了。目前刚开始学习,用到的硬件资源也不多,后续做相关实验时说不准又捡起来了。 1.简单介绍一下cube MX的使用 下载安装的过程就不在赘述,直接开始使用。 双击打开cube MX,点击新建工程 由于本底板的MCU型号是:STM32F103C8T6,所以按照下图来选择就对了。这个根据当时自己使用的MCU型号来对应选择就好了。 接着就是资源配置界面了, 1、先配置RCC的时钟源为外部高速时钟 2、配置时钟系统,其实很简单,
[单片机]
Keil c 优化选项
优化级别说明(仅供参考): 则其中的 Code Optimization 栏就是用来设置C51的优化级别。共有9个优化级别(书上这么写的),高优化级别中包含了前面所有的优化级别。现将各个级别说明如下: 0级优化: 1、 常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其中包括运行地址的计算。 2、 简单访问优化:对8051系统的内部数据和位地址进行访问优化。 3、 跳转优化:编译器总是将跳转延至最终目标上,因此跳转到跳转之间的命令被删除。 1级优化: 1、 死码消除:无用的代码段被消除。 2、 跳转否决:根据一个测试回溯,条件跳转被仔细检查,以决定是否能够简化或删除。 2级优化: 1、 数据覆盖:适于静态覆盖的数据
[单片机]
劝君慎用KEILC51九级优化
简介:有时程序才4K多一点,或者8K多一点,32K多一点,64K多一点,总会想方设法去优化压缩代码,以便放到更低成本的芯片中去,可是这时问题可能就出现了! 有时程序才4K多一点,或者8K多一点,32K多一点,64K多一点,总会想方设法去优化压缩代码,以便放到更低成本的芯片中去,可是这时问题可能就出现了! KEILC51九级优化可以将程序中相同的代码段归为一段,从而大幅度缩减程序代码。可是这一级优化却是没有保障的,优化后,经常会产生各种错误,特别是常量代码段被搞到乱七八糟,一些隐形的bug也从此悄悄伏下,如中断错误,待到你发现有问题还模不清头脑!假如你是在准备生产时才将C51编译提高到9级优化,可能就要完蛋了,因为平时调试的
[单片机]