89c51单片机的简单运用1--数码管、流水灯
2012-06-22 23:53
190 查看
一.简单的点灯程序需要记住的
1.单片机控制开发板的二极管亮灭:
由单片机的P1口控制,注意开发板的原理图,分清楚到底是给低电平亮还是高电平亮,一般都给低电平亮。
控制灯分为总线法和位选法,总线法是用十六进制数控制P1口的高低电平,1为高,0为低,位选是选出P1口的任意一位操作。
流水灯是通过延时函数或定时器延时,依次控制不同的灯亮来完成流水灯
2.数码管的静态显示和动态扫描:
Lab-MCS51开发板通过单片机的P^0~P^3口分别控制四个数码管的亮灭,每个数码管显示的内容由P0口控制,
控制线路图如上,通过P0使a,b,c,d,e,f,g,dp亮,显示不同的数字或符号。
动态扫描是减少数码管间亮的间隙,使人的视觉感觉不出,造成数码管同时亮的假象。
流水灯;
数码管显示
1.单片机控制开发板的二极管亮灭:
由单片机的P1口控制,注意开发板的原理图,分清楚到底是给低电平亮还是高电平亮,一般都给低电平亮。
控制灯分为总线法和位选法,总线法是用十六进制数控制P1口的高低电平,1为高,0为低,位选是选出P1口的任意一位操作。
流水灯是通过延时函数或定时器延时,依次控制不同的灯亮来完成流水灯
2.数码管的静态显示和动态扫描:
Lab-MCS51开发板通过单片机的P^0~P^3口分别控制四个数码管的亮灭,每个数码管显示的内容由P0口控制,
控制线路图如上,通过P0使a,b,c,d,e,f,g,dp亮,显示不同的数字或符号。
动态扫描是减少数码管间亮的间隙,使人的视觉感觉不出,造成数码管同时亮的假象。
#include<reg52.h> //52单片机头文件 void main() //主函数 { unsigned int i; //定义一个int型变量 while(1) { i=50000; //变量赋初值为50000 P1=0xfe; //点亮第一个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfd; //点亮第二个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfb; //点亮第三个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xf7; //点亮第四个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xef; //点亮第五个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xdf; //点亮第六个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xbf; //点亮第七个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0x7f; //点亮第八个灯 while(i--); //延时 } }
流水灯;
#include <reg52.h> #include<intrins.h> void main () { int i, j ,k ; // for(i=0;i<8;i++) P1=0xfe; for(j=0;j<50000000;j++) P1= _crol_(P1,1); // for(k=0;k<50000000;k++) ; }
数码管显示
#include <reg52.h> #define uchar unsigned char #define uint unsigned int //sbit wela=P2^7; // sbit dula=P2^6; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x02,0xf8,0x00,0x10}; uchar num; void delay(uint z) { uint x,y; for(x=100;x>0;x--) for(y=z;y>0;y--); } void main() { // wela=1; P2=0xf0; // wela=0; while(1) { for(num=0;num<10;num++) { // dula=1; P0=table[num]; // dula=0; delay(500 ); } } }
相关文章推荐
- 89c51单片机的简单运用3--串口、液晶显示屏
- 89c51单片机的简单应用2——中断、定时器
- 初学51单片机——简单的流水灯程序
- 89C51单片机定时器控制的流水灯
- 【蓝桥杯|单片机组】| 数码管与LED流水灯动态显示
- 单片机控制流水灯 数码管显示时间 蜂鸣器报警
- 如何用单片机做一个简单的流水灯
- 单片机基础强化第一课 简单设计一个LED流水灯
- [蜂鸣器不简单]单片机中蜂鸣器的多种运用(长响,短响,多次响)
- 简单的单片机流水灯小程序
- 89C51单片机实现的流水灯
- vuejs2.0运用原生js实现简单的拖拽元素功能
- Java线程(三):JUC包原子性操作类与线程池的简单运用
- hdu 1576 A/B (扩展欧几里德简单运用)
- ERwin的简单运用
- 89C51单片机内部结构深度解析
- 52单片机控制数码管显示数字
- Struts1运用Java注解实现简单的权限控制
- 委托与事件参数的简单运用
- JMeter之检查点简单运用