单片机c语言,这里的频率怎么算的,比如说,一赫兹的,程序取T=50000*10,那f=1/T也不是1hz啊

作者&投稿:程钱 (若有异议请与网页底部的电邮联系)
用C语言编写还是用编程语言编写单片机程序简单?~

一般都用C,可读性,维护性都比较好。

单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。具体体现在:
1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法 如C51扩展的 data xdata bit sbit 一类的,还有一些中断程序写法 void int() interrput 1 一类的。
2、C是一门语言,由对应平台的编译器编译成对应平台汇编的程序,各平台的汇编不一样,当然编译器也不一样 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的编译器 。具体区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。
3、单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。
C51本质就是C,是为在单片机上使用C而出来的,如果C不牢固,还是多掌握一点C再学C51,不过新增的知识也不少,而且基本上跟C无关。
4、C只是一种高级语言。它除具有一般高级语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使之方便于在 写语句的时候,直接直观的编写。这样就差不多是单片机C语言。
C语言的特性差不多都可以用于单片机C语言,因为它们的编译机理都是一样的。

扩展资料:
C语言:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
单片机的C语言:
单片机软件设计使用C语言作为编程开发软件,采用模块化的程序结构,设计了按键模块程序、RFID模块程序、日历时钟模块程序、GPRS模块程序、显示存储模块程序等,并编写系统主程序,将五个程序模块组合在一起,实现单片机控制系统的整体功能。
51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。
单片机的C语言采用C51编译器(简称C51)。有C51产生的目标代码短,运行速度高,所需存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用
参考资料:
C语言-百度百科
单片机C语言-百度百科

昨天回答过这个问题了,当时只改了数据,这里说明一下,定时器初值是-50000时,定时时间是50毫秒,中断10次是500毫秒,产生一个脉冲需要需要2个10次,脉冲周期是1000毫秒,即1秒,所以频率为1Hz。其余依次类推:
10Hz:-5000
50Hz:-1000
100Hz:-500
200Hz:-250
400Hz:-125
800Hz:-62
1000Hz:-50
2000Hz:-25


求C语言32个词汇祥细解释。
Basic Combined Programming Language (BCPL) 基本组合编程语言 Binary code file 二进制代码文件 Binary executable 二进制可执行文件 Binary operator 二元运算符 Block 块,语句块 Boolean 布尔值 Bubble sort 冒泡排序 Buffer ...

用arm7做一个流水灯的设计。
这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。

...需从主机发送8个字节的数据给从机。求C语言源程序
1.定义三个gpio: p0-sclk, p1-sdi, p2-sdo;p0用于模拟spi的clock,p1用于接收数据,p2用于f发送数据;硬件上单片机A的p0接单片机B的p0,A的p1接B的p2,A的p2接B的p1 2.发送程序:clock拉低,sdo输出0或1(数据),延时一定时间,clock拉高,延时一定时间,这样A就发送一位数据到B,循环8次...

C语言的指针要怎么理解
当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译 器将把那片内存区里的内容当做什么来看待。 从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符 *去掉,剩下的就是指针所指向的类型。例如: (1)int *ptr; \/\/指针所指向的类型是int (2)char *ptr; \/\/指针所指向的的...

c语言数组、地址问题请高手解释?
定义了数组a,则机器在内存当中给数组a开辟一片内存存储数组a,数组a的元素是顺序存储的,所以说数组a所在的地址就是数组a第一个元素所在的地址,这两个指针(&a,&a[0])其实算是指向同一个地址的,所以打印出来的数值是相同的。p应该是64位32进制形式输出,%d是十进制形式输出的。&a[0]跟a其实...

c语言,单处理机进程调度,时间片轮转
\/\/参考一下#include <stdio.h>#include <stdlib.h>#define CPU_TIME 50 \/\/CPU时间片 struct mission \/\/单个任务的结构体 {char name[20]; \/\/任务名称 int finished; \/\/任务是否已完成,完成为1,未完成为0 int need_time; \/\/任务总共需要的CPU时间 int finished_time;\/\/任务...

单机片c语言和我们学的c语言有什么区别
没区别,只是多了很多专用的函数库头文件,就是用于端口设置的头等!专门有Keil c51介绍的,你可以去了解下!

8051单机片C语言编程
先求演算法. 147258是有规律的, 能看得出来吗?再将演算法套入while中的P1, 就可以了

c语言的问题
00高 对于union中的char c[4]数组来说,它会使用第0~3个字节作为自己的4个元素,即c[0]~c[3]分别为39、00、00、00。这里的39是十六进制的0x39,换算成十进制就是57。接着以%c格式输出c[0],最终输出的就是57的ASCII码对应的字符'9'。而如果机器是大端序的话,那么结果将完全不同。

c语言与c++有何区别
C语言与VC++的区别有很多:1,全新的程序程序思维,C语言是面向过程的,而VC++是面向对象的。2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而VC++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的VC++6.0中的API是对Window系统的大多数API有机的组合...

