单片机有什么用问题

单片机一些基础问题
> 单片机一些基础问题
单片机一些基础问题
一般说1T 4T 6T 12T的是指的什么?标准51是12T的,就是说12个时钟周期(晶振周期,例如12M的,周期是1/12M,单位秒),机器做一个指令周期,刚好就是1/12M*12=1uS,常见指令例如nop就是一个周期,刚好1uS,其他的大多多于一个周期,乘除法更多。所以如果计算指令时间可以这样算。而现在很多51核的工艺质量上去后,频率大大提高,增强型51有6T的,如果接12M的话,一个nop就只需要0.51uS,如果是STC的部分12T的话,那只需要1/12uS。单片机的晶振不是随便选,要看技术手册,看最高频率,看支持类型等等。一般12M,接串口的话11.0592M。如果是PIC,很多4M,8M。不是越高越好,对很多不需要大量处理,只是控制的情况,为了增加可靠性,降低编程难度,降低功耗,往往可选用低频的,例如实时时钟的32768晶振。外接晶体引脚XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF 左右。每个8051处理周期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期数。因此如果你的系统时钟是11.059MHz 除以12 后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms。复位 RST在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0-P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全部清零。当复位脚由高电平变为低电平时,芯片为ROM 的00H 处开始运行程序,复位操作不会对内部 RAM 有所影响。输入输出引脚(1) P0 端口[P0.0-P0.7] P0 是一个8 位漏极开路型双向I/O 端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8 个TTL。对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8 位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1 端口[P1.0-P1.7] P1 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接收低8 位地址信息。(3) P2 端口[P2.0-P2.7] P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和16 位外部数据存储器时,P2 口送出高8 位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3 端口[P3.0-P3.7] P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接控制信息。除此之外P3 端口还用于一些专门功能,具体请看P3 引脚兼用功能P3.0 串行通讯输入(RXD)P3.1 串行通讯输出(TXD)P3.2 外部中断0( INT0)P3.3 外部中断1(INT1)P3.4 定时器0 输入(T0)P3.5 定时器1 输入(T1)P3.6 外部数据存储器写选通WRP3.7 外部数据存储器写选通RD波特率与比特率:波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示,其单位是波特(Baud)。比特率:每秒钟传送的二进制位数,用 b / s 表示(b表示bit)波特率与比特率的关系是比特率=波特率X单个调制状态对应的二进制位数。两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。晶振可以根据自己的情况使用,一般实验板上是用11.0592MHz 或12MHz,使用前者的好外是可以产生标准的串口波特率,后者则一个机器周期为1 微秒,便于做精确定时。在自己做实验里,注意的是VCC 是+5V 的,不能高于此值,否则将损坏单片机,太低则不能正常工作。在31 脚要接高电平,这样我们才能执行片内的程序,如接低电平则使用片外的程序存储器。KEIL uVision2 C51 编译器所支持的数据类型数据类型长度值域Unsigned char单字节0~255Signed char单字节-128~+127Unsigned int双字节0~65535Signed int双字节-32768~+32767Unsigned long四字节0~Signed long四字节-~+float四字节±1.~±3.bit1位0或1sfr单字节0~255sfr16双字节0~65535Sbit1位0或1变量的定义可以使用所有C51 编译器支持的数据类型,而常量的数据类型只有整型、浮点型、字符型、字符串型和位标量长整型就在数字后面加字母L,如104L,034L,0xF340 等。浮点型常量可分为十进制和指数表示形式(12e5表示12*10^5)8051 结构提供给用户3 个不同的存储空间第一个存储空间是代码段(CODE)用来存放可执行代码被16 位寻址空间可达64K;除了可执行代码还可在代码段中存储查寻表为达此目的8051 提供了通过数据指针DPTR 或程序计数器加上由累加器提供的偏移量进行寻址的指令这样就可以把表头地址装入DPTR 中把表中要寻址的元素的偏移量装入累加器中8051 在执行指令时的过程中把这两者相加由此可节省不少指令周期。第二个存储区是8051 内128 字节的内部RAM 或8052 的前128 字节内部RAM 这部分主要是作为数据段称为DATA 区指令用一个或两个周期来访问数据段访问DATA 区比访问XDATA 区要快因为它采用直接寻址方式而访问XDATA 须采用间接寻址必须先初始化DPTR 通常我们把使用比较频繁的变量或局部变量存储在DATA 段中但是必须节省使用DATA 段因为它的空间毕竟有限。在数据段中也可通过R0 和R1 采用间接寻址R0 和R1 被作为数据区的指针将要恢复或改变字节的地址放入R0 或R1 中根据源操作数和目的操作数的不同执行指令需要一个或两个周期。数据段中有两个小段第一个子段包含四组寄存器组每组寄存器组包含八个寄存器共32 个寄存器可在任何时候通过修改PSW 寄存器的RS1 和RS0 这两位来选择四组寄存器的任意一组作为工作寄存器组8051 也可默认任意一组作为工作寄存器组工作寄存器组的快速切换不仅使参数传递更为方便而且可在8051 中进行快速任务转换另外一个子段叫做位寻址段BDATA 包括16 个字节共128 位每一位都可单独寻址8051 有好几条位操作指令这使得程序控制非常方便并且可帮助软件代替外部组合逻辑这样就减少了系统中的模块数位寻址段的这16 个字节也可像数据段中其它字节一样进行字节寻址。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一21ic官方微信-->
合泰单片机问题
!!急!!
中级技术员, 积分 141, 距离下一级还需 159 积分
中级技术员, 积分 141, 距离下一级还需 159 积分
中级技术员, 积分 141, 距离下一级还需 159 积分
中级技术员, 积分 141, 距离下一级还需 159 积分
#include &HT66F50.h&
//************************宏定义*****************************
#define uint long int
//************************函数部分******************************
void init()
& && &&&_smod=0x01;& && && && && && && && && && && && && && && && &//选择FH作为系统时钟
& && &&&_adoff=1;& && && && && && && && && && && && && && && && &//关闭AD电源
& && &&&_acerl=0;& && && && && && && && && && && && && && && && &//定义AN0~AN7都不是AD输入引脚功能
& && &&&_tmpc0=0;& && &&&_tmpc1=0;& && && && && && && && &//两个定时器组全部除能
& && &&&_tmpc0=0x02;& && &&&_tmpc1=0;& && && && && & //TM0使能,TM1除能& && &
& && &&&_cp0c=0x08;& && &&&_cp1c=0x08;& && && && && && && && &//关闭两个比较器功能,并使COX为I/O功能
& && &&&_integ=0;& && && && && && && && && && && && && && && && &//中断除能& && &
& &&&//& &_papu=0& && && && && && && &//把a端口设为上拉
& && &&&_pac=0x00;& && && && && && && & //把a端口设为输出
void delay(uint i)
& && &&&while(i--);& && &
void main()
& && &&&init();
& && &&&while(1)
& && && && && & _pa=0
& && && && && &delay(10000);
& && && && && & _pa=0
& && && && && & delay(10000);
& && &&&}& && &
大神帮忙看一下这个合泰的程序& &想做一个闪烁的灯& &但是两个灯总是同时亮,这是什么个情况
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
先搞一个灯闪烁试试。
助理工程师, 积分 1496, 距离下一级还需 504 积分
助理工程师, 积分 1496, 距离下一级还需 504 积分
助理工程师, 积分 1496, 距离下一级还需 504 积分
助理工程师, 积分 1496, 距离下一级还需 504 积分
应该是 delay(10000)时间问题,你可以用示波器看一下两个IO波形,应该是有分开的。
delay(10000)&&20ms内感觉上就是两个一起亮的。
助理工程师, 积分 1136, 距离下一级还需 864 积分
助理工程师, 积分 1136, 距离下一级还需 864 积分
助理工程师, 积分 1136, 距离下一级还需 864 积分
助理工程师, 积分 1136, 距离下一级还需 864 积分
单层延时,算下时间看看,100MS以下,人眼根本分不出哪个先亮
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
楼主解决问题了吗?
我也遇到了类似问题,本来想led闪烁的,但长亮,用示波器看,闪烁周期为10us,人眼更本看不到,,,,,,,,尝试改延时长度,还是不变,逐步运行,发现根本就不进延时,设置中断也不行。。
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
。。。搞了一下午,解决了。。延时那 变量i加个volatile,是IDE3000的V3编译器优化的问题
高级技术员, 积分 618, 距离下一级还需 382 积分
高级技术员, 积分 618, 距离下一级还需 382 积分
高级技术员, 积分 618, 距离下一级还需 382 积分
高级技术员, 积分 618, 距离下一级还需 382 积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
实习生, 积分 6, 距离下一级还需 44 积分
需要合泰MCU可联系我,涵盖合泰MCU所有型号,提供全程技术服务及选型辅助。国内与合泰合资开设的一级合法代理。电话:
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
需要合泰MCU可联系我,涵盖合泰MCU所有型号,提供全程技术服务及选型辅助。国内与合泰合资开设的一级合法代 ...
加个微信?
扫描二维码,随时随地手机跟帖
技术新星奖章
人才类勋章
甘甜之泉水
发帖类勋章
技术高手奖章
人才类勋章
时间类勋章
希望之星奖章
等级类勋章
晶莹之水滴
发帖类勋章
您需要登录后才可以回帖
热门推荐 /6单片机问题分析_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机问题分析
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
我想问一个有关单片机的问题!当单片机系统需要外扩展存储器时,为什么只能由p0口做数据总线、p0口和p2口做地址总线?还有一个问题单片机的存储器从物理上可划分为4个存储空间,其存储器的空间范围是多少?
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
如果要用到MOVX或MOVC指令认问外部存储器,数据只能从P0口送出..因而只能用P0口当数据口...而在MOVX或MOVC的时候外部的锁存器会锁存地址..而访问的时候最多可以用16位地址,即由P0口作为低8位,P2作为高8位,在用MOVX,MOVC的时候它就会在P0,P2口作出相应的动作..这或许是规定.我也不太清楚...关于补充问题...分为,片内ROM,RAM,片外ROM,RAM就是这四种..关于范围.是根据,ROM,RAM的大小来定的..差不多就是这样吧..
为您推荐:
扫描下载二维码记录工作遇到的问题和坑
xs128单片机遇到问题及解决办法
参加飞思卡尔车赛用的是X128单片机,当时很多时候好好的程序突然下载不进去了,很郁闷,只是提示芯片可能锁住了。下面是我的解决方法。
我用的是TBDML连接如图:
注意事项:
编辑完代码,如果没有错误,连接好单片机,点击debug就可以进入实时仿真界面了,程序也就会下载到单片机了,如果提示NO
TBDML INTERFACE FOUND,一个就是连接的线接触不良,还有就是忘了在codeworrior的:D:\Program Files\Freescale\CWS12v5.1\Prog\gdi 这个目录下缺少了图里面的最后两个文件
这两个并不是安装完codeworrior就有的,后来添加进去的,我的是买下载器给的,如果在网上搜也可以搜索到。
正确连接时候,下载器的两个灯都是亮的,有数据传输会闪烁。一定不要用接触不良的线连接下载器和电脑,因为下载的时候会如果突然断电,很可能会使得单片机锁住,
下载完成后要把仿真界面关闭后再拔下下载器,因为128单片机是支持实时在线仿真的,程序下载进去了,单片机和电脑还是有连接的,不限关闭仿真窗口,同样容易锁住。
值得注意的是,有的时候锁住了并没有锁住,至于为什么我也不清楚。第一种情况上面的断电接触不良之类的,还有一种我遇到的就是电脑运行程序比较多,再下载程序的时候
容易锁锁住。如果发现程序下载不进去,并且提示芯片可能锁住的情况下,不妨关闭些电脑的程序,然后换另一根好用的下载线,连接锁住的单片机下载,如果这个可以下载进
成功,在换回原来的那个下载线会发现也可以下载了,这个方法还是非常奏效的,百分之八十都是这样解决的,如果换了多个好用的下载线还是不行,那就是真正锁住了,可以
连接好单片机后,点击运行,在实时仿真界面上,选择TBDML HCS12-&reset, 然后重新选择里面的unsecured选项,其他的默认就可以,具体的可以去找龙邱128单片机解锁
方案,选择过程中会提示解锁型号,下载器类型之类的,但是我这边默认都是正确的,不用重新选择,最后点击解锁后,进度条如果能够完成百分百,系统会提示恭喜解锁成功
成功,否则解锁就失败了,这就是真失败了,用这个方法解锁之前最好先用前面的换下载线的试试,因为如果我试过。解锁方案无法完成的换根下载线就能解决了。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 arduino和单片机的区别 的文章

 

随机推荐