① 如何将c语言程序烧进芯片
1、把c语言编译为编程器支持的语言格式,比如常用的bin,或hex等格式。
2、如果是可在线编程的,可以用isp直接进行烧录。
3、如果不是可在线编程的,将单片机芯片,放入编程器,然后烧录。
注意:编译和烧录时,都要选择和单片机芯片一致的型号,否则会出错。如果找不到对应的型号,说明不支持该型号的单片机。
② 怎么用C语言编程来控制硬件如何写啊
处理器对周边硬件的操作,实际上就是读取该硬件上寄存器的信息和向其寄存器写入信息的操作。抽象的看,就是对硬件上寄存器对应的地址空间进行操作。当然由于硬件种类繁多,结构不一,一般情况下,硬件的生产厂商会为对应的操作系统提供一组控制函数,这些函数用以实现操作系统厂商为某一类硬件定义的一组规范的必须实现的接口,这就是驱动,通常厂商还会提供更多的函数以支持更高级的功能。
所以,对硬件的操作,方式方法是多种的,要怎么做,取决于你要操作什么样的东西,达到什么样的效果。当有了目标,请查阅该硬件设备的SDK。记住一点就好,只要设备能够被操作,我们也能对其状态寄存器,控制寄存器进行读写操作,那么就可以控制,至于怎么弄,那不正是你去上学要学的、学完需要思考得么?
③ C语言编写STC12C5A60S2芯片用4个按键控制四个灯的亮灭
#include“reg52.h”
#include“delay.h”
//定义按键KEY_0~KEY_6对应P1^0~P1^6
sbitKEY_0=P1^0;
sbitKEY_1=P1^1;
sbitKEY_4=P1^4;
sbitKEY_5=P1^5;
sbitKEY_6=P1^6;
//定义LED_7~LED_3对应P2^7~P2^3
sbitLED_7=P2^7;
sbitLED_6=P2^6;
sbitLED_5=P2^5;
sbitLED_4=P2^4;
sbitLED_3=P2^3;
voidmain(){
while(1){
if(!KEY_0){//按键KEY_0被按
delayus(20);//消抖动
if(!KEY_0){//确认被按下
LED_7=~LED_7//灯亮或灭
}
}
}
......其余一样即可。
④ 用c语言可以实现cpu中央控制器的设计吗
CPU中央控制器设计:
1、用FPGA实现,语言是VHDL或者Verilog HDL,因为CPU讲究的是速度和可靠性,用纯粹的数字硬件电路来实现最好不过了。
2、用嵌入式芯片,比如ARM,然后搭载别人的操作系统,留出需要的接口,这样是用C语言来实现的,但是核心就是操作系统,C来驱动硬件实现控制作用。而最底层的硬件还是用硬件描述语言VHDL或者Verilog HDL来实现的。所以你所指的C语言实现CPU的设计还是基于一定的硬件平台的操作系统,而且已经预留硬件的接口,用C语言编写的驱动和内核而已。
3、单纯的讲CPU大部分是用硬件描述语言,就是1中所述的来设计的。而绝非 在已有的硬件平台下写个驱动和内核,不过现在的好多硬件都可以用C语言来开发,只不过效率没有硬件描述语言高。你说的实现CPU的设计不是没有可能,只不过很少人这么做!
纯手打,如果满意望采纳!
⑤ c语言为什么可以实现操作硬件的功能
楼上的描述不准确,c语言直接对硬件操作的例子比如直接通过c语言写入芯片的控制寄存器,配置芯片的工作模式,达到用户希望的效果,如定时器。这一点类似于单片机。
对内存的操作事实上还是由更低级的存储器控制芯片完成的。
⑥ C语言是如何控制硬件的
1.指针变量p分配在栈上,而字符串"abcdefg"分配在文字常量区。
2.是的。指针也是编译器生成的数据类型,是个长整型。
3.内存地址分为5块,堆区,栈区,全局(静态)数据区(分为未初始化和初始化区),
文字常量区,代码区。存储在不同区域的数据释放时间不同,存储在堆区的数据必须由程序员负责释放,用free或者是delete。而栈区的由系统自动释放。全局和静态的生存期就是整个程序运行期。
4.首先,概念性错误,编译器并不执行程序,执行程序的是你的系统。编译器只是实现了高级语言向机器语言的转化而已。至于计算机的工作原理,这个概念也太泛了,有硬件层也有软件层。硬件层基本也就是80x86的汇编和内存管理,软件层也就是操作系统了,请问你想知道什么?
5.a是数组名,最重要的是a是一个指针常量,你该了解了吧,常量是不能参与指针运算的,所以a++是错的。关于calloc和malloc,释放内存方面没什么区别(这个是个人观点)。
关于指针变量没有初始化的问题。其实指针本身也是个长整行的变量,他存放的地址完全可以理解为4*8的整数,那么他的分配方式也跟普通的变量一样了。如果你是全局指针,那么编译器会把它自动初始化为00000000(十六进制),如果是局部指针,那么这个量就是未知的了,根据函数堆栈有不同的结果。null也就是内存被写成了00000000(十六进制).这个空不是说不存在,而是内存被写成了4*8=32位的全0.
⑦ c语言可以直接对硬件操作吗
害,这个问题怎么说呢,操作系统才是直接对硬件进行操作的,如果操作系统使用C语言编写,那么宏观上看上去就变成了C语言对硬件进行了操作,但用户编程的c语言程序是不可以直接对硬件进行操作的,必须调用操作系统提供的服务才可以对硬件进行操作,比如printf函数.
⑧ C语言编写芯片驱动的方法
驱动就是操作芯片完成功能,使用C语言完成相关的操作也是类似的。
完成过SD卡的,主要的流程是,查看芯片手册,找到使用的端口,然后根据相关的协议和已有的部分接口完成操作。别纠结于细节,前整体完成结构之后再想着编程。
类似于这种程序网上都有,想重新写一套的话没有必要。参照类似的然后修改和添加你要的就可以。
⑨ 8253可编程定时器芯片用51单片机C语言写控制流程网上大部分都是汇编的。
单片机,主要是作为控制器来用。
其关键是,处理信号的速度。
用汇编语言编程,效率最高。
汇编语言也很简单。
学习C语言的数据类型、数组、指针等等,能累死你,
其实,学过之后,发现,也没有什么用处。
因为,C语言是脱离硬件的。
学了一滩垃圾,也不知道,单片机,究竟是怎么回事。
远远不如汇编简单方便,还能对单片机理解的更为透彻。
⑩ 通过C语言,怎么控制芯片
其实很简单
在主函数外部这样声明:
sfr x=0xb0; //P3口在存储器中的地址是b0H
表示对P3口赋值或取值可通过对x进行操作。
至于你说的地址,可查看芯片资料,一般51的寄存器地址在相应的书中就有介绍。
sbit X=P1^5;
表示对P1的第5管脚的操作可通过操作X来实现,跟上面的一样的道理