- 5
- 0
- 约4.5千字
- 约 19页
- 2017-11-25 发布于湖北
- 举报
单片机-流水灯的程序
利用单片机实现流水灯 杨美丽 * * 方法一:利用位定义实现流水灯(8位二极管循环点亮) 相关知识 一、sbit 当我们在C语言中直接给P2口时,编译器并不识别,而且这也是种不合法的写法,所以我们要让P2与编译器建立一定的联系,于是就采用了KEIL C中的关键字sbit。 sbit是一个特殊功能寄存器的位变量。bit和sbit都是C51扩展的变量类型,典型的应用就是我们前面用的sbit led=P2^0;他的意思就是定义led为P2口的第一位,和char之类的差不多,不同点就是char是8位,而sbit只有一位,而且它只有两种值(1或者0)。 在编程中 我们一旦用sbit定义了一个变量,那么这个变量就有了确定的地址。如你使用了char,也就限制了它的使用值一样。 二、子函数的调用。 1)不带参数函数的写法及调用 在C语言中当一些语句不止一次使用到,而且语句内容相同,我们就可以把这样的语句写成一个不带参数的子函数,当在主函数中需要这些语句时,直接调用这个语句就可以: 例如:延时语句 for(i=0;ixms;i++) for(j=0;jxms;j++); 我们可以把他的调用语句写成: void delayms() { char i;char j; for(i=0;i100;i++) for(j=0;j100;j++); } 其中void表示这 个函数执行完后 不返回任何数据。 ()内无任何东西, 所以这是个无参 数的函数。 Delayms是函数名。 2)带参数函数的写法及调用 void delayms(unsigned char xms) { char i;char j; for(i=0;ixms;i++) for(j=0;jxms;j++); } 在这个函数中我们发现其括号中多了一个 “unsigned char xms”.这就是这个函数所带的参数,其中xms是一个unsigned char 的变量,又叫这个函数的形参,在调用此函数时我们用一个具体真是的数据来代替此形参,这个真实数据被称为实参,形参被实参代替之后,在子函数中和形参名相同的数据都将被实参代替。 调用注意事项: 子函数可以写下主函数的前面或是后面,但是不可以写在主函数的里面。 当写在后面时,必须在主函数之前申明子函数,声明方法为:将返回特性,函数名及后面的小括号完全复制,若是无参数,则小括号内位空,若有参数,则需要在小括号内,依次写上参数类型,只写参数,无需写参数,参数类型之间用逗号隔开,最后在小括号的后面加上冯号。 当子函数写在主函数的前面时无需声明,因为在写函数体的时候已近相当于声明了函数本身。通俗的讲,声明子函数的目的是为了编译器在编译主程序的时候,当它遇到子函数知道有这样的一个函数存在,并且知道他的内部情况,以便为其分配空间。 方法一:利用位定义实现流水灯(8位二极管循环点亮) 编程思路: a) 先点亮第一盏灯,延时点亮第二盏, 依次延时8盏灯全部点亮。 b) 当8盏灯全部点亮时,熄灭8盏灯。 c) 进入循环。 程序分析: #includereg51.h sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit led4=P2^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void delay (unsigned char x); void main() { while(1) { led1=0; delay(120); led2=0; delay(120); led3=0; delay(120); led4=0; delay(120); led5=0 ; delay(120); led6=0; delay(120); led7=0; delay(120); led8=0; delay(120); led1=1; led2=1; led3=1; led4=1; led5=1; led6=1; led7=1; led8=1; } } void delay(unsigned char x) { char i;char j; fo
您可能关注的文档
- 化工管道安装.ppt
- 化工设计概论-天津大学.ppt
- 化工设计-11 塔.ppt
- 化工识图1.ppt
- 化机基础(力学)_第二章轴向拉伸压缩.ppt
- 化工设备机械基础 BUCT第六、七章.ppt
- 化验数据处理.ppt
- 北京交通大学海滨学院物流运作管理第6章.ppt
- 化验室常用电热设备.ppt
- 化药注册的技术要求.ppt
- 2026版高考物理步步高大二轮 (培优版)考前特训热点排查热点5 抛体运动和圆周运动含答案.docx
- 2026版高考物理步步高大二轮 (培优版)考前特训选择题提速练含答案.docx
- 2026版高考物理步步高大二轮 (培优版)第一篇专题六 第16讲 电学实验含答案.docx
- 个人敏感数据存储协议书.docx
- 2026版高考物理步步高大二轮 (培优版)考前特训计算题提分练压轴题抢分练(1)含答案.docx
- 2026版高考物理步步高大二轮 (培优版)模拟检测卷(一)含答案.docx
- 2026版高考物理步步高大二轮 (培优版)热点13 机械振动 机械波含答案.docx
- 2026版高考物理步步高大二轮 (培优版)第一部分 专题整合提升专题二 能量与动量第5课时 功与功率 功能关系含答案.docx
- 2026版高考物理步步高大二轮 (培优版)第一部分 专题整合提升专题二 能量与动量第7课时 动量定理 动量守恒定律含答案.docx
- 2026版高考物理步步高大二轮 (培优版)第一部分 专题整合提升专题二 能量与动量增分培优2 “滑块—木板”模型的综合问题含答案.docx
最近下载
- 2025年度民主生活会个人对照检查发言材料 八篇.docx VIP
- 珠海市墨库新材料有限公司年产2000吨喷墨墨水原料项目 环境影响报告表(污染影响类)珠 .pdf VIP
- 运算律复习课.ppt VIP
- 《高等教育学》知识点梳理(附答案) .pdf VIP
- 医院围手术期护理质量检查标准评分表.doc VIP
- 浙江杭州市临安区中医院招聘笔试备考题库及答案解析.docx VIP
- 乡卫生院绩效工资考核与分配方案.docx VIP
- 部编人教版道德与法治七年级下册知识梳理总结(重点版).doc VIP
- 2025年福州市长乐市辅警招聘考试真题附答案解析.docx VIP
- 【研报】2023中国游戏出海支付研究报告.docx VIP
原创力文档

文档评论(0)