求89C51stc85c52单片机程序序

跪求单片机AT89C51程序_百度知道
跪求单片机AT89C51程序
跪求单片机AT89C51程序3、99秒秒表设计P0口低7位做数码管段选端,P2口低2位做数码管位选端,SP1接P1.7。(1)开始时,显示“00”,第1次按下SP1后就开始计时。(2)第2次按SP1后,计时暂停。(3)第3次按SP1后,计时归零
我有更好的答案
#include&reg52.h& sbit key =P1^7;sbit LED1=P2^0;sbit LED2=P2^1;
unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned int counet,second,msecond, void delay(unsigned int
for(;m&0;m--)
for(s=124;s&0;s--);
void display() {
P0=Tab[msecond%10];
P0=Tab[second%10];
LED2=0; } main() {
unsigned char i,j; P0=0
TMOD=0x01; // TH0=0x3c; // TL0=0xb0;
ET0=1;// TR0=1;
display();
if(key==0) {
for(i=20;i&0;i--)
for(j=248;j&0;j--);
if(key==0)
switch(keycnt)
msecond=0;
} while(P3_5==0); } } } }
void time0() interrupt 1
TH0=0x3c; TL0=0xb0; counet++; if(counet==20) {
msecond++; counet=0;if(msecond==100) {
msecond=0; } }}
采纳率:80%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求一个基于AT89C51单片机的0~59秒计时器C语言程序 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
求一个基于AT89C51单片机的0~59秒计时器C语言程序
19:49:30  
<td class="t_f" id="postmessage_位数码管的& &&&STC89C52RC& && & 我弄得不管怎么整就是不好使。。。
#include&reg51.h&
#include&math.h&
#define uchar unsigned char
#define uint unsigned int&&
uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar sec1,sec2,sec3,sec4,sec,arcsec,
void delay();//延时函数
void main()
&&TMOD=0x01;
&&TH0=()/256;
&&TL0=()%256;
&&while(1)
& & arcsec=abs(99-sec);
//& & & & sec1=sec/10;
//& & & & sec2=sec%10;
//& & & & sec3=arcsec/10;
//& & & & sec4=arcsec%10;
& & P2=0x01;
& & P0=dispcode[sec/10];
& & delay();
& & P2=0x02;
& & P0=dispcode[sec%10];
& & delay();
& & P2=0x10;
& & P0=dispcode[arcsec/10];
& & delay();
& & P2=0x20;
& & P0=dispcode[arcsec%10];
& & delay();
void int0() interrupt 1
& &TH0=()/256;
& &TL0=()%256;
& &if(num==20)
& &&&num=0;
& & & &&&sec++;
& & & &&&if(sec&99)sec=0;
void delay()
&&for(i=0;i&125;i++);
19:49:31  
#include&reg51.h&
#include&math.h&
#define uchar unsigned char
#define uint unsigned int&&
uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar sec1,sec2,sec3,sec4,sec,arcsec,
void delay();//延时函数
void main()
&&TMOD=0x01;
&&TH0=()/256;
&&TL0=()%256;
&&while(1)
& & arcsec=abs(99-sec);
//& & & & sec1=sec/10;
//& & & & sec2=sec%10;
//& & & & sec3=arcsec/10;
//& & & & sec4=arcsec%10;
& & P2=0x01;
& & P0=dispcode[sec/10];
& & delay();
& & P2=0x02;
& & P0=dispcode[sec%10];
& & delay();
& & P2=0x10;
& & P0=dispcode[arcsec/10];
& & delay();
& & P2=0x20;
& & P0=dispcode[arcsec%10];
& & delay();
void int0() interrupt 1
& &TH0=()/256;
& &TL0=()%256;
& &if(num==20)
& &&&num=0;
& & & &&&sec++;
& & & &&&if(sec&99)sec=0;
void delay()
&&for(i=0;i&125;i++);
19:59:26  
求解决啊啊啊啊啊啊
20:35:29  
#define uchar unsigned char
不好使,只有7个LED灯亮了并且蜂鸣器一直响, 之前我也是
21:01:49  
不好使,只有7个LED灯亮了并且蜂鸣器一直响, 之前我也是
不至于吧 我这是共阳 注意i-o口就好了
21:13:25  
#include&reg52.h&
#define&&uchar unsigned char
#define&&uint&&unsigned int
uchar&&num, num1,num2,shi,ge,
sbit&&wela=P2^7;
sbit&&dula=P2^6;
uchar&&code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,
void delay(uint z)
{& & & & uint i,j;
& & & & for(i=z;i&0;i--)
& & & & & & & & for(j=110;j&0;j--);
void display(uchar shi,uchar ge)
P0=table[shi];
P0=table[ge];
void display(uchar shi,uchar ge);
void delay(uint z);
void main()
{& &TMOD=0x11;
& & TH0=()/256;
& & & & TL0=()%256;
& & & & TH1=()/256;
& & & & TL1=()%256;
& & & & EA=1;
& & & & ET0=1;
& & & & ET1=1;
& & & & TR1=1;
& & TR0=1;
& & & & while(1)
& & & & display(shi,ge);
void T0_time()&&interrupt 1
& & TH0=()/256;
& & & & TL0=()%256;
& & & & num1++;
& & if(num1==20)
& & & && &&&{num1=0;
& & & && && &num++;
& & & &&&if (num==60)
& & & & & & & &&&num=0;
& & & & & & & && &shi=num/10;
& & & & & & & && &ge=num%10; }
& & & & & & & &
void T1_time()&&interrupt 3
{ TH1=()/256;
& & & & TL1=()%256;
& & & & num2++;
& & & & if(num2==20)
& & & &&&count++;
& & & &&&num2=0;
& & & &&&if(count&8) a=a&&1;
& & & &&&else a=a&&1;
& & & &&&if(count==15)
& & & &&&{
& & & && &count=0;
& & & && &a=0
& & & && &}
& & & &&&P1=a;
注意十位,个位的显示。
21:24:43  
#define&&uchar unsigned char
#define&&uint&&unsigned int
这个也不好使。。算了我放弃这个程序了= =
16:33:17  
路过的小白过来看看……被吓到
资深工程师
09:59:08  
不错的文件,感谢楼主分享,顶顶顶。顶一下
资深工程师
09:59:26  
不错的文件,感谢楼主分享,顶顶顶。顶一下
23:26:29  
21:04:25  
求基于单片机一个0.001~99.999ms计时的程序
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司&#xe621; 上传我的文档
&#xe621; 上传文档
&#xe602; 下载
&#xe60c; 收藏
粉丝量:17
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
89C51单片机编程的40个实验范例
下载积分:100
内容提示:89C51单片机编程的40个实验范例
文档格式:DOC|
浏览次数:1064|
上传日期: 22:45:02|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 100 积分
&#xe602;下载此文档
该用户还上传了这些文档
89C51单片机编程的40个实验范例
关注微信公众号单片机AT89C51
此时有人在和您一起浏览筑龙优搜库
课时数:19
单片机AT89C51相关专题推荐求写一段简单的51单片机C语言代码_百度知道
求写一段简单的51单片机C语言代码
P00口每得到一次高电平,LED灯移位一次,计数加1,P00口的高电平来自外接激光传感器
我有更好的答案
#include & reg52.h & #include &intrins.h&sbit P00 = P0^0;void delay(unsigned int ms){
while(ms--) for(i = 110; i-- ; i & 0);}void main(){
unsigned char
LED = 0xfe, COUN = 0;
while(1) {
P2 = COUN;
if (P00 == 1) {
if (P00 == 1) {
while (P00 == 1);
LED = _cror_(LED, 1);
采纳率:64%
单片机检测高电平。1、可以用外部中断,外接激光传感器最好用普通光耦隔离一下,顺便改成低电平触发单片机中断。然后用位移指令移动跑马灯,然后计数值加1.
2、可以用循环检测,也建议用光耦隔离先,在MAIN里面不断检测P00,发现变化后,再次检测以便确认,确认后同样位移一下跑马灯,然后计数加1。
假如LED是8位,输出口为PBvoid ledshift(void){
static uchar i=0x01;
static counter = 0;
if(P00==1)
if(counter++%8==0)
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 C十十能编单片机程序吗 的文章

 

随机推荐