下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、五种编程方式实现流水灯的单片机 C 程序/ 功能:采用顺序结构实现的流水灯控制程序/* 此方式中采用的是字操作(也称为总线操作) */ #include <>void delay(unsigned char i); / 延时函数声明 void main() / 主函数while(1) P1 = 0xfe;/ 点亮第 1 个发光二极管delay(200);/ 延时P1 = 0xfd;/ 点亮第 2 个发光二极管delay(200);/ 延时P1 = 0xfb;/ 点亮第 3 个发光二极管delay(200);/ 延时P1 = 0xf7;/ 点亮第 4 个发光二极管delay(200)
2、;/ 延时P1 = 0xef;/ 点亮第 5 个发光二极管delay(200);/ 延时P1 = 0xdf;/ 点亮第 6 个发光二极管delay(200);/ 延时P1 = 0xbf;/ 点亮第 7 个发光二极管delay(200);/ 延时P1 = 0x7f;/ 点亮第 8 个发光二极管delay(200);/ 延时/ 函数名: delay/ 函数功能:实现软件延时/ 形式参数: unsigned char i;/ i 控制空循环的外循环次数,共循环 i*255 次 / 返回值:无void delay(unsigned char i) unsigned char j, k;for(k =
3、0; k < i; k+) for(j = 0; j < 255; j+);/ 延时函数,无符号字符型变量 i 为形式参数/ 定义无符号字符型变量 j 和 k/ 双重 for 循环语句实现软件延时/ 功能:采用循环结构实现的流水灯控制程序/ 此方式中采用的移位,按位取反等操作是位操作#include <>/ 包含头文件void delay(unsigned char i);/ 延时函数声明void main()/ 主函数unsigned char i,w;while(1)w = 0x01;for(i = 0; i < 8; i+)P1 = w; delay(200
4、);w <<= 1;/ 函数名: delay/ 函数功能:实现软件延时/ 信号灯显示字初值为 01H/ 显示字取反后,送 P1 口 / 延时/ 显示字左移一位/ 形式参数: unsigned char i;/ i 控制空循环的外循环次数,共循环 i*255 次 / 返回值:无void delay(unsigned char i) unsigned char j,k;for(k = 0; k < i; k+) for(j = 0; j < 255; j+);/ 延时函数,无符号字符型变量 i 为形式参数/ 定义无符号字符型变量 j 和 k/ 双重 for 循环语句实现软件
5、延时*/ 功能:采用位运算符编写的流水灯控制程序,显示效果为依次熄灭信号灯/ 此方式也是典型的顺序结构#include <>void delay(unsigned char i);/ 延时函数声明void main()/ 主函数while(1) P1 = 0x00;/P1 口全部清 0,即点亮 8 个发光二极管delay(200);/ 延时P1 = P1 | 0x01;/ 熄灭第 1 个发光二极管delay(200);/ 延时P1 = P1 | 0x03;/ 熄灭第 1、2 个发光二极管delay(200);/ 延时P1 = P1 | 0x07;/熄灭第13个发光二极管delay(
6、200);/ 延时P1 = P1 | 0x0f;/ 熄灭第 14 个发光二极管delay(200);/ 延时P1 = P1 | 0x1f; delay(200);P1 = P1 | 0x3f; delay(200);P1 = P1 | 0x7f; delay(200);P1 = P1 | 0x7f; delay(200);/ 函数名: delay/ 函数功能:实现软件延时/熄灭第15个发光二极管/ 延时/熄灭第16个发光二极管/ 延时/ 熄灭第 17 个发光二极管/ 延时/ 熄灭所有发光二极管/ 延时/ 形式参数: unsigned char i;/ i控制空循环的外循环次数,共循环 i*25
7、5 次/ 返回值:无void delay(unsigned char i) unsigned char j, k;for(k = 0; k < i; k+) for(j = 0; j < 255; j+);/ 延时函数,无符号字符型变量 i 为形式参数/ 定义无符号字符型变量 j 和 k/ 双重 for 循环语句实现软件延时/*/ 功能:采用数组实现的流水灯控制程序/ 此方式也是典型的循环结构#include <>/ 包含头文件void delay(unsigned char i);/ 延时函数声明void main() / 主函数unsigned char i;uns
8、igned char display = 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f; while(1)for(i = 0; i < 8; i+)P1 = displayi; / 显示字送 P1 口 delay(200); / 延时/ 函数名: delay/ 函数功能:实现软件延时/ 形式参数: unsigned char i;/ i/ 返回值:无控制空循环的外循环次数,共循环 i*255 次void delay(unsigned char i) unsigned char j, k;for(k = 0; k < i; k+)/ 延
9、时函数,无符号字符型变量 i 为形式参数/ 定义无符号字符型变量 j 和 k/ 双重 for 循环语句实现软件延时for(j = 0; j < 255; j+); #include<>#include <> #define uint unsigned int #define uchar unsigned char void delay(uint z)uint x, y;for(x = z; x > 0; x-) for(y = 110; y > 0; y-);void main()uchar a, i, j;while(1)for(j = 0; j<2; j+)a = 0xfe;for(i = 0; i<8; i+)P2 = a; delay(200);a =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销毁委托协议书
- 苹果开发协议书
- 2025-2026学年安徽省合肥市高一化学上册期中考试试卷及答案
- 2025年湘教版七年级历史上册月考考试试题及答案
- 工程施工承包协议书
- 老年医学科老年人多系统功能障碍护理指南
- 2025版贫血症状解读与营养护理
- 疼痛病人护理评估
- 职场幽默自我介绍
- 骨质疏松症病症状详解及护理方法
- 测绘设备基础知识培训课件
- 2025内蒙古国贸集团招聘11人考试模拟试题及答案解析
- 海南中考试卷历史及答案
- 2025至2030全球及中国麦芽糖醇粉行业项目调研及市场前景预测评估报告
- 蜀道集团笔试试题及答案
- 浙江精诚联盟2025-2026学年高二上学期10月联考数学(含答案)
- 2026年中考英语复习必背人教版初中单词默写
- 医院物价员培训知识课件
- 2025年贵州省遵义市辅警考试真题及答案
- 电动葫芦安全操作培训
- 信息运维基础知识培训课件
评论
0/150
提交评论