求16个流水灯程序,有模式还可以调节康巴丝挂钟 快慢调节的,模式显示在一个数码管上,急求!

006-数码管动态显示_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
006-数码管动态显示
上传于||暂无简介
大小:91.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢查看: 1115|回复: 0
共享几个关于流水灯和数码管的程序-带详细注释
#include &reg52.h&& && &//52系列单片机头文件& & 01
#define uint unsigned int& &//宏定义
sbit led1=P1^0;& && && &//声明单片机P1口的第一位
void delayms(uint);& & //声明子函数
void main()& && && & //主函数
while(1)& && & //大循环
&&led1=0;& &&&/*点亮第一个发光二极管*/
&&delayms(200);& & //延时200毫秒
&&led1=1;& &&&/*关闭第一个发光二极管*/
&&delayms(800);& & //延时800毫秒
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
#include &reg52.h&& && &//52系列单片机头文件& & 02
#include &intrins.h&
#define uint unsigned int& &//宏定义
#define uchar unsigned char
void delayms(uint);& & //声明子函数
void main()& && && & //主函数
aa=0& &&&//赋初值
while(1)& && & //大循环
&&delayms(500);& && && && & //延时500毫秒
&&aa=_crol_(aa,1);& && &&&//将aa循环左移1位后再赋给aa
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
#include &reg52.h&& && &//52系列单片机头文件
#define uint unsigned int& &//宏定义
sbit led1=P1^0;& && && &//声明单片机P1口的第一位
void delayms(uint);& & //声明子函数
void main()& && && & //主函数
while(1)& && & //大循环
&&led1=0;& &&&/*点亮第一个发光二极管*/
&&delayms(200);& & //延时200毫秒
&&led1=1;& &&&/*关闭第一个发光二极管*/
&&delayms(800);& & //延时800毫秒
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
#include &reg52.h&& && &//52系列单片机头文件
#include &intrins.h&
#define uint unsigned int& &//宏定义
#define uchar unsigned char
void delayms(uint);& & //声明子函数
void main()& && && & //主函数
aa=0& &&&//赋初值
while(1)& && & //大循环
&&delayms(500);& && && && & //延时500毫秒
&&aa=_crol_(aa,1);& && &&&//将aa循环左移1位后再赋给aa
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
#include &reg52.h&& && &//52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit dula=P2^6;&&//申明U1锁存器的锁存端
sbit wela=P2^7;&&//申明U2锁存器的锁存端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint);
uchar numt0,
void display(uchar numdis)&&//显示子函数
uchar shi,& && && &//分离两个分别要显示的数
shi=numdis/10;
ge=numdis%10;
& & dula=1;
P0=table[shi];& & //送十位段选数据
P0=0&&//送位选数据前关闭所有显示,防止打开位选锁存时
wela=1;& &//原来段选数据通过位选锁存器造成混乱
P0=0&&//送位选数据
delayms(5); //延时
P0=table[ge];&&//送个位段选数据
delayms(5);
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
void init()& & //初始化函数
TMOD=0x01;//设置定时器0为工作方式1()
TH0=()/256;//装初值50ms一次中断
TL0=()%256;
EA=1;&&//开总中断
ET0=1; //开定时器0中断
void keyscan()
if(key1==0)
&&delayms(10);
&&if(key1==0)
& &if(num==60)//当到60时重新归0
& & num=0;
& &while(!key1);//等待按键释放
if(key2==0)
&&delayms(10);
&&if(key2==0)
& &if(num==0)//当到0时重新归60
& & num=60;
& &while(!key2);
if(key3==0)
&&delayms(10);
&&if(key3==0)
& &num=0;&&//清0
& &while(!key3);
if(key4==0)
&&delayms(10);
&&if(key4==0)
& &while(!key4);
& &TR0=~TR0;//启动或停止定时器0
void main()
init();//初始化函数
&&keyscan();
&&display(num);
void T0_time() interrupt 1
TH0=()/256;//重装初值
TL0=()%256;
if(numt0==20)&&//如果到了20次,说明1秒时间到
&&numt0=0;&&//然后把num清0重新再计20次
&&if(num==60)
#include &reg52.h&& && &//52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;&&//申明U1锁存器的锁存端
sbit wela=P2^7;&&//申明U2锁存器的锁存端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint xms)& &
for(i=i&0;i--)& && &&&//i=xms即延时约xms毫秒
&&for(j=110;j&0;j--);
void display(uchar num)
P0=table[num]; //显示函数只送段选数据
void matrixkeyscan()
uchar temp,
& & temp=P3;
& & temp=temp&0xf0;
& & if(temp!=0xf0)
& && &delayms(10);
& &temp=P3;
& &temp=temp&0xf0;
& && &if(temp!=0xf0)
& && &&&temp=P3;
& && &&&switch(temp)
& && && & case 0xee:
& && && && && &key=0;
& && && && && &
& && && & case 0xde:
& && && && && &key=1;
& && && && && &
& && && & case 0xbe:
& && && && && &key=2;
& && && && && &
& && && & case 0x7e:
& && && && && &key=3;
& && && && && &
& && && &}
& && && &while(temp!=0xf0)
& && && &{
& && && &&&temp=P3;
& && && &&&temp=temp&0xf0;
& && && &}
& && &&&display(key);
& & temp=P3;
& & temp=temp&0xf0;
& & if(temp!=0xf0)
& && &delayms(10);
& && &temp=P3;
& && &temp=temp&0xf0;
& && &if(temp!=0xf0)
& && &&&temp=P3;
& && &&&switch(temp)
& && && & case 0xed:
& && && && && &key=4;
& && && && && &
& && && & case 0xdd:
& && && && && &key=5;
& && && && && &
& && && & case 0xbd:
& && && && && &key=6;
& && && && && &
& && && & case 0x7d:
& && && && && &key=7;
& && && && && &
& && && &}
& && && &while(temp!=0xf0)
& && && &{
& && && &&&temp=P3;
& && && &&&temp=temp&0xf0;
& && && &}
& && && &display(key);
& & temp=P3;
& & temp=temp&0xf0;
& & if(temp!=0xf0)
& && &delayms(10);
& && &temp=P3;
& && &temp=temp&0xf0;
& && &if(temp!=0xf0)
& && &&&temp=P3;
& && &&&switch(temp)
& && && & case 0xeb:
& && && && && &key=8;
& && && && && &
& && && & case 0xdb:
& && && && && &key=9;
& && && && && &
& && && & case 0xbb:
& && && && && &key=10;
& && && && && &
& && && & case 0x7b:
& && && && && &key=11;
& && && && && &
& && && &}
& && && &while(temp!=0xf0)
& && && &{
& && && &&&temp=P3;
& && && &&&temp=temp&0xf0;
& && && &}
& && &&&display(key);
& & P3=0xf7;
& & temp=P3;
& & temp=temp&0xf0;
& & if(temp!=0xf0)
& && &delayms(10);
& && &temp=P3;
& && &temp=temp&0xf0;
& && &if(temp!=0xf0)
& && &&&temp=P3;
& && &&&switch(temp)
& && && & case 0xe7:
& && && && && &key=12;
& && && && && &
& && && & case 0xd7:
& && && && && &key=13;
& && && && && &
& && && & case 0xb7:
& && && && && &key=14;
& && && && && &
& && && & case 0x77:
& && && && && &key=15;
& && && && && &
& && && &}
& && && &while(temp!=0xf0)
& && && &{
& && && &&&temp=P3;
& && && &&&temp=temp&0xf0;
& && && &}
& && &&&display(key);
void main()
P0=0;&&//关闭所有数码管段选
P0=0xc0;//位选中所有数码管
&&while(1)
matrixkeyscan();//不停调用键盘扫描程序
Powered by【急求c语言程序一个,关于51单片机的LED数码管动态显示。要多少分给多少分~】-突袭网
2:05:01【 转载互联网】 作者: &&|&责编:李强
&&& &为了解决用户可能碰到关于"急求c语言程序一个,关于51单片机的LED数码管动态显示。要多少分给多少分~"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"急求c语言程序一个,关于51单片机的LED数码管动态显示。要多少分给多少分~"相关的详细问题如下:RT,我想知道:急求c语言程序一个,关于51单片机的LED数码管动态显示。要多少分给多少分~===========突袭网收集的解决方案如下===========
解决方案1:数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数;当数码管上数减至停止时、数码管上显示出“HELLO”,至此保持住,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭;同时利用另一定时器(如定时器0)以500ms速度进行流水灯滚动显示解决方案2:由于是新手,所以分数有限,请大家体谅啊~
================可能对您有帮助================
问:要求 串行通信 1、编写点对点的串行通信 2、利用KEIL C进行仿真和调试 ...答:实验内容:单片机甲、乙进行双机串行通信,甲机通过串口控制乙机LED闪烁(如下图所示,要求利用芯片MAX232),双方的晶...===========================================问:在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持...答:可以联系我啊,呵呵===========================================问:在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持...答:c++行不===========================================问:程序以TXT文件上传到百度云了,希望高手注释各个句子意思 http://pan.ba...答:就是将温湿度值读取后显示到液晶屏上!! 还是那句不明白问哪句吧?===========================================问:我们在做一个单片机的实验,是模拟红绿灯,我们51单片机板上一共有8个LE...答:主函数部分: void main(void) { InitTimer1() ; Time=30; P1=0xFF; Flag=0; while(1) { if(Time==0) { if(Flag) Time=20; else Time=30; Flag=~F } if(Time&3 && (!Flag)) { EastR=OFF; EastG=ON; WestR=OFF; WestG=ON; SouthR=ON; SouthG=...===========================================问:好吧,从头到尾麻烦都详细讲一下吧。。。。 就像//这样的注释。。。。。...答:#include //头文件,c语言一样 #define uchar unsigned char //定义unsigned char为uchar #define uint unsigned int unsigned char flag,a,i; //定义unsigned char变量,其实这里用uchar也行 uchar code table[]="I receive, thanks "; //定义一...===========================================问:急求51单片机与串口通信源程序,将数据送入LabVIEW进行处理答:#include #define uchar unsigned char #define uint unsigned int sbit ring=P3^7; sbit CASE1=P2^0; sbit CASE2=P2^1; sbit CASE3=P2^2; sbit CASE4=P2^3; uchar se=0,re=0; uchar temp=0; void wait(uint cnt) { while(--cnt); } //串口发送...===========================================问:急求51单片机与串口通信源程序,将数据送入LabVIEW进行处理答:求一个51单片机简单的中断C语言程序51单片机C语言程序51单片机C语言程序求助!51单片机,帮忙写个c语言程序一道51单片机的C语言程序,关于串口通讯的,很简单.....51单片机:程序 51单片机:c语言 51单片机:语言 51单片机:中断 51单片机:手册51单...===========================================问:接单片机p1.0到1.3,用中断,不用延时答:定时 0.1 秒。 亮 0.1 秒、灭 0.1 秒。 十次后,更换一位。 只用两个 LED 吗?===========================================
12345678910求大神看下这个程序,出来的效果流水灯正常数码管显示不正常_百度知道
求大神看下这个程序,出来的效果流水灯正常数码管显示不正常
程序贴不上去,回答我才可以发
提问者采纳
现在显示的是什么
流水灯正常,数码管就亮上面一横
延时太短了
你把延时加长看看效果
加哪个延迟
流水灯还是数码管
哪些delay2太短了
改成你觉得你眼睛可以分辨出来的时间
改为200不行数码管一直乱跳
让他速度慢下来,看看在显示什么东西
在显示什么
乱跳,流水灯也不正常了
流水灯不对是对的
或者你有没有类似的程序我参考下
你的数码管和你的码值,你确定对吗,板子是共阴还是共阳
我百度云分享给你
所有的程序,,,视频,,,和我写的代码
数码管什么的,都在程序里,你自己找找看
你这是用三极管驱动还是锁存器
还有自己画的各种51硬件的模块
都是几年前学的了
用的是开发板
去看看范例代码
你去看看码值对不对,一般用锁存器你的代码没什么大问题,开始学习都是这样写的
好多看哪个
我建议你单独
送一个码值
看看数码管能不能静态显示一个数字
静态可以实现
你知道573锁存器的原理吧
你写的在哪
我的开发板用的是573
我以前的是自己做的板子
电路用的三极管驱动
在51单片机学习
里的51单片机编程
里的51单片机编程
上面的PCB是程序对应的硬件的电路
下载的东西好多,有没有我要的功能的程序啊,发个来急用啊
这个应该就是针对锁存器当时练习编写的程序
行了,要采纳哦
这个好像不对
就只有这个
你后面的P0
为什么要复制7F
显示数字八的后面P0为啥赋值7F,你的意思是消除重影吗
8不就是ox7f吗
不然是什么
不要第二次的赋值,直接用数组里的值
算了,怎么改都错,应该是我的程序就错太多了,辛苦你了,心累啊
当时都是这么过来的
我学linux也很痛苦
提问者评价
太给力了,你的回答完美的解决了我的问题!
来自团队:
其他类似问题
为您推荐:
流水灯的相关知识
其他2条回答
这类也不难。
奴隶,奴婢,奴才
你脑子有问题吗
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 机械表调节快慢 的文章

 

随机推荐