时钟电路基本程序设计实用教案

上传人:辰*** 文档编号:85866653 上传时间:2022-05-06 格式:PPTX 页数:19 大小:296.17KB
收藏 版权申诉 举报 下载
时钟电路基本程序设计实用教案_第1页
第1页 / 共19页
时钟电路基本程序设计实用教案_第2页
第2页 / 共19页
时钟电路基本程序设计实用教案_第3页
第3页 / 共19页
资源描述:

《时钟电路基本程序设计实用教案》由会员分享,可在线阅读,更多相关《时钟电路基本程序设计实用教案(19页珍藏版)》请在装配图网上搜索。

1、编程要求:控制一个信号灯(P1.0口)闪烁(shn shu)程序一、延时C语言程序设计(chn x sh j)第1页/共19页第一页,共19页。/功能:控制一个信号灯闪烁程序#include sbit P1_0=P10;/定义位名称void delay(unsigned char i);/延时函数声明void main()/主函数 while(1) P1_0=!P1_0; delay(10);/调用延时函数,实际(shj)变量为10 第2页/共19页第二页,共19页。/函数功能:实现软件延时/形式参数:unsigned char i;/i控制空循环的外循环次数(csh),共循环i*255次/返

2、回值:无void delay(unsigned char i)/延时函数,无符号字符型变量i为形式参数 unsigned char j,k; /定义无符号字符型变量j和k for(k=0;ki;k+)/双重for循环语句实现软件延时 for(j=0;j255;j+);第3页/共19页第三页,共19页。/设单片机的fosc=6MHz用定时器T0的方式0编/程,在P1.0脚上输出(shch)周期为1ms的方波。 第4页/共19页第四页,共19页。解:1)初值计算TH0=F8H,TL0=06H2)工作(gngzu)方式控制字TMOD=00H(复位时自动清0)第5页/共19页第五页,共19页。ORG0

3、000HAJMPMAINMAIN:MOVTL0,#06H;预置初值MOVTH0,#0F8HSETBTR0 ;启动T0LOOP1:JBC TF0,LOOP2;计数(j sh)溢出否SJMPLOOP1LOOP2:MOVTL0,#06H;重置初值MOVTH0,#0F8HCLR TF0(为什么?)CLPP1.0;取反SJMPLOOP1;重复循环第6页/共19页第六页,共19页。/用C语言实现(shxin)上述要求 #include”reg51.h”Sbit P1_0=P10Voiddelay500us();void main() for( ; ; )P1_0=!P1_0;delay500us;第7页/

4、共19页第七页,共19页。/用T0方式0实现500us延时 void delay500us() unsigned char i; TMOD=0 x00; / 置T0为工作方式0 TH0=0 xF8;/ 设置定时器初值 TL0=0 x06; TR0=1; / 启动T1 while(!TF0); / 查询计数是否(sh fu)溢出,即定时500us时间到,TF0=1 TF0=0;/ 500us定时时间到,将定时器溢出标志位TF0清零 第8页/共19页第八页,共19页。/用T1方式0实现1秒延时函数,设fosc=12MHz void delay1s() unsigned char i; TMOD=0

5、 x00; / 置T1为工作方式0 for(i=0;i0 xc8;i+) / 设置200次循环(xnhun)次数 TH1=0 x63;/ 设置定时器初值 TL1=0 x18; TR1=1; / 启动T1 while(!TF1); / 查询计数是否溢出,即定时5ms时间到,TF1=1 TF1=0; / 5ms定时时间到,将定时器溢出标志位TF1清零 第9页/共19页第九页,共19页。/用定时器工作方式2实现的1秒延时函数如下:void delay1s() unsigned int i; / i不能定义成unsigned char(为什么?) TMOD=0 x20; / 设置T1为方式2 TH1=