渝北区15163605401: 单片机c语言,这里的频率怎么算的,比如说,一赫兹的,程序取T=50000*10,那f=1/T也不是1hz啊 -
房茅夫坦: 昨天回答过这个问题了,当时只改了数据,这里说明一下,定时器初值是-50000时,定时时间是50毫秒,中断10次是500毫秒,产生一个脉冲需要需要2个10次,脉冲周期是1000毫秒,即1秒,所以频率为1Hz.其余依次类推:10Hz:-500050Hz:-1000100Hz:-500200Hz:-250400Hz:-125800Hz:-621000Hz:-502000Hz:-25

渝北区15163605401: C52单片机输出1K频率的程序(C语言)最好可以有如何计算频率的方法 -
房茅夫坦: #include//设CPU是时钟12MHz的8051系列 void SetupTimer0() { TMOD &= 0XF0; //仅保留T1信息 TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器 TH0 = 256-250;//每个周期为1us, 250us=0.25ms, 定时每0.25ms中...

渝北区15163605401: C52单片机输出1K频率的程序(C语言)最好可以有如何计算频率的方法 -
房茅夫坦: #include<reg51.h>//设CPU是时钟12MHz的8051系列void SetupTimer0(){ TMOD &= 0XF0; //仅保留T1信息 TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器 TH0 = 256-250;//每个周期为1us, 250us=0.25ms, 定时每0....

渝北区15163605401: 采用c语言 用单片机测输入波形的频率,求一参考程序?急急急啊 -
房茅夫坦: 1、频率就是一秒钟计量多少个周期的波形. 比如:市电50HZ,就是一秒钟计量出50这个数据. 2、用你所选用的单片机做个1秒钟的时钟.每1秒钟对输入波形计数. 3、一般做频率计,要根据测量的精度要求,把输入信号分不同频率进行不同处理. 比如:1~99HZ为一段;100~999HZ为2段式1000~9999为3段…… 最终达到满足你设计要求为主. 细路供参考,具体也不知道你用什么单片机,就不说了.

渝北区15163605401: 用51单片机做信号分析,将信号FFT后得到的值,怎样知道该信号对应的频率值? 我用的C语言 -
房茅夫坦: 比如做64点的,采样频20K,频率分辨为20K/64=312 所以第一个点是312* 0HZ 第二个点是 312*1HZ 第三个点是 312*2HZ ....... FFT后应该是各个频率的幅值的吧,如果你的信号频率集中,幅值最大的对应的点的频率就相近你要求的频率 51单片机是不是太慢了或存不下数据..求程序参考..

渝北区15163605401: 怎样用单片机实现频率的测量 -
房茅夫坦: 这个太简单了,//搞个外中断,中断来了就计数#include<包头reg51.h> void t0(void) interrupt 0 {T0count++; //这是全局变量 } //T1工作在定时状态下,每定时1秒钟到,刷新T0的计数,void t1(void) interrupt 1 { TR0=1;//搞个计数器中断 TH0=0x3...

渝北区15163605401: 单片机c语言设计音乐播放器节拍和音符频率怎么计算 -
房茅夫坦: 将51单片机的P1.2口连接到蜂鸣器的一个管脚上,另外一个管脚接地.若声音小,则添加一个三级管放大电路或直接串一个UL2003 /*------------------------------------------------*/ includelt;reg52.h; //包含头文件,一般情况不需要改动? //头文件包含特殊...

渝北区15163605401: 单片机频率的计算求解 -
房茅夫坦: /*------1000HZ-------*/就是不知道这些频率是怎么计算出来的 ,单片机的晶振是12MHZ,单片机初学者,请求用你通俗易懂的语言解释,谢谢,非常感谢,郁闷好几天了. ---- 不是算的,是试验出来的.想要输出不同的频率,就需要改变周期. 改变延时时间,即可:yanshi(7);、yanshi(10);.要想得到准确的时间,就应该用汇编语言来编程. 用C语言,没有办法算时间,只能是瞎猫....

渝北区15163605401: 如何用C语言改变合泰单片机自带PWM的频率,如1KHZ,2KHZ,等等频率 -
房茅夫坦: #include <reg52.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned long sbit Waveout1=P1^0;sbit CF=P3^2;//调节频率int num,a,f;int Timer0_H,Timer0_L;void Init(){ num=0; a=1000; f=2; Waveout1=0; TMOD=0x02; TH...

渝北区15163605401: 89c52单片机的晶振f=24MHz,在P1.3引脚输出500kHz的频率.用C语言怎么编程? -
房茅夫坦: 用定时器啊是这样算的机器周期的12,也就是(24MHZ/12)/1000KHZ=4,所以TH1=(65536-2)/256;TL1=(65536-2)%256;#include<reg52.h>sbit P1_3=P1^3void mian(){TMOD=0x02; TH1=(65536-2)/256;TL1=(65536-2)%256;EA=1;TR1=1;while(1);}void t1 () interrupt 3{ P1_3=~P1_3;}实际上就是 以1000KHZ的频率进中断,但是由于取反运算.实际输出频率是500KHZ. 随便写的 过不了编译 你就自己在看看有什么报错吧.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网