以单片机电子钟实验报告为核心设计一个电子钟。要求单片机电子钟实验报告频率设为11. 0592MHz。

热门搜索:
您现在的位置是: &
> 一个EV1527的51单片机学习码解码程序。注意不要乱改程序。频率是:11.0592MHZ。
一个EV1527的51单片机学习码解码程序。注意不要乱改程序。频率是:11.0592MHZ。
资 源 简 介
一个EV1527的51单片机学习码解码程序。注意不要乱改程序。频率是:11.0592MHZ。
VIP 专区(每个包含40-100个资源包)
您 可 能 感 兴 趣 的
相 关 代 码
相 关 资 源
该 用 户 还 上 传
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
季度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员
月度VIP会员51单片机,波特率和定时器方式一12M和11.0592M晶振初值问题
原帖地址:http://zhidao.baidu.com/question/.html
和其他网友答案。
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。
11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如,而11.0592M计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M
计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式:
9600=(2÷32)×((11.0592M/12)/(256-TH1))
9600=(2÷32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的计算可以看出使用12M 晶体的时候计算出来的TH1 不为整数,而TH1 的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600 波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
分割符********************************************************
一、晶振是12MHZ的比较简单:
振荡周期:1/12us
机器周期:1us
定时器T0,工作方式一
定时1ms就是1000;TH0=()/256;
TL0=()%256
定时50ms就是50000,TH0=()/256;
TL0=()%256 ;循环溢出20次就是1s;
二、晶振是11.0592MHZ
振荡周期1/11.0592
机器周期12/11.0592 ≈1.085 us
921600个机器周期时间 =/s=1000ms
赋初值0x1000=(4096)D
TH0=10;TL0=00 循环溢出15次是1s;
15*()*12/11.0592 =1s
10ms 准确定时9216个机器周期59200=10ms
TH0= ()/256;
准确定时18432个机器周期TH0= ()/256;
50ms准确定时5*个机器周期5*59200=50
TH0= ()/256;
1ms误差较大TH0= ()/256;
TL0=()%256
这是12T单片机的情况,不过现在基本都是1T芯片,主要还是想以此借鉴一下,思考1T的赋值问题。
没有更多推荐了,51单片机几种精确延时(包含自动适应主时钟)
实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。 今天主要介绍软件延时,关于硬件延时,之后定时器部分再做详细说明。
首先介绍单片机的几个周期
指令周期:CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。
时钟周期:也称为振荡周期,一个时钟周期 = 晶振的倒数。s
机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取指令、存储器读/写等。
机器周期=6个状态周期=12个时钟周期。
51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12*(1/ 晶振频率)= x
μs。常用单片机的晶振为11.0592MHz,12MHz,24MHz。其中11.0592MHz的晶振更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。
接下来列出这三种不同的晶振的延时函数
1、 11.0592MHz
//N ms延时
void delay_ms(uint n)
for(i=n;i&0;i--)
for(y=114;y&0;y--);
2、12MHz晶振
//延时n毫秒
void delay_ms(unsigned int n)
unsigned int i=0,j=0;
for(i=0;i&n;i++)
for(j=0;j&123;j++);
}//延时n秒
void delay_m(unsigned int n)
unsigned int i=0,j=0;
for(i=0;i&n;i++)
for(j=0;j&21738;j++);
}//延时10*n微秒
void delay_10um(unsigned int n)
while(n--);
3、24MHz晶振
//延时n毫秒
void delay_ms(unsigned int n)
unsigned int i=0,j=0;
for(i=0;i&n;i++)
for(j=0;j&357;j++);
void delay_s(unsigned int n)
unsigned int i=0,j=0;
for(i=0;i&n;i++)
for(j=0;j&54053;j++);
}//延时10*n微秒
void delay_10us(unsigned int n)
unsigned int i=0;
for(i=0;i&n;i++)
for(j=0;j&2;j++);
}建议大家封装为头文件,可以方便的调用。
接下来介绍几个自动适应主时钟的延时函数
//参数:ms,要延时的ms数,自动适应主时钟
#define MAIN_Fosc
//定义主时钟HZ
typedef unsigned int INT16U;
void delay_ms(INT16U ms)
//INT16U 等价于 unsigned int
i=MAIN_Fosc/9600;
while(--i);
//96T per loop
}while(--ms);
}//5us 延时函数,自动适应主时钟
#define MAIN_Fosc
//定义主时钟HZ
void delay5us()
#if MAIN_Fosc ==
#elif MAIN_Fosc ==
#elif MAIN_Fosc ==
_nop_(); _nop_(); _nop_();
没有更多推荐了,51单片机红外遥控小车由电子制作整理
下面是一款Android手机通过蓝牙模块与单片机通信单片机程序,单片机可以使用以下51单片机:AT89C51,AT89C52,AT89S51,AT89S52,STC89C52RC,下面是单片机程序。
#include“reg52.h“
#include “intrins.h“
unsigned int c=0;
sbitled1=P2^0;//指示灯0
sbitled2=P2^1;//指示灯1
sbitled3=P2^3;//指示灯3
voidinit();//串口初始化
voidsend(unsignedchara);//单字节发送函数
voidctrl();//接收处理函数
voidmain()
if(RI==1)//是否有数据到来
tmp=SBUF;//暂存接收到的数据
voidinit()//串口初始化
ES=0;//关中断
SCON=0x50;//REN=1允许串行接受状态,串口工作模式1,
//10位 51单片机WiFi遥控小车是利用手机作为控制端,通过手机连接wifi模块以获得wifi信号,实现手机和小车的连接,然后利用手机上的控制软件以wifi信号为载体发送相关控制命令,wifi模块接收手机端发送来的相关控制信号并转换成TTL电平信号,传送给单片机,单片机接收到的电平信号处理、分析、计算,转化成控制指令并发送给电机驱动模块以实现小车的前进、后退、左拐、右拐停止等功能。APP由电子乐屋提供。
单片机程序及APP安装包下载:https://pan.baidu.com/s/1CpkQH1RqE_VGU32K_0V7eg
这是一款51单片机无线遥控开关手机app控制程序实例资料,资料含单片机驱动ESP8266无线WIFI模块程序、测试APP.apk安装文件,单片机程序已由电子乐层经过实物调试过了的。大家放心使用,下面把程序资料及实物测评照片贴出,供大家参加,大家试验过程中有什么问题可以咨询电子乐屋,这里只贴出51单片机无线遥控开关手机app控制程序实例,需要APP安装包的请留言留下电子邮箱地址(现在网盘连接经常效)。
这是一款手机APP蓝牙遥控控制单片机LED灯的亮灭开关的单片机源代码及APP.apk资料包。需要一个“蓝牙串口”的安卓应用,可以在安卓手机应用商店里找到SPP蓝牙串口APP。完整手机APP蓝牙遥控控制单片机LED灯的亮灭开关单片机源代码及APP.apk下载:https://pan.baidu.com/s/1QDxSwrq7uRwkZqLxfhvooA
阅读(307) ┆ 评论(0) ┆ 转载(0) ┆ 收藏(0)
查看全文&&
HC05蓝牙模块设置修改波特率的方法
标签:hc05蓝牙模块 设置修改波特率
分类:其它
由于HC-05出厂设置波特率是9600,而主控与其通信和控制的波特率如果是其它的,就需要对HC05蓝牙模块设置波特率进行重新设置。设置时使用AT命令进行设置。
1. RXD: 接收端
2. TXD: 发送端
3. AT: 设置工作模式
1) 工作模式: 自动连接(automatic connection),又称为透传模式
2) AT指令设置模式: 命令回应(order-response),又称为AT模式
4. VCC: 模块供电正极(5V)
5. GND: 模块供电负极
这是一款单片机wifi开关设计的单片机程序,是基于STC12C560S2 单片机无线WIFI模块控制,通过MCU上位机对ESP8266wifi模块的控制和设置,实现手机端控制LED灯的亮灭。
晶振一定是11.0592MHz。
********************************************************************/
#include 'reg52.h' //包含头文件
#define uint unsigned int
#define uchar unsigned char
#define RELOAD_COUNT 0xFA //宏定义波特率发生器的载入值
//define RELOAD_COUNT (256-((()/12)/960
这里介绍一款容易制作的远程wifi遥控开关插座,元件结成由ESP8266-01 WIFI模块、继电器、供电电路组成,供电电源DC5V,所用元件比较少,云平台用机智云(关于机智,我自己感觉账号注册容易,相关开源资料比较多,容易上手),通过手机的APP控制,可以远程开关家里的相关电器。下图是制作好的远程wifi遥控开关插座实物。由于所用元件少,制作容易,非常适合初学制作远程wifi遥控开关插座的爱好者仿制,如果制作过程中有什么困难,可百度:电子乐屋,寻求指导。远程wifi遥控开关插座APP源码ESP8266固件源码及固件写烧工具固件编译工具:https://pan.baidu.com/s/1mwj6TsnhNblJ3ogi238giA
这是一款基于51系/52列单片机WIFI智能手机app显示温湿度数据数据WIFI传输采集系统。手机显示温湿度采集数据,并可以通过按钮控制板子上的灯进行开关,实现对信号进行反馈处理的设计,硬件主要由:51单片机+DHT11温度传感器+ESP8266-01WIFI模块组成。手机APP端的开发环境是eclipse,源代码可以导入进AndroidStudio中进行修改。是学习单片机WIFI数据采集遥控控制的比较好的实例。
板上的发光二极管灯可以通过APP上的按键进行遥控,灯亮熄的状态可实时反馈到APP上进行显示。配套附送的源代码注解详细,方便初学都学习借鉴。购买地址
说起单片机wifi控制app,单片机方机的资料还容易找,对于app资料网上可以找得到的资料不多,就是找到了,也就是个APP,单片机wifi控制app配套的单片机C语言程序及手机APP源代码一般的都无法找得到,资料不全,给使用带来很大困难。目前,单片机wifi控制app,目前最常见到的是安桌手机的app,其编程用得比较多的是JAVA语言写的,其开发环境是Eclipse,对于基英语基础不好的人来说,比较容易上手的就是易语言编程环境E4A。这里我就贴出一个Eclipse开发环境下写的wifi控制app(资料来源),下面是APP界面截图:
阅读(2386) ┆ 评论(0) ┆ 转载(3) ┆ 收藏(0)
查看全文&&
51单片机温度报警DS18B20系统程序
51单片机温度报警DS18B20系统程序:
#include 'AT89X52.h'
#include 'stdio.h'
#define uint unsigned int
#define uchar unsigned char //宏定义
#define SET P3_1 //定义调整键
#define DEC P3_2 //定义减少键
#define ADD P3_3 //定义增加键
#define BEEP P3_7 //定义蜂鸣器
#define DQ P3_6 //定义DS18B20总线I/O
bit shanshuo_ //闪烁间隔标志
bit beep_ //蜂鸣器间隔标志
sbit DIAN = P2^7; //小数点
技术源于积累,成功来自执着
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
今日搜狐热点单片机编程:假设晶振频率为11.0592Mhz,试编写一程序,在P1.7引脚输出周期为2s的方波_百度知道
单片机编程:假设晶振频率为11.0592Mhz,试编写一程序,在P1.7引脚输出周期为2s的方波
单片机编程:假设晶振频率为11.0592Mhz,试编写一程序,在P1.7引脚输出周期为2s的方波 求大神指点,给出程序
我有更好的答案
精确定时,只要你的晶振够准确零误差(256-56)×144×32=59200÷12汇编:CNT0&&&&EQU&&&&20HCNT1&&&&EQU&&&&21H&&&&&&&&&ORG&&&&0000H&&&&AJMP&&&&MAIN&&&&ORG&&&&000BH&&&&&DJNZ&&&&CNT0,ENDT0&&&&MOV&&&&CNT0,#144&&&&DJNZ&&&&CNT1,ENDT0&&&&MOV&&&&CNT1,#32&&&&CPL&&&&P1.7ENDT0:&RETI&&&&&&&&&MAIN:&&&&MOV&&&&TMOD,#02H&&&&MOV&&&&TH0,#56&&&&MOV&&&&TL0,#56&&&&SETB&&&&ET0&&&&SETB&&&&EA&&&&SETB&&&&TR0SLEEP:&&&&MOV&&&&PCON,#01&&&&NOP&&&&SJMP&&&&SLEEPEND用C语言//f=11.0592MHzsbit&&pout=P1^7;unsigned&char&cnt0=144,cnt1=32;void&main(){&&&Init();&&&&while(1)&&&&{&&&&&&&&&PCON=0x01;&//休眠&&&&}}void&Init(){&&&&TMOD=0x2;&&//方式2:8位自装入&&&&TH0=0x56;&&//基础定时&&&&TL0=0x56;&&&&TR0=1;&&&&ET0=1;&&&&EA=1;&&&&&}&&&&void&Timeon()&interrupt&1&&//定时器{&&&&&&if(--cnt0==0)&&&&&{&&&&&&&&cnt0=144;&&&&&&&&&if(--cnt1==0)&&&&&&&&&&{&&&&&&&&&&&&&&cnt1=32;&&&&&&&&&&&&&&pout=~&&&&&&&&&}&&&&&&}}
采纳率:46%
#include&reg51.h&sbit sqr=P1^7;main(){unsigned char time=0;TMOD=0x01;TH0=()/256;TL0=()%256;TR0=1;while(1)
if(TF1==1)
TH0=()/256;
TL0=()%256;
if(time==20)
#include&reg52.h&sbit&squ_out=P1^7&;void&main(){&&&&&bit&squ_&&&&&unsigned&int&a,b;&&&&&EA&=0;&&&&&while(1){&&&&&&&&&&for(a=106;a;a--)for(b=1085;b;b--);&&&&&&&&&&&squ_out&=&squ_mirror&=&~&squ_&&&&&}}周期小了一点点,大约少了57微秒左右。如果要很准,你的晶振也真的很准,就用下面这个:#include&reg52.h&sbit&squ_out=P1^7&;void&main(){&bit&squ_&unsigned&int&a,b;&unsigned&char&c;&EA&=0;&while(1){&&for(a=106;a;a--)for(b=1085;b;b--);&&&for(c=12;c;c--);&&c++;&&squ_out&=&squ_mirror&=&~&squ_&}}
没有指定编程语言。(80x81),这是什么意思?
其他1条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 单片机数字电子钟 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信