单片机c语言程序分析.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲 如何开关控制发光管闪烁(无开关) 如何开关控制发光管闪烁(有开关) 第二讲 模拟交通灯 驱动数码管 按键控制 LED移位 说明: 按下 K1 时,P0口 LED左移一位。 ? ?按下 K2 时,P0 口 LED右移一位。 ? ?按下 K3 时,P2 口 LED右移一位。 ? ?? 按下 K4 时,P2 口 LED左移一位。 数码管滚动显示单个数字 说明:数码管从左到右依次滚动显示1--6 播放生日快乐歌 说明:程序运行时播放生日快乐歌,未使用定时器中断,所有频率完全用延时实现。 第三讲 片内RAM:00H—0FFH 2、80H—0FFH:128bytes 直接寻址:SFR,共22个寄存器,其中21个可字节寻址,PC不可寻址,11个可位寻址。 简介寻址:User RAM 总结:在51C语言中,DATA:直接寻址的00H—0FFH。IDATA:间接寻址的00H—0FFH。 ? DATA的00H-7FH区间与IDATA 的00H-7FH区间是重叠的,即该区域既可直接寻址,也可间接寻址。 ? 80H以上的存储器实际是两个各自独立的存储区,要用不同的寻址方式进行访问。 ? 80H以上的存储区是否可用取决于芯片的选择。 4、片外数据存储器 ? 通过总线端口和其他I/O口扩展外部数据RAM,其最大容量可达64K字节。 ? 在片外数据存储器中,数据区和扩展的I/O口是统一编址的。 在51的C语言中,XDATA :指外部数据存储空间(0000H-0FFFFH)。 在51的C语言中,CODE :指程序地址空间0000H-0FFFFH。 第五讲(考) 1、定时器方式0、定时模式的使用 说明:单片机的晶振频率为12MHz,利用T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。 定时初值: TC=M-T/ T计数 T = 1*10-3 ,T计数 = 12/(12x106) = 1*10-6 TC = 213 – 1*10-3/1*10-6 = 213 –1000 = 7192 = 1C18H TH0 = 1CH , TL0 =18H 用c语言直接计算: #define fosc 12 //晶振频率 #define time0 1000 //定时1ms,这里的最小单位是us(微秒) unsigned int idata time0_times;//使用间接寻址的片内RAM unsigned char data time0_h,time0_l; //使用直接寻址的片内RAM main() {time0_times = 8192 –time0 * fosc / 12; //213=8192 time0_h = time0_times / 256; time0_l = time0_times % 256;} //运行结果:在示波器上产生方波 2、定时器方式2、计数模式的使用 说明:单片机的晶振频率为12MHz,利用T0方式2进行计数,T0引脚(P3.4)的3个下降沿使得P1.0引脚上电平翻转一次。 方式字:TMOD=06H 计数初值: TC=M-C C是三个下降沿 TC = 28 – 3 = 253 = 0FDH TH0 = TL0 =0FDH 用程序观察中断号与地址的对应关系 //中断程序入口认识 #include reg51.h char i; void main(void) //主程序 { i=0; while(1); } void int0(void) interrupt 0 //INT0中断服务程序 { i = 1; } void time0_int(void) interrupt 1 //T0中断服务程序 { i = 2; } void int1(void) interrupt 2 //INT1中断服务程序 { i = 3; } void time1_int(void) interrupt 3 //T1中断服务程序 { i = 4; } void serial_int(void) interrupt 4 //串口中断服务程序 { i = 5; } 第八讲 51串口的三种功能: 串并转换; 插入或滤除格式信息(起始位、校验位和停止位); 波特率的控制。 串口使用的两个要点: 1、确定工作方式; 2、确定传输速率(波特率) 51串口的四种工作方式 方式0:串行移位输入/输出方式 RXD--数据输入输出,TXD--移位时钟脉冲,传输波特率为fosc/12。 方式1

文档评论(0)

四娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档