- 36
- 0
- 约6.42千字
- 约 19页
- 2017-05-21 发布于浙江
- 举报
数字方阵程序 (单片机课程设计报告)
合肥师范学院
实验报告册 2013 / 2014 学年 第2 学期 系 别 计算机科学与技术系 实验课程 单片机原理及应用 专 业 2011计算机软件 班 级 一班 姓 名 学 号 指导教师
实验名称 课时 实验报告成绩 实验(一)——流水灯 2 实验(二)——中断与定时/计数器 2 实验(三)——串行口实验 2 实验(四)——矩阵键盘输入识别 2 备注: 实验一 ——流水灯
实验目的
通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器
实验任务
通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的存储器
实验原理图设计
图1.1
实验程序
#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sfr x=0xb0;
void delay()
{unsigned char i,j;
for(i=0;i250;i++)
for(j=0;j=i;j++) ;
}
void function1()
{x=0xfe;
delay();
x=0xfd;
delay();
x=0xfb;
delay();
x=0xf7;
delay();
x=0xef;
delay();
x=0xdf;
delay();
x=0xbf;
delay();
x=0x7f;
delay();
}
void function2()
{x=0x7e;
delay();
x=0xbd;
delay();
x=0xdb;
delay();
x=0xe7;
delay();
x=0xe7;
delay();
x=0xdb;
delay();
x=0xbd;
delay();
x=0x7e;
delay();
}
void function3()
{x=0xff;
for(;x!=0x00;)
{x=x-0x01;
delay();
}
}
void function4()
{x=0x7f;
x=_cror_( x,1);
}
void function5()
{ x=0x7f;
x=_cror_( x,1);
delay();
x=0xfe;
x=_crol_( x,1);
}
void main()
{ while(1)
{function1();
function2();
function3();
function4();
function5();
}
}
实验结论
通过本次试验,我对单片机的一些性能有了大概的了解,学会了怎样控制LED灯的亮灭控制以及亮灭的顺序,亮度,时间等。同时也了解了一些有关LED灯的使用方法和注意事项以及制图过程中所涉及的一些问题。最终 8个发光二极管从左到右流水依次点亮;LED灯亮的顺序先是先是按照LED0—LED1—……—LED7的顺序依次点亮,然后是按照LED7—LED6—……—LED0依次点亮,重复循环;LED灯先是全灭,然后按照LED0—LED1—LED0 LED1—LED2—LED2 LED0—……—LED7 LED6 LED5 LED4 LED3 LED2 LED1,然后全亮,实现用流水灯显示八位二进制加法计数器的结果。
总结与反思
在制图过程中对一些组件还是感觉挺陌生的,有的组件甚至要通过询问同学才能找到,这些都需要我在以后要多使用这些软件,做到熟练使用。
实验二 ——中断与定时器/计数器
一 、实验目的
通过对P3.2、P3.3引脚的电平控制,实现外部中断处理,从而控制输出口P1的输出效果变化。
实验任务
1、实现中断控制的原理图(图一),通过对P3.2与P3.3的引脚控制,实现外部中断,实现对输出口P1的输出变化控制。
2、修改程序使用定时器T1的中断方式来控制P2.0 、P2.1引脚的LED灯分别以200mshe 800ms的周期闪烁。(图二)
实验原理设计图
图2.1
图2.2
实验程序
代码一:
#includereg52.h
#includeintrins
原创力文档

文档评论(0)