6、6;/ 设置定时器初值,放在for循环(xnhun)之外(?) TL1=6; for(i=0;i4000;i+) / 设置4000次循环(xnhun)次数 TR1=1; / 启动T1 while(!TF1); / 查询计数是否溢出,即定时250s时间到,TF1=1 TF1=0;/ 250s定时时间到,将定时器溢出标志位TF1清零 第10页/共19页第十页,共19页。中断处理过程中断响应(xingyng)过程就是自动调用并执行中断函数的过程。C51编译器支持在C源程序中直接以函数形式编写中断服务程序。常用的中断函数定义语法如下: void 函数名() interrupt n其中n为中断类型号,C

7、51编译器允许031个中断,n取值范围031。下面给出了8051控制器所提供的5个中断源所对应的中断类型号和中断服务程序入口地址:中断源 n 入口地址外部中断0 00003H定时/计数器0 1000BH外部中断1 20013H定时/计数器1 3 001BH串行口 4 0023H第11页/共19页第十一页,共19页。中断(zhngdun)C语言程序设计举例:可控霓虹灯控制要求:正常情况下8个LED依次点亮,循环显示,时间间隔1s。按键按下后,8个LED同时亮灭一次,时间间隔为0.5s。用T1、工作方式1编制延时程序,按键动作采用外部中断(zhngdun)INT0实现。第12页/共19页第十二页,

8、共19页。/函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,/定时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒#include void delay0_5s() unsigned char i; for(i=0;i0 x0a;i+)/ 设置10次循环次数 TH1=0 x3c;/ 设置定时器初值 TL1=0 xb0; TR1=1;/ 启动T1 while(!TF1); / 查询计数是否(sh fu)溢出,即定时50ms时间到,TF1=0 TF1=0;/ 50ms定时时间到,将定时器溢出标志位TF1清零 第13页/共19页第十三页,共19页。/函数名:in

9、t_0/函数功能:外部中断0中断函数,当CPU响应(xingyng)外部中 /断0的中断请求时,自动执行该函数,实现八个信 /号灯闪烁void int_0() interrupt 0 /外部中断0的中断号为0 P1=0 x00;/熄灭八个信号灯 delay0_5s();/调用0.5秒延时函数 P1=0 xff;/点亮八个信号灯 delay0_5s();/调用0.5秒延时函数第14页/共19页第十四页,共19页。void main()/主函数 unsigned char i,w; EA=1;/ 打开中断总允许(ynx)位 EX0=1;/ 打开外部中断0允许(ynx)位 IT0=1;/ 设置外部中

10、断为边沿(下降沿)触发方式 TMOD=0 x10; / 设置T1为工作方式1 while(1) w=0 x01;/ 显示码初值为01H for(i=0;i8;i+) P1=w;/ w取反后送P1口,点亮相应LED灯 w=1;/ 点亮灯的位置移动 delay_t(2);/ 调用延时函数delay_t(),实际参数为2,延时1秒 第15页/共19页第十五页,共19页。/修改以上程序,使系统每隔20s中断闪烁一次:/函数名:int_3/函数功能:定时器1中断函数,当CPU响应该(ynggi)中断请求时,自动执行该函数,实现八个信号灯闪烁/形式参数:无/返回值:无void int_3() interr

11、upt 3 /定时器1中断号为3 P1=0 x00;/熄灭八个信号灯 delay20s();/调用0.5秒延时函数 P1=0 xff;/点亮八个信号灯 delay20s();/调用0.5秒延时函数第16页/共19页第十六页,共19页。/以定时器T1写一个延时20s的子函数(略)void main()/主函数 unsigned char i,w; EA=1;/ 打开中断(zhngdun)总允许位 EX0=1;/ 打开外部中断(zhngdun)0允许位 IT0=1;/ 设置外部中断(zhngdun)为边沿(下降沿)触发方式 ET1=1;/设置定时器1中断(zhngdun)允许位 TMOD=0 x01; / 设置T0为工作方式1 while(1) w=0 x01;/ 显示码初值为01H for(i=0;i8;i+) P1=w;/ w取反后送P1口,点亮相应LED灯 w=1;/ 点亮灯的位置移动 delay1s();/ 调用延时函数,延时1秒 第17页/共19页第十七页,共19页。单片机与LED数码管接口(ji ku):动态显示第18页/共19页第十八页,共19页。感谢您的观看(gunkn)!第19页/共19页第十九页,共19页。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!