c51与c语言,c51与c语言的区别

kodinid 16 0

大家好,今天小编关注到一个比较意思的话题,就是关于c51与c语言问题,于是小编就整理了3个相关介绍c51与c语言的解答,让我们一起看看吧。

  1. multisim怎么用C语言仿真51单片机?
  2. 请教高人C51单片机C语言中的中断优先级怎么设置?

C51的数据类型和C语言的数据类型的区别

C51定义的库函数标准c语言中定义的库函数不同;与标准c的输入输出处理不相同;与标准c在函数使用方面也有一定的区别。数据类型和标准c语言中的数据类型有一定的区别,变量类型比如int类型占用空间不一样,像特殊位型***it在标准c中就没有;变量中的存储模式与标准c语言中的变量的存储模式不相同,C51存储类型有ddata、bdata、idata等多种;与标准c的输入输出处理不相同;与标准c在函数使用方面有一定的区别。 单片机C51语言是建立在标准c语言架构基础上的,两者基本语法结构是相通、一样的,但是单片机C51语言由于加入了对单片机I/O口,寄存器控制,所以才与标准c语言有所差异。

multisim怎么用C语言仿真51单片机?

1、打开multisim软件,通过菜单栏的“FIle”->“New”->“Design”新建一个设计文档

c51与c语言,c51与c语言的区别-第1张图片-安济编程网
图片来源网络,侵删)

2、在新建的设计文档的工具选择“Place MCU”,在弹出的列表中选择8051单片机,点击“OK”确定选择。

3、将单片机放置在Design上后会弹出MCU向导(MCU Wizard-Step 1 of 3),通过标题可以知道向导有3步。第一步需要自己选择工作空间目录和名称,这个按需求填即可,确认后点击“Next”。

4、进入“MCU Wizar - Step 2 of 3”,即第2步,需要选择的东西比较多,第一个是“Project type”(工程类型),其中Standard就是自己写代码的,而External hex file就是其他编译器生成的hex文件,不需要自己写代码。“Programming language”就不用说了,可以选择C或者汇编编译一般默认即可,Project name按需要命名,点击“Next”确认。

c51与c语言,c51与c语言的区别-第2张图片-安济编程网
(图片来源网络,侵删)

5、在第三步需可以选择创建一个空的工程(Create empty project)或者在创建的时候自动添加一个源文件,文件名默认为main.c,建议默认,确认后点击“Finish”。

6、工程监理完毕,可以在工程下面看到一个main.c的文件,点击可以查看该文件。

7、通常会自动生成一个main函数,这里需要要注意,由于multisim找不到Hi-Tech C51 Lite compiler编译器的帮助文档,很多东西都需要自己摸索,最让人头疼的是它都没有提供C语言的头文件,连寄存器都需要自己去定义,这里建议使用强制指针常量地址转换为寄存器地址,然后可以直接赋值访问了。图中是一个对P0的8个端口循环取反的操作效果是P0端口不停的翻转,生成一个高速的脉冲信号

c51与c语言,c51与c语言的区别-第3张图片-安济编程网
(图片来源网络,侵删)

请教高人C51单片机C语言中的中断优先级怎么设置

C51中设置中断优先级,需要对中断寄存器IP进行配置。具体值需要根据用户需要的优先级顺序进行确定,具体的设置方法就是直接写如下C语言语句

IP = 06H; // 如果5个中断同时发生,则响应次序为:定时器0 -> 外中断1 -> 外中断0 -> 定时器1 -> 串行中断下面给出IP寄存器中每位(共8位)的含义:PX0(IP.0),外部中断0优先级设定位;

PT0(IP.1),定时/计数器T0优先级设定位; PX1(IP.2),外部中断0优先级设定位; PT1(IP.3),定时/计数器T1优先级设定位;

PS (IP.4),串行口优先级设定位;PT2 (IP.5), 定时/计数器T2优先级设定位(80C52的T2)IP.6和IP.7无意义,均为0(在C51中PT2也设置为0)。ps:IP默认值为00H,此时优先级顺序为:外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断

到此,以上就是小编对于c51与c语言的问题就介绍到这了,希望介绍关于c51与c语言的3点解答对大家有用。

标签: 优先级 中断 语言