永发信息网

下面程序哪里出错了,51单片机控制数码管秒钟。我用P1口输出到8个共阳数码管,P0的5、6、7接选择器控制位

答案:3  悬赏:70  手机版
解决时间 2021-02-18 01:51
0x7d; delay(50);中断程序 { TMOD=0x01; d1=0,0x07;// d0=0;d2=0,0x7f;/,0x5b;数码管0到9的显示 void delay(unsigned int x) /,停止; } if(stop==0) /停止 { TR0=0; delay(50); } } void init() / temp=0; sbit start=P0^0; delay(50);延时程序 { while(x--),shi,aa=0; } void main(void) { init(); TR0=0; ET0=1; sbit d2=P0^7; #define uint unsigned int ;10; TR0=1; d1=1;显示程序 { if(temp> TL0=(65536-50000)%256,0x4f,0x66,0x06; } if(start==0) / d1=0; sbit stop=P0^1; d0=1; uchar bai; ge=temp%10; unsigned char code tab[]={0x3f;} void key() { if(reset==0) / d0=0;d2=0; shi=temp%100/ EA=1; if(aa==20) {aa=0; TL0=(65536-50000)%256,复位;d2=0; display(); sbit d0=P0^5;100) {temp=0;开始 { TR0=1;100,0x6d; TH0= (65536-50000)/ } void t0() interrupt 1 { TH0= (65536-50000)/ sbit d1=P0^6;256; P1=tab[shi] ; #define uchar unsigned char;/// aa++,ge。为甚么我的程序不行 #include < while(1) { key();/temp++、3用来启动;/} bai=temp/ P1=tab[ge] ,0x6f};256; P1=tab[bai].H&gtP0的1;复位 { temp=0;} } void display() / sbit reset=P0^2;reg51、2; unsigned int temp
最佳答案
在main的开始部分加如下语句start = 1;stop = 1;reset = 1;
还有你用P0口作为按键输入的话,P0口一定要加上拉电阻,如果你不知道怎么加,那就把P0口换成P2口做为按键输入。要注意,那3个按键是另一端是接地的。
全部回答
是PROTEUS仿真吗?不是的话还要记得硬件P0加上拉电阻(10K欧) #include sbit start=P0^0; sbit stop=P0^1; sbit reset=P0^2; sbit d0=P0^5; sbit d1=P0^6; sbit d2=P0^7; #define uchar unsigned char; #define uint unsigned int ; uchar bai,shi,ge; unsigned int temp,aa=0; unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管不要用共阴的码 void delay(unsigned int x) //延时程序 { while(x--);} void key() { if(reset==0) //复位 { temp=0; TR0=0; } if(stop==0) //停止 { TR0=0; } if(start==0) //开始 { TR0=1; } } void init() //中断程序 { TMOD=0x01; TH0= (65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void t0() interrupt 1 { TH0= (65536-50000)/256; TL0=(65536-50000)%256; aa++; if(aa==20) {aa=0;temp++;} } void display() //显示程序 { if(temp>100) {temp=0;} bai=temp/100; shi=temp%100/10; ge=temp%10; d0=1; d1=0;d2=0; P1=tab[bai]; delay(50); P1=0xff; d0=0; d1=1;d2=0; P1=tab[shi]; delay(50); P1=0xff; d0=0; d1=0;d2=1; P1=tab[ge] ; delay(50); P1=0xff; //这是动态显示,显示完一位后记得清屏 } void main(void) { init(); temp=0; while(1) { key(); display();} }
p0口为开漏结构,无输出高电平能力 但有较强的吸入电流能力 加接上拉排阻后就有了高电平驱动能力,输出电流能力 取决于上拉排阻的阻值 上拉电阻阻值小,其输出高电平时提供的电流就大 但输出低电平时从单片机io口灌入的电流就越大
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
历史上欧洲版图的变化往往与大规模战争有关。
前乌龙泉在什么地方啊,我要过去处理事情
眼睛发红吃什么药
2000元可以炒股吗?大概一个月可以赚多少?请
被路由器误踢出怎么重新连接,就是自己把自己
李莲英用嘴伺候慈禧
离宁波天一广场最近的动漫周边店在哪儿?
宏浪卫浴怎么去啊,有知道地址的么
请问有那些液体的沸点在30℃至50℃(3,4个)
柠檬能和什么一起喝
穷字加上双引号代表什么意思
长虹等离子电视PT50638-X和PT50718-X区别在哪
乔家羊杂割晓港名城店在哪里啊,我有事要去这
女生主动吻你后,说自己不喜欢接吻,抱你后又
用水比喻乡愁的句子是什么
推荐资讯
胡某与黄某长期保持同性恋关系,胡某创作同性
2.0t动力长城+风骏6高端四驱皮卡多少钱?
中国历史上舍生取义的英雄有哪些?
用HttpClient怎么抓取URL中有jssessionid的页
我的手机OPPOR833T为什么每天都会自动下载三
为什么最近老是尿频尿
银行卡现在能不能异地注销?
请问梦幻西游69女儿村好玩吗,半人民币玩家推
什么是AxureRP组件库?怎么导入部件库即Libra
bts的v在演唱会上哭的是哪个演唱会?
从推动欧洲由中古社会向近代社会迈进的影响角
地图鱼为什么吐出饲料
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?