苹果苹果4不知道密码Id密码了设置的问题也只记得两个了,id邮箱密码也不记得了,现在是无法更新了

【图文】51单片机_数码管显示_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
51单片机_数码管显示
上传于||文档简介
&&对​单​片​机​数​码​管​一​些​简​介
大小:2.05MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢单片机STC89C52做的数码管时钟 不要led显示 - 单片机论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
单片机STC89C52做的数码管时钟 不要led显示
12:44:45  
小女子学工科~急需的设计程序,用keil软件~最好这两天有~麻烦了
14:01:24  
用定时器做时钟源吗??几位数码管。。显示哪些时间元素。。
14:02:46  
有现成的程序,需要就联系
14:11:45  
QQ306 226 714有想去...
20:35:05  
有现成的程序,需要就联系
你好&&请问程序能给我一份吗& & & &感谢
21:22:14  
你是想要高精度时钟啊&&还是用51的内部定时器做时钟啊
21:24:55  
#include&reg52.h&
#define uint unsigned int
#define uchar unsigned char
uchar num,k,n,m,i,j,num1,shi,fen,
uchar code table[]={
0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,
0x39,0x58,0x5E,0x79,};
void delay(uint z)
& & & & uint i,j;
& & & && &for(i=z;i&0;i--)
& & & && && &for(j=114;j&0;j--);
void main()
& &TMOD=0X01;
& &TH0=()/256;
& &TL0=()%256;
& &while(1)
& &{& & & &
& && &&&P1=0
& && & & & & & & & P0=table[shi/10];
& & & & & & delay(3);
& & & & & & & & P1=0
& && & & & & & & & P0=table[shi%10];
& & & & & & delay(3);
& & & & & & & & P1=0
& && & & & & & & & P0=0x40;
& & & & & & delay(3);
& & & & & & & & P1=0xf7;
& && & & & & & & & P0=table[fen/10];
& & & & & & delay(3);
& & & & & & & & P1=0
& && & & & & & & & P0=table[fen%10];
& & & & & & delay(3);
& & & & & & & & P1=0
& && & & & & & & & P0=0x40;
& & & & & & delay(3);
& & & & & & & & P1=0
& && & & & & & & & P0=table[miao/10];
& & & & & & delay(3);
& & & & & & & & P1=0x7f;
& && & & & & & & & P0=table[miao%10];
& & & & & & delay(3);
void t0zhongduan() interrupt 1
& & & & TH0=()/256;
& & TL0=()%256;
& & & &&&i++;
& & & &&&if(i==20)
& & & &&&{
& & & &&&& & & & i=0;
& & & &&&& & & & miao++;
& & & & & & & && &if(miao==60)
& & & & & & & && &{
& & & & & & & && && & & & & & & & miao=0;
& & & & & & & & & & & & & & & & fen++;
& & & & & & & & & & & & & & & & if(fen==60)
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & fen=0;
& & & & & & & & & & & & & & & & & & & & shi++;
& & & & & & & & & & & & & & & & & & & & if(shi==24)
& & & & & & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & & & & & shi=0;
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & }
& & & & & & & && &}
& & & &&&}
21:26:15  
用51定时器的时钟程序
助理工程师
20:42:30  
挺不错,,
18:16:44  
#define uint unsigned int
#define uchar unsigned char
顺便发个仿真电路图,跪求啊
21:32:41  
顺便发个仿真电路图,跪求啊
你想要什么定时仿真的给我留言&&是51自身定时器的仿真还是&&基于始终芯片的仿真啊
等待验证会员
19:30:04  
用51定时器的时钟程序
C51语言程序&&跟仿真图 拜托
15:20:49  
感谢楼主共享信息。我这学习了。
Powered by基于STC89C52的温度测量系统设计(数码管显示)_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于STC89C52的温度测量系统设计(数码管显示)
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩15页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢数码管: 基于STC89C52的数码管设计详解
10:25:48来源: eefocus
一.&& 详解
选通一个分两步,
第一步是位选,即选择哪个数码管亮, 这里位选是通过锁存器U2的WE1~WE6来选择第一个数码管到第六个数码管,由于数码管为共阴极(相对于8位数码管),那么这里WE端为0代表位选选通,
第二步是段选,即选择数码管的哪位亮, 这里段选是通过锁存器U1的a~h来选择数码管的8位管子,这里DUAN端为1代表段选选通.
二. 程序设计详解
1. 让第一个数码管显示8
sbit duan = P2 ^ 6;
sbit wela = P2 ^ 7;
void main()
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& duan = 1;
&&&&&& P0 = 0x7f;
&&&&&& duan = 0;
&&&&&& while (1);
2. 让6个数码管显示反复显示0~F
#define uchar unsigned char
#define uint unsigned int
sbit duan = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar code table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
void delayms(uint xms);
void main()
&&&&&& wela = 1;
&&&&&& P0 = 0xc0;
&&&&&& wela = 0;
&&&&&& while (1)
&&&&&&&&&&&&& for (num = 0; num < 16; num++)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& duan = 1;
&&&&&&&&&&&&&&&&&&&& P0 = table[num];
&&&&&&&&&&&&&&&&&&&& duan = 0;
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&& delayms(500);
&&&&&&&&&&&&& }
void delayms(uint xms)
&&&&&& uint i,
&&&&&& for (i = i > 0; i--)
&&&&&&&&&&&&& for (j = 110; j > 0; j--)
&&&&&&&&&&&&&&&&&&&& ;
第一个数码管显示1,时间为0.5s,然后关闭它,
第二个数码管显示2,时间为0.5s,然后关闭它,
第六个数码管显示6,时间为0.5s,然后关闭它,
#define uchar unsigned char
#define uint unsigned int
sbit duan = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar code we_table[] = {
&&&&&& 0xfe,0xfd,0xfb,0xf7,0xef,0xdf
uchar code du_table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
void delayms(uint xms);
void main()
&&&&&& while (1)
&&&&&&&&&&&&& for (num = 0; num < 6; num++)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& wela = 1;
&&&&&&&&&&&&&&&&&&&& P0 = we_table[num];
&&&&&&&&&&&&&&&&&&&& wela = 0;
&&&&&&&&&&&&&&&&&&&& P0 = 0
&&&&&&&&&&&&&&&&&&&& duan = 1;
&&&&&&&&&&&&&&&&&&&& P0 = du_table[num+1];
&&&&&&&&&&&&&&&&&&&& duan = 0;
&&&&&&&&&&&&&&&&&&&& delayms(1);
&&&&&&&&&&&&& }
void delayms(uint xms)
&&&&&& uint i,
&&&&&& for (i = i > 0; i--)
&&&&&&&&&&&&& for (j = 110; j > 0; j--)
&&&&&&&&&&&&&&&&&&&& ;
只要将延时时间调整为1s,我们可以看到数码管一起显示123456.
P0 = 0 是用来消影, 即消除段选与位选之间的影响.
定时器0的方式1实现第一个发光二极管以200ms间隔闪烁,
定时器1的方式1实现数码管前两位59s循环计时
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
sbit 1 = P1 ^ 0;
uchar code table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
void delayms(uint);
void display(uint);
uchar num, num1, num2;
void main()
&&&&&& TMOD = 0x11;
&&&&&& TH0 = (65536 - 45872) / 256;
&&&&&& TL0 = (65536 - 45872) % 256;
&&&&&& TH1 = (65536 - 45872) / 256;
&&&&&& TL1 = (65536 - 45872) % 256;
&&&&&& EA = 1;
&&&&&& ET0 = 1;
&&&&&& ET1 = 1;
&&&&&& TR0 = 1;
&&&&&& TR1 = 1;
&&&&&& while (1)
&&&&&&&&&&&&& display(num);
void display(uint num)
&&&&&& dula = 1;
&&&&&& P0 = table[num / 10];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(5);
&&&&&& dula = 1;
&&&&&& P0 = table[num % 10];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(5);
void delayms(uint xms)
&&&&&& uint i,
&&&&&& for (i = i > 0; i--)
&&&&&&&&&&&&& for (j = 110; j > 0; j--)
&&&&&&&&&&&&&&&&&&&& ;
void T0_time()
&&&&&& TH0 = (65536 - 45872) / 256;
&&&&&& TL0 = (65536 - 45872) % 256;
&&&&&& num1++;
&&&&&& if (num1 == 4)
&&&&&&&&&&&&& num1 = 0;
&&&&&&&&&&&&& led1 = ~led1;
void T1_time() interrupt 3
&&&&&& TH1 = (65536 - 45872) / 256;
&&&&&& TL1 = (65536 - 45872) % 256;
&&&&&& num2++;
&&&&&& if (num2 == 20)
&&&&&&&&&&&&& num2 = 0;
&&&&&&&&&&&&& num++;
&&&&&&&&&&&&& if (num == 60)
&&&&&&&&&&&&&&&&&&&& num = 0;
5. 用定时器以间隔500MS在6位数码管上依次显示0、1、2、3&.C、D、E、F,重复
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar num,
uchar code table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
void main()
&&&&&& num = 0;
&&&&&& tt = 0;
&&&&&& TMOD = 0x01;
&&&&&& TH0 = (65536 - 45872) / 256;
&&&&&& TL0 = (65536 - 45872) % 256;
&&&&&& EA = 1;
&&&&&& ET0 = 1;
&&&&&& TR0 = 1;
&&&&&& dula = 1;
&&&&&& P0 = 0x3f;
&&&&&& dula = 0;
&&&&&& wela = 1;
&&&&&& P0 = 0xc0;
&&&&&& wela = 0;
&&&&&& while (1)
&&&&&&&&&&&&& if (tt == 10)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& tt = 0;
&&&&&&&&&&&&&&&&&&&& num++;
&&&&&&&&&&&&&&&&&&&& if (num == 16)
&&&&&&&&&&&&&&&&&&&&&&&&&&& num = 0;
&&&&&&&&&&&&&&&&&&&& dula = 1;
&&&&&&&&&&&&&&&&&&&& P0 = table[num];
&&&&&&&&&&&&&&&&&&&& dula = 0;
&&&&&&&&&&&&& }
void T0_timer() interrupt 1
&&&&&& TH0 = (65536 - 45872) / 256;
&&&&&& TL0 = (65536 - 45872) % 256;
&&&&&& tt++;
6. 利用动态扫描方法在六位数码管上显示出稳定的654321
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar code du_table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
uchar code we_table[] = {
&&&&&& 0xfe,0xfd,0xfb,0xf7,0xef,0xdf
void delayms(uint);
void main()
&&&&&& for (num = 6; num > 0; num--)
&&&&&&&&&&&&& dula = 1;
&&&&&&&&&&&&& P0 = du_table[num];
&&&&&&&&&&&&& dula = 0;
&&&&&&&&&&&&& P0 = 0
&&&&&&&&&&&&& wela = 1;
&&&&&&&&&&&&& P0 = we_table[6 - num];
&&&&&&&&&&&&& wela = 0;
&&&&&&&&&&&&& delayms(1);
void delayms(uint xms)
&&&&&& uint i,
&&&&&& for (i = i > 0; i--)
&&&&&&&&&&&&& for (j = 110; j > 0; j--)
&&&&&&&&&&&&&&&&&&&& ;
7. 用动态扫描方法和定时器1在数码管的前三位显示出秒表,精确到1%秒,即后两位显示1%秒,一直循环下去
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar code du_table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71
void display(uint);
void delayms(uint);
void main()
&&&&&& TMOD = 0x10;
&&&&&& TH1 = (65536 - 10000) / 256;
&&&&&& TL1 = (65536 - 10000) % 256;
&&&&&& EA = 1;
&&&&&& ET1 = 1;
&&&&&& TR1 = 1;
&&&&&& while (1)
&&&&&&&&&&&&& display(tt);
void T1_timer() interrupt 3
&&&&&& TH1 = (65536 - 10000) / 256;
&&&&&& TL1 = (65536 - 10000) % 256;
&&&&&& tt++;
&&&&&& if (tt == 1000)
&&&&&&&&&&&&& tt = 0;
void display(uint num)
&&&&&& dula = 1;
&&&&&& P0 = du_table[num / 100];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = du_table[num % 100 / 10];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = du_table[num % 100 % 10];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
void delayms(uint xms)
&&&&&& uint i,
&&&&&& for (i = i > 0; i--)
&&&&&&&&&&&&& for (j = 110; j > 0; j--)
&&&&&&&&&&&&&&&&&&&& ;
8. 利用动态扫描和定时器1在数码管上显示出从765432开始以1/10秒的速度往下递减直至765398并保持显示此数,与此同时利用定时器0以500MS速度进行从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出&HELLO&。到此保持住
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
uchar code table[] = {
&&&&&& 0x3f,0x06,0x5b,0x4f,
&&&&&& 0x66,0x6d,0x7d,0x07,
&&&&&& 0x7f,0x6f,0x77,0x7c,
&&&&&& 0x39,0x5e,0x79,0x71,
&&&&&& 0x76,0x79,0x38,0x3f,0
uchar temp, t0, t1, bai, shi, ge, flag, flag1;
void init();
void display(uchar, uchar, uchar, uchar, uchar, uchar);
void delayms(uint);
void main()
&&&&&& init();
&&&&&& while (1)
&&&&&&&&&&&&& if (flag1 != 1)
&&&&&&&&&&&&&&&&&&&& display(7,6,5,bai,shi,ge);
&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&&& display(16,17,18,18,19,20);
void init()
&&&&&& shu = 432;
&&&&&& temp = 0
&&&&&& P1 =
&&&&&& TMOD = 0x11;
&&&&&& TH0 = (65536 - 50000) / 256;
&&&&&& TL0 = (65536 - 50000) % 256;
&&&&&& TH1 = (65536 - 50000) / 256;
&&&&&& TL1 = (65536 - 50000) % 256;
&&&&&& EA = 1;
&&&&&& ET0 = 1;
&&&&&& ET1 = 1;
&&&&&& TR0 = 1;
&&&&&& TR1 = 1;
void T0_timer() interrupt 1
&&&&&& TH0 = (65536 - 50000) / 256;
&&&&&& TL0 = (65536 - 50000) % 256;
&&&&&& t0++;
&&&&&& if (flag != 1)
&&&&&&&&&&&&& if (t0 == 10)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& t0 = 1;
&&&&&&&&&&&&&&&&&&&& temp = _crol_(temp,1);
&&&&&&&&&&&&&&&&&&&& P1 =
&&&&&&&&&&&&& }
&&&&&& else
&&&&&&&&&&&&& if (t0 % 4 == 0)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& P1 = ~P1;
&&&&&&&&&&&&& }
&&&&&&&&&&&&& if (t0 == 60)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& TR0 = 0;
&&&&&&&&&&&&&&&&&&&& P1 = 0
&&&&&&&&&&&&&&&&&&&& flag1 = 1;
&&&&&&&&&&&&& }
void T1_timer() interrupt 3
&&&&&& TH1 = (65536 - 50000) / 256;
&&&&&& TL1 = (65536 - 50000) % 256;
&&&&&& t1++;
&&&&&& if (t1 == 2)
&&&&&&&&&&&&& t1 = 0;
&&&&&&&&&&&&& shu--;
&&&&&&&&&&&&& bai = shu / 100;
&&&&&&&&&&&&& shi = shu % 100 / 10;
&&&&&&&&&&&&& ge = shu % 10;
&&&&&&&&&&&&& if (shu == 398)
&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&& TR0 = 0;
&&&&&&&&&&&&&&&&&&&& TH0 = (65536 - 50000) / 256;
&&&&&&&&&&&&&&&&&&&& TL0 = (65536 - 50000) % 256;
&&&&&&&&&&&&&&&&&&&& TR0 = 1;
&&&&&&&&&&&&&&&&&&&& flag = 1;
&&&&&&&&&&&&&&&&&&&& t0 = 0;
&&&&&&&&&&&&&&&&&&&& P1 = 0
&&&&&&&&&&&&&&&&&&&& TR1 = 0;
&&&&&&&&&&&&& }
void display(uchar aa, uchar bb, uchar cc, uchar bai, uchar shi, uchar ge)
&&&&&& dula = 1;
&&&&&& P0 = table[aa];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = table[bb];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = table[cc];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = table[bai];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0xf7;
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = table[shi];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
&&&&&& dula = 1;
&&&&&& P0 = table[ge];
&&&&&& dula = 0;
&&&&&& P0 = 0
&&&&&& wela = 1;
&&&&&& P0 = 0
&&&&&& wela = 0;
&&&&&& delayms(1);
关键字:&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
微信扫一扫加关注 论坛活动 E手掌握
微信扫一扫加关注
芯片资讯 锐利解读
大学堂最新课程
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

我要回帖

更多关于 苹果手机不知道密码 的文章

 

随机推荐