呕心沥血,本人写的单片机例程-----多模式随机显示流水灯_流水灯高级篇
来源:互联网 发布:复合材料刚度矩阵 编辑:程序博客网 时间:2024/05/29 03:01
直接上代码,给实验室大一的培训。随手写了一些例程给他们参考。这个是利用的c标准库的随机函数,通过定时器来转换。实现一系列的流水灯模式。比较炫,嘿嘿。
/*
多模式随机显示流水灯_流水灯高级篇原创 by xiaoguo
*/
#include<reg51.h>
#include<stdlib.h> //c头文件
#define _C_R(byte) ((byte<<1)|(byte>>7))
#define _C_L(byte) ((byte>>1)|(byte<<7))
#define DELAY 200
typedef unsigned char uchar;
int numVal=0;
//01010101 10101010 11001100 10011001 11111110 11111100 1100001101001011 11110011 10001101
uchar ledMod[10]={0x55,0xaa,0xcc,0x99,0xfe,0xbc,0xc3,0x4b,0x73,0x8d};
void init_Timer0();
void delay(){
int i,j;
i=100;
while(i--){
j=80;
while(j--);
}
}
void main(){
//uchar point=0;
srand(1000); //给一个随机种子
init_Timer0();
P0=ledMod[rand()%10];
while(1){
if(numVal>=DELAY){
P0=ledMod[rand()%10];
//P0=ledMod[point%10];
numVal=0;
//point++;
}else{
P0=_C_R(P0);
delay();
}
}
}
void init_Timer0() //定时器初始化
{
TMOD=0x01; //设置定时器0为工作方式1
TH0=(65536-5000)/256; //设定高8位计数
TL0=(65536-5000)%256; //设定低八位计数 总共是50ms时间
EA=1;
ET0=1; // 开定时器0中断
TR0=1; //启动定时器0
}
void timer0(void) interrupt 1 //定时器0的中断服务程序
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
numVal++;
}
0 0
- 呕心沥血,本人写的单片机例程-----多模式随机显示流水灯_流水灯高级篇
- 51例程---流水灯
- 单片机--->流水灯
- 单片机-->流水灯2
- 单片机 流水灯
- 单片机,流水灯
- 单片机流水灯程序
- 单片机流水灯
- 51单片机流水灯
- 单片机之流水灯
- 单片机之流水灯
- Verilog_例程笔记_流水灯&按键消抖
- 单片机3级流水灯的源代码
- 单片机流水灯的C原理
- 单片机学习之流水灯的实现
- 开关控制的单片机流水灯 汇编
- 51单片机的流水灯--逻辑实现
- 51单片机学习笔记(二)_流水灯实验
- 数值的整数次方
- WIN7无法打开CHM解决办法
- 思维导图:大脑使用说明书----读后
- Linux系统编程---线程同步---互斥量
- HighCharts之2D柱状图、折线图的组合多轴图
- 呕心沥血,本人写的单片机例程-----多模式随机显示流水灯_流水灯高级篇
- 网络判断utils
- 第一天
- Linux系统编程---线程同步---条件变量
- 覆盖的面积(线段树-扫描线)
- 黑马程序员 Java基础<五>异常
- 一般树形结构_求通路长度
- 调试代码
- C++收获