设80c51单片机的晶振频率为12MHz,试编程输出频率为100Hz,占空比2:10的矩形波
给个例子,也许可以满足你的要求:
#include "reg51.h"
#define FOSC 12000000L
#define T1XXH (65536-FOSC/12* 2/1000) +2 // 友胡2ms timer calculation method in 12T mode
#define T1XXL (65536-FOSC/12* 8/1000) // 8ms timer calculation method in 12T mode
/* define SFR */
sbit TEST_100Hz = P1^0; // 100Hz Out
/* Timer1 interrupt routine */
void tm1_isr() interrupt 3 using 1
{
TEST_100Hz = ! TEST_100Hz;
if(TEST_100Hz)
{
TL1 += T1XXH; //reload timer1 low byte
TH1 = T1XXH >> 8; //reload timer1 high byte
}
else
{
TL1 += T1XXL; //reload timer1 low byte
TH1 = T1XXL >> 8; //reload timer1 high byte
}
}
//-----------------------------------------------
/* main program */
void main()
{
TMOD = 0x10; //set timer1 as mode1 (16-bit)
TL1 = T1XXH; //initial timer1 low byte
TH1 = T1XXH >> 8; //initial timer1 high byte
TEST_100Hz=1;
氏衡TR1 = 1; 好核拦 //timer1 start running
ET1 = 1; //enable timer1 interrupt
EA = 1; //open global interrupt switch
while (1); //loop
}
80C51微控制器中,通讯中的方
80C51微控制器中,通讯中的方式0 方式1 方式2 方式3,是指什么呢?
方式0 时串列埠相当于“并入串出”或“串出并入”的移位暂存器,RXD引脚接收奏转德似丝未第全或输出8位序列资料,TXD引脚输出移位脉冲。该方式下串列埠不能实款引各现非同步序列通讯,而比较类似于SPI。该方式通常用于扩充套件IO口(需要外接CD4094等串转并晶片),或者控制序列介面的ADC、DAC等晶片。
方式1为8位资料的非同步序列通讯口方式,方式2和3为9位资料的非同步序列通讯方式,这3种方式均可实现实现通常所说的串列埠通讯。3种方式均只有1个起始位,1个停止位。3种方式的区别是资料位数不同和产生波特率的时钟源不同,方式1的资料位只有8位,温与方式2和3的资料位有9位,而方式2的时钟为系统时钟(即晶振产迹厅基生的时钟),方式3的时钟由定时器T1产生。如果你要转送的资料有8位,若你不需360问答要奇偶校验,则可以采用方式1,但若你需要奇偶校验,则必须采用方式2或3(一王作评临去般选用方式2)。
微控制器中80C51的定址方式
1.立即定址方式
采用立即定址的指令一般是括扬紧双位元组的。第一个位元置松凯六福助会客少知常组是指令的操作码,第二个位元组是立即数。因此伏胡,运算元就是放在程式储存器中的常数。立即数前面应加字首“#”号。
例如: MOV A, #2BH ;A←#2BH,即将立即数2BH传送至A中。
2.直接定址方式
采用直接定址的指令一般是双位元组或三位元组指令,第一位元组为操作码,第二,三位元组为运算元的地址跟存有章士再你报脚底码。微控制器中,直接地址只能用来表示片内低128位元组单元、专用暂存器和片内RAM的位地址空间。其中专用暂存器和位地址空间普脱无互然界派只能用直接定址方式来访问。
例如:MOV A,30H ;(30H)→A
MOV C,00H ; (00H)→Cy
LJMP 1000H ; 将意把黑曾今止损有姿谨1000H送入PC
3.暂存器定址方式
暂存器定址方式用于访问选定的工作暂存器R0~R7、A、B、DPTR和进位施维在CY中的数。其中R0~R7由操作码低三位的8种组合表示,A、B、DPTR、C则隐含在操作码之中。
这种定址方式中被定址置微的暂存器中的内容就是运算元。
例互地之顶唱受如: MOV A, R0 ;(R0)→A
MOV B ,A ;绿深相七火当(A)→B
4.暂存器间接定址方式
这种定址方式中,指适宽雨哪校代微冷掉令指定暂存器中的内容为运算元的地址。暂存器间接定址是用于访问片内资料储存器或片外资料储存器。当访问片内RAM 或片外的低256位元组空间时,可用R0或R1做为间址暂存器;当访问片外整个64KB的容啊省造剂呢强地址RAM空间时,用16位暂存器DPTR做间址暂存器布办头治含前方胡磁。这类指令都为单位元组的指令,操作码的最低位表示是采用R0还是R1做间址器。
在执行PUSH和POP指令时,也采用暂存器间接定址久众意,此时用堆叠指标SP做间址暂存器。
例如:MOVX A, @R0 ; ((R0))→A
MOVX A , @DPTR ; ((DPTR))→A
POP ACC ; ((SP))→A , (SP)-1→SP
5.基址加变址定址方式
这种定址方式用于访问程式储存器中的某个位元组。以DPTR或PC作为基址暂存器,累加器A做为变址暂存器,两者的内容之和为运算元的地址。这种定址方式常用于查表操作。
例如:MOVC A,@A+DPTR ;指令程式码为93H,单位元组指令。设该指令放在1040H单元,A的原内容为A0H,DPTR中的值为 3000H,则运算元的地址等于:A0H+3000H=30A0H,即将30A0H单元中的内容传送至A中。
6.位定址方式
位定址是指对片内RAM的位定址区(位元组地址20H~2FH)和可以位定址的专用暂存器进行位操作时的定址方式。在进行位操作时,借助于进位C作为位操作累加器。运算元直接给出该位的地址,然后根据操作码的功能对其进行位操作。位定址的位地址与直接定址的位元组地址形式完全一样,主要由对应的运算元的位数来区分,使用时应加以注意。
例如:MOV 10H,C ;10H是位定址的位地址(C是位累加器)
MOV A,10H ;10H是直接定址的位元组地址(A是位元组累加器)
80c51微控制器de定址方式?
:***.baidu./view/889427.htm,懒一下,详细
80C51微控制器的定址方式
立即定址,直接定址,暂存器定址,暂存器间接定址,变址定址,相对定址,位定址
c51微控制器中定时器工作方式
分为定时 方式和计数方式 看你需要什么,需要的是什么就在它相应的控制字设定值就可以了
80C51 微控制器定址方式有哪些?
80C51有七种定址方式:
1、立即定址,定址空间为ROM;
2、直接定址,定址空间为片内RAM的低128B和特殊功能暂存器;
3、暂存器定址,定址空间为A、B、DPTR、CY、通用工作暂存器等;
4、暂存器间接定址,片内RAM低128B、片外RAM;
5、相对定址,定址空间为ROM;
6、变址定址,定址空间为ROM;
7、位定址,定址空间为片内RAM低128B的位定址区的128个位,其位元组地址为20H~2FH;以及部分可以位定址的特殊功能暂存器。
简述89c51微控制器中断工作方式
一、外部中断:IO的电平变化触发(上升沿、下降沿)
二、内部中断:如定时器触发
51微控制器序列通讯工作方式的选择原则、即什么情况下选方式0方式1或方式2或方式3
这种问题很空泛,也只能空泛地回答你:根据需要选择。
首先你得明白这几种工作方式各自的特点。简单来说,模式0多用于实现与外部移位暂存器的介面;模式1、2、3多用于与外部装置的非同步序列通讯,其中模式1不带第8位、波特率可调;模式2带第8位、波特率固定;模式3带第8位、波特率可调。
80C51微控制器序列方式1工作和方式0工作的串列埠接线方法有什么不同?
51微控制器序列方式1工作,外接另一个装置的串列埠,双方交叉连线。
序列方式0工作,外接移位暂存器,不交叉。
80C51微控制器的串列埠非同步通讯时,方式1时,SM2=0和SM2=1有什么区别?
方式1时,SM2一般设定为 0
SM2=1,则只有收到有效的停止位时才启用RI。
80C51单片机智能频率计课程设计
首先明确一下,频率计设计不需要传感器,频率计接转速传感器可以测量转速。
设计思路:
1、信号调理是关键
如果输入信号不是太复杂,采用滞回比较器整形成方波,即可直接接单片机测量。
如果输入信号含有大量的 噪声,应该先用低通滤波器滤波,滤去较大的毛刺,再接滞回比较器整形。
如果输入信号是包含载波的调制波,可用滤波器先提取调制信号,再接滞回比较器整形,也可用锁相环直接提取调制信号接单片机。
2、单片机编程
主要是使用单片机的定时器,最好使用单片机定时器的捕获功能,可以提高测量的准确度。
对于高频信号,可以采用在固定时间内对脉冲计数的方式。
对于低频信号,可以采用测量脉冲周期再求倒数的方式。
最好是上述两种方式结合,即在设定时间内,计算整数个脉冲的时间,结果除以脉冲数得到周期,再求倒数得到频率。
3、LED显示
频率测量可以达到较高的精度,可以采用4~8位数码管显示,自己搜索一下数码管扫描电路。