首页 理论教育项目软件程序设计:51单片机初级入门实战教程

项目软件程序设计:51单片机初级入门实战教程

【摘要】:图10-3 中断方式T0控制LED程序流程图用定时器T0方式1编写程序,即采用中断方式设计的程序流程图如图10-3所示。在图10-3程序流程图的基础上书写中断实现T0控制LED闪烁程序代码如下:结合2.3节关于单片机开发环境Keil C51的学习,建立工程time文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图10-4所示。同时在创建工程路径time1文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。

依据项目需求驱动LED亮65ms,灭65ms,只是需要在P0.1端以65ms为周期交替输出高、低电平实现。设计硬件电路晶振为12MHz,则机器周期为

机器周期=12/晶振频率=12/12MHz=1μs

采用定时器T0工作方式1,设置M1M0=01;为实现定时功能,使得C/T=0。由定时器控制寄存器TCON中的TR0=1启动定时器T0,选择工作方式1时T0为16位定时器。定时时间65ms,采用工作方式1作为T0定时初值计算公式可以得到

T0初值=216-65000μs/1μs=65536-65000=536=218H,则高八位为02H,放入TH0中,低八位为18H,放入TL0中,即TH0=02H,TL0=18H。对T0定时器控制LED闪烁书写软件一般有两种方式:①采用中断方式;②采用查询方式。采用中断方式书写程序时,T0运行工作后开始从初值加1计数,至最高位产生溢出时,申请中断,单片机响应中断执行中断服务程序。采用查询方式书写程序时,利用循环结构判断T0定时器最高位溢出标志TF0是否为1,若TF0=1则T0计数器溢出开始下一轮计数。

978-7-111-47690-0-Part02-54.jpg

图10-3 中断方式T0控制LED程序流程图

用定时器T0方式1编写程序,即采用中断方式设计的程序流程图如图10-3所示。

在图10-3程序流程图的基础上书写中断实现T0控制LED闪烁程序代码如下:

978-7-111-47690-0-Part02-55.jpg

978-7-111-47690-0-Part02-56.jpg

结合2.3节关于单片机开发环境Keil C51的学习,建立工程time文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图10-4所示。同时在创建工程路径time文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。(www.chuimin.cn)

978-7-111-47690-0-Part02-57.jpg

图10-4 程序成功编译结果图

用定时器T0方式1编写程序,采用查询方式程序流程图如图10-5所示。

978-7-111-47690-0-Part02-58.jpg

图10-5 查询方式T0控制LED程序流程图

在图10-5程序流程图的基础上书写查询实现T0控制LED闪烁程序代码如下:

978-7-111-47690-0-Part02-59.jpg

结合2.3节关于单片机开发环境Keil C51的学习,建立工程time1文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图10-6所示。同时在创建工程路径time1文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。

978-7-111-47690-0-Part02-60.jpg

图10-6 程序成功编译结果图