下载此文档

单片机实验2流水灯高级版.ppt


文档分类:高等教育 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
实验二流水灯
进阶篇
通过查表法&定时器中断
控制LED灯的点亮

基本要求-第一部分
查表的含义;只读数组
code的功能?当成常量载入rom或者flash
自己烧写程序,观察现象;
分析程序;
比较与实验1的相同与不同之处;

程序功能演示
流水灯花样繁多
非常好看(比试验1)
问题:
一共有多少种花样?
你能够自己数出来吗?
你能够自己设计出更多的花样吗?
如何改变流水的速度?
每个花样保持多长时间?
还有其他方法来改变来改变流水的速度吗?
程序分析-表格
code unsigned char 代码区只读数组tab[]={0x3c,0x81,0xc3,0xe7,0xff,0xe7,0xc3,0x81,0x00,
0x18,0x3c,0x7e,0xff,0x00,0xaa,0xaa,,
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

void main()
{
unsigned char i;
while(1)
{
for(i=0;i<33;i++)
{
P1=~tab[i];
delay();
}
}
}
基本要求-第2部分
定时器的使用及相关概念;
如何利用74LS161来构建定时器?
8位定时器的定时范围自动加成256?16位呢范围25536要重新赋值?timer mode=TMOD
定时周期是什么?如何设置?
中断的使用及相关概念;
如何开启中断?
中断函数与普通函数的区别与联系?
什么是中断屏蔽寄存器、中断标志寄存器?

程序功能演示
流水灯花样繁多-没有变化
非常好看-也没有变化
问题:
?
什么是定时器?
用定时器有什么好处?
什么是中断?
用中断有什么好处?
-主循环部分
while(1)
{
if(ShiftFlag)
{
ShiftFlag=0;
P1=~tab[ShiftCount];
ShiftCount++;
if(ShiftCount>=33) //24+1=33
ShiftCount=0;
}
}//while
-中断部分
void T0_service(void) interrupt 1 //4ms中断服务函数
{
TH0=(65536-4000)>>8;
TL0=(unsigned char)(65536-4000);用低八位
Count4ms=Count4ms+1; shiftflag变成1
if (Count4ms==100) //250 to 1s; 100 to 400ms
{
Count4ms=0;
ShiftFlag=1;
}
}
问题:
1、interrupt是什么意思?保留字
2、 interrupt后面的1是第一号中断?可以改成2吗?
3、 ShiftFlag变量的作用?把中断和主函数联系起来标识移位时间到
4、Count4ms变量的作用?
-初始化部分
//system initial
TMOD=0x01; //设置定时器0为工作模式1
TH0=(65536-4000)>>8; //定时周期为4000,4ms,
TL0=(unsigned char)(65536-4000);赋初值,不赋的话可能第一次不是四毫秒
TR0=1; //定时器使能
ET0=1; //定时器中断使能
EA=1; //开全局中断
//用户变量初始化
ShiftFlag=0;
ShiftCount=0;

单片机实验2流水灯高级版 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aluyuw1
  • 文件大小94 KB
  • 时间2017-11-26