网站大量收购独家精品文档,联系QQ:2885784924

单片机常用编程及接线.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机常用编程及接线

内部资料 仅供参考 1 80c51单片机p0-p3接口在结构上有何不同?在使用上有何特点?P0是开漏的,用来当地址/数据总线复用的,作I/O口时需要外接上拉电阻,一般用10K的排阻。 P1~P3口都是双向I/O口,内部带上拉电阻的,P2口在访问外部存储时和P0作地址总线,P2为高8位,P0低8位。P3口除作I/O口外各个引脚还有第二功能,串口、中断、技术输入等,80c51单片机晶振频率分别为6MHz、11.059 2MHz、12MHz时,机器周期分别为多少晶振频率为f,那么一个时钟周期为1/f,机器周期为12*1/f。AT89C51单片机复位有几种方法?复位后的状态如何?通常就是一种方法,在复位管脚(RST)加高电平信号。复位后程序计数器回零。.80c51有几个中断源?各中断源标志是如何产生的?又如何复位的?CPU响应各中断时,其中断入口地址是多少标准51有5个中断向量(不算复位),分别是外部中断0,定时器0,外部中断1,定时器1,串行口;总共有6个中断标志,串行口的发送和接受共享一个中断向量。 各个终端标志产生情况如下: 外部中断可以设置边沿触发或者电平触发,边沿触发进入中断程序后硬件自动清中断标志,电平触发需要软件清标志位; 定时器T0,T1计数溢出产生中断,进入中断程序硬件自动清标志位; 串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清标志位;中断入口地址: 外部中断0:0003H 定时计数器0:000BH 外部中断1:0013H 定时计数器1:001BH 串口:0023H定时计数器4种工作方式的特点1 工作方式0 当TMOD中的M1,M2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式。可用来测量外信号的脉冲宽度所持续的时间。 2 工作方式1 工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,唯一的区别是工作方式1的计数器由TL0的8位和TH0的8位共同组成16位的计数器,其定时时间为: t=(2^16-T0初值)×时钟周期×12 3 工作方式2 方式2为8位自动装入时间常数方式,方式0和方式1若用于循环重复定时/计数时(如产生连续脉冲信号),每次计数满后溢出时,寄存器TL0和TH0全部为0,所以第二次计数还得重新装入时间初值。这样不仅麻烦而且影响精度。方式2避免了上述缺陷,适用作较精确的定时脉冲信号发生器。它的定时时间为: t=(2^8-T0初值)×时钟周期×12 4 工作方式3 方式3:特殊工作方式只适用于T0,除了是用8位寄存器TL0外,其功能和操作与方式0和方式1完全相同,可作定时器使用,也可用作计数器。但是,另一个计数器TH0只可以工作在内部定时器模式下。工作方式3为T0增加了一个8位的定时器。 8.利用定时/计数器T0从P1.0输出周期为1S,脉宽为20MS的正脉冲信号,晶振频率为12MHZ试设计程序 #include reg51.h #define uchar unsigned char #define uint unsigned int uchar x; void InitTimer0(void) { TMOD = 0x01; //T0定时,0x05不对. TH0 = (65536 - 20000) / 256; //0xFF; TL0 = (65536 - 20000) % 256; //0x9C; //定时20ms,让编译软件自动计算初始值. EA = 1; ET0 = 1; TR0 = 1; } void main(void) { InitTimer0(); x = 0; while(1); } void Timer0Interrupt(void) interrupt 1 { TH0 = (65536 - 20000) / 256; //0xFF; TL0 = (65536 - 20000) % 256; //0x9C; x++; //每20ms加一次一. if (x = 50) x = 0; //加到50,就归0 if (x == 0) P1_0 = 1;//在x=0的20ms,输出1 else P1_0 = 0;//在其它时间,输出0 }要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。用方式T1和方式1并用定时和查询

您可能关注的文档

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档