| | 实验目的和要求: (1)实验目的: 熟悉μVision3编译软件,掌握C51编程与调试方法。 (2)实验要求: 提交实验报告并包括如下内容:电路原理图、软件流程分析、C51源程序(含注释部分)、仿真运行截图及实验小结。 | 实验内容和原理: 实验原理: 实验电路原理图: 图中8只LED指示灯接于P0口,且都有上拉电阻。时钟电路、复位电路、片选电路与前面实验电路相同。 软件流程分析(软件编程原理): 主程序中的两部分的流程图分别如下:(两个循环体无限循环) 实验内容: (1)熟悉μVision3编译软件,了解软件结构与功能; (2)完成实验2的C51语言编程; (3)掌握在μVision3中进行C51程序开发的方法。
| |
- #include"reg51.h"
- void delay(unsigned int time)//延时函数
- {
- unsigned int j=0;
- for(time=time;time>0;time--)
- for(j=0;j<125;j++);
- }
- void main()
- {
- unsigned char i;
- P0=0xfe;
- delay(50);
- while(1){//无限循环
- for(i=1;i<=7;i++){
- P0=(P0<<1) | (P0>>7);//循环左移
- delay(200);
- }
- for(i=1;i<=7;i++){
- P0=(P0>>1) | (P0<<7);//循环右移
- delay(200);
- }
- }
- }
复制代码
实验结果与分析: 实验结果(仿真运行截图): 以下的图片为仿真运行的截图,前两张为由上到下流水灯亮,后两张图为由下到上流水灯亮,截取其中两张来表示这个过程。 结果分析: 原理图中可以看到,二极管低电平驱动,P0.n输出为低电平时,对应的二极管亮;想要循环控制,可以先让P1口输出一个值,利用P1口输出值的循环左移或者循环右移来实现功能。 参考文献: 林立 张俊亮 单片机原理及应用—基于Proteus和Keil C(第四版)
完整的Word格式文档51黑下载地址:
指示灯循环控制.doc
(117 KB, 下载次数: 51)
|