编程复习课pptConvertor

上传人:ni****g 文档编号:471333832 上传时间:2023-12-13 格式:DOCX 页数:10 大小:18.09KB
返回 下载 相关 举报
编程复习课pptConvertor_第1页
第1页 / 共10页
编程复习课pptConvertor_第2页
第2页 / 共10页
编程复习课pptConvertor_第3页
第3页 / 共10页
编程复习课pptConvertor_第4页
第4页 / 共10页
编程复习课pptConvertor_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《编程复习课pptConvertor》由会员分享,可在线阅读,更多相关《编程复习课pptConvertor(10页珍藏版)》请在金锄头文库上搜索。

1、2014/12/71编程复习课2.612014/12/72Led点亮板子上的0、2、4、6灯,与1、3、5、7灯交替闪烁22014/12/73#include#define uint unsigned int void delay();void main() while(1) P1=0xaa;delay();P1=0x55;delay(); 32014/12/74void delay()uint x,y;for(x=100;x0;x-)for(y=600;y0;y-) ;42014/12/75流水灯:从D0-D7依次点亮#include#include #define uint unsigne

2、d int #define uchar unsigned char uchar temp;void delay(uint);程序如下:52014/12/76void main() temp=0xfe;while(1)for(num=0;num0;x-)for(y=110;y0;y-) ;72014/12/78例子1. D1、D2、D5、D6和D0、D3、D4、D7这四个LED交替闪烁.2. 设计出流水灯程序,从D7D082014/12/79数码管92014/12/710在八个数码管上显示0、1,27#include#define uint unsigned int #define uchar

3、unsigned char uchar num1;uchar num2;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code wei=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;void delay();102014/12/711void main()while(1)for(num1=0;num10;x-)for(y=110;y0;y-);122014/12/713练习题用数码管动态显示,实现00-59计数器。 132014/12/714通过四个按键来控制L

4、ED灯的显示情况:S1:D0-D3点亮S2:D2点亮S3:D0-D7点亮S4:D0-D5点亮142014/12/715#include #define uint unsigned int#define uchar unsigned charuchar flag;void delay(uint k)uint data i,j;for(i=0;ik;i+)for(j=0;j121;j+);152014/12/716uchar scan_key(void)uchar temp;temp=P3;return temp;162014/12/717void main(void) while(1) P3=0

5、xff; if(P3!=0xff) delay(20);if(P3!=0xff)flag=scan_key(); else flag=0; switch(flag) case 0xf7:P1=0xf0; break; case 0xfb:P1=0xfb;break; case 0xdf:P1=0x00;break; case 0xef:P1=0xc0;break; default:P1=0xff;break; 172014/12/718中断定时器182014/12/719【例】单片机应用系统中,外中断0引脚接一个开关,并行口线P1.0接一个发光二级管。要求:开关闭合一次,发光二极管的状态改变一

6、次。试编写程序 #include “reg51.h”#include “intrins.h” sbit P10=P10; void delay(void)int i;for(i=0;i200;i+);void int_srv(void)interrupt 0 P10 = ! P10;delay( ); void main() P10 = 0; EA = 1; EX0 = 1; IT0=1;while(1);192014/12/720编程流程:1、初始化中断:开中断; 设置优先级; 触发方式。2、进入中断后:关中断; 执行程序; 开中断。202014/12/721定时器例1 设单片机的振荡频率为

7、12MHz,在P1.0引脚产生一个周期为1000s的方波,定时器T0采用中断的处理方式。定时器的分析过程。工作方式选择: 需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。 工作模式选择: 根据定时时间长短选择工作模式。 首选模式2,可以省略重装初值操作。212014/12/722定时时间计算:周期为1000s的方波要求定时器的定时时间为500s,每次溢出时,将P1.0引脚的输出取反,就可以在P1.0上产生所需要的方波。 定时初值计算: 振荡频率为12MHz,则机器周期为1s。 设定时初值为X,(65536-X)1s=500s X=65036=0FE0CH定时器的初值

8、为:TH0=0FEH,TL0=0CH222014/12/723C语言程序:#include /包含特殊功能寄存器库sbitP1_0=P10; /进行位定义void main( ) TMOD=0x01; /T0做定时器,模式1TL0=0x0c;TH0=0xfe;/设置定时器的初值ET0=1; /允许T0中断 EA=1; /允许CPU中断TR0=1; /启动定时器while(1); /等待中断 232014/12/724void time0_int(void) interrupt 1/中断服务程序TL0=0x0c;TH0=0xfe;/定时器重赋初值P1_0=P1_0;/P1.0取反,输出方波242

9、014/12/725例2 设单片机的振荡频率为12MHz,用定时器/计数器0编程实现从P1.0输出周期为500s的方波。分析:方法同例1定时时间: 方波周期为500s,定时250s。 模式选择: 定时器0可以选择模式0、1和2。模式2最大的定时时间为256s,满足250s的定时要求,选择模式2。252014/12/726(1)初值计算 (256-X)1s=250s X=6;则TH0=TL0=6 (2)程序:采用中断处理方式的程序 :262014/12/727C语言程序:#include /包含特殊功能寄存器库sbitP1_0=P10; /进行位定义voidmain( )TMOD=0x02; /

10、选择工作模式TL0=0x06;TH0=0x06; /为定时器赋初值 ET0=1; /允许定时0中断 EA=1;TR0=1;/启动定时器0while(1);/等待中断272014/12/728void time0_int(void) interrupt 1 P1_0=P1_0;282014/12/729练习题利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。利用定时/计数器T0的方式1,产生1s的定时,并使P1.0引脚上输出周期为2s的方波,采用中断方式,设系统时钟频率为12 MHz。292014/12/73

11、0利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。1、计算计数初值X: Nt/ Tcy 1010-3/110-610000计数器初值应为65536-10000。即应将 ( 65536-10000 )/256送入TH0中, (65536-10000 )%256送入TL0中。302014/12/7312、求T0的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控制字为01H 7 6 5 4 3 2 1 0 TMOD GATE C/TM1 M0 GATE C/T M1 M0 字节地址:89H 312014/12/732 1. C/T 定时器方式或计数器方式选择位 若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 2.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号