专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
proteus
毕设求助,我的四位七段数码管为什么不亮啊
2019-07-18 11:15
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
proteus
12092
5
1722
学机械的,对于
单片机
不懂啊,求大神指点一下。毕设是基于AT89S52单片机直流电动机调速系统设计,求单片机大神发一个源程序,非常感谢
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
武**乱
1楼-- · 2019-07-18 12:53
http://bbs.elecfans.com/forum.ph ... 6orderby%3Ddateline
看看有你要找的吗
加载中...
go*ez
2楼-- · 2019-07-18 15:46
根据引脚来写 很简单的
加载中...
Mr**HG
3楼-- · 2019-07-18 19:37
精彩回答 2 元偷偷看……
加载中...
r*c
4楼-- · 2019-07-18 22:30
go*ez 发表于 2016-5-18 00:07
根据引脚来写 很简单的
单片机一点也不会
加载中...
r*c
5楼-- · 2019-07-18 23:21
在网上找的程序,一点都不懂
#include<absacc.h>
#include<reg51.h>
#define uchar unsigned char
unsigned char disbit[]={0xfe,0xfd,0xfb,0xf7};
unsigned char code discode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int disbuf[4]={0,0,0,0};
unsigned int count,shu;
unsigned char sec,tcnt;
sbit MOTOR_A_2=P3^6; //¶¨Òå
sbit MOTOR_A_1=P3^7; //¶¨Òå
sbit EN_MOTOR_A =P1^7; //¶¨Òå
sbit LED=P1^3; //¶¨Òå
sbit p30=P3^0; //¶¨Òå
sbit k1=P1^5; //¶¨Òåk1Ϊp1.5¿Ú
sbit k2=P3^1; //¶¨Òåk2Ϊp3.1¿Ú
sbit k3=P3^2; //¶¨Òåk3Ϊp3.2¿Ú
sbit k4=P1^6; //¶¨Òåk4Ϊp3.3Ϊ
sbit k5=P1^2; //¶¨Òå
uchar T=0; //¶¨Òå±ê¼Ç
uchar W=0; //Âö¿íÖµ 0~100
uchar A=0; //·½Ïò±ê¼Ç 0,1
uchar k=0; //°´¼ü±ê¼Ç
uchar i=0; //¼ÆÊý±äÁ¿
void delay(unsigned char N) //ÑÓʱ
{
unsigned char i;
for(i=0;i<N;i++);
}
void disp(unsigned?char ch)
{
unsigned?char k; //ÏÔʾ£¬³£ÓõÄÒ»ÖÖ³ÌÐò£¬¿ÉÒÔ°ÑdisbufÊý×é±ä³ÉÒ»¸öÔÝʱ±äÁ¿Êä³ö
disbuf[0]=ch%10; //¸ö
disbuf[1]=(ch%100)/10; //Ê®
disbuf[2]=ch/100%10; //°Ù
disbuf[3]=ch/100/10; //ǧ
for(k=0;k<4;k++)
{
P0=0xff; // p0×÷ΪÊä³ö£¬±ØÐëÏÈÖøߵçƽ
P2=discode[disbuf[k]]; //ÉèÖÃLEDÁ¬½Ó¶Ï¶Ë¿Ú
P0=disbit[k];
}
}
void key(void) //°´¼üÅжϳÌÐò
{
if(k1==0)//°´¼ü1°´ÏÂ
{
while(k1==0); //°´¼ü1̧Æð
if(W==100) //Èç¹ûÂö¿íΪ100
W=0; //Âö¿íÖÃ0
else
W+=1; //·ñÔò¼Ó1
}
else if(k2==0) //°´¼ü2°´ÏÂ
{
while(k2==0); //°´¼ü2̧Æð
if(W==0) //Èç¹ûÂö¿íΪ0
W=100; //Âö¿íÉèÖóÉ100
else
W-=1; //·ñÔò¼õ1
}
else if(k3==0) //°´¼ü3°´ÏÂ
{
while(k3==0); //°´¼ü3̧Æð
A=!A; //·½Ïò±ê¼ÇÈ¡·´
MOTOR_A_2=~MOTOR_A_2;
MOTOR_A_1=~MOTOR_A_2;
k=0; //°´¼ü±ê¼ÇÇå0
LED=~LED;
}
else if(k4==0) //°´¼ü4°´ÏÂ
{
while(k4==0); //°´¼ü4̧Æð
W=0; //Âö¿íÇå0
k=0; //°´¼ü±ê¼ÇÇå0
}
}
void t0(void) interrupt 1 using 0 //¶¨Ê±T0Öն˷þÎñº¯Êý
{
tcnt++; //ÿ¹ý250us tcnt¼ÓÒ»
if(tcnt==40) //¼ÆÂú40´Î(1/100?)ʱ
{
tcnt=0; /ÖØÐÂÔÙ¼Æ
sec++;
if(sec==120) //¶¨Ê±1.2Ãë,ÏÔʾתËÙ,ÔÙ´ÓÁ㿪ʼ¼Æʱ
{
sec=0;
TH0=0x06; //¶ÔTH0 TL0¸³Öµ
TL0=0x06; //250us
shu=count;
count=0;
}
}
T++; //¶¨Ê±±ê¼Ç¼Ó1
if(T>W)
{EN_MOTOR_A=0;
}
else
EN_MOTOR_A=1;
if(T==100) //T¼ÆÂú100´Î,ÇåÁã
T=0;
}
void sdf(void)interrupt 2 using 0 //¼ÆÊýT1Öն˷þÎñº¯Êý
{
count=count+1;
}
main()
{
EX0=1;
IT1=1;
TMOD=0x02; //¶¨Ê±Æ÷T0¹¤×÷ÔÚ·½Ê½2×Ô¶¯ÖØ×°·½Ê½£¬¼ÆÊýÆ÷T1¹¤×÷ÔÚ·½Ê½2×Ô¶¯ÖØ×°·½Ê½
TH0=0x06; //¶ÔTH0 TL0¸³Öµ
TL0=0x06; //250us
TR0=1; //¿ªÊ¼¶¨Ê±
ET0=1; //ÔÊÐíT0²úÉúÖжÏ
EA=1;//¿ªÖжÏ
EX1=1;
TR1=1;
EA=1;
shu=0;tcnt=0;count=0;//³õÖµ
while(1)
{ if(k5==1)
disp(shu);
else
disp(W);
key();
}
}
加载中...
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
为什么Proteus 仿真点阵字体缺笔画 而且速度奇慢
7 个回答
2012~~单片机C语言程序设计实训100例-基于8051+Proteus仿真(第2版)
27 个回答
新手求帮忙解决proteus的问题
1 个回答
大家好,请问用三菱plc仿真软件跟mcgs组态软件怎么样连接?
1 个回答
proteus出问题,不能用
3 个回答
数字频率计 求编程(汇编或C语言)
1 个回答
求单片机与PC机串行通信
2 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
proteus
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
看看有你要找的吗
单片机一点也不会
#include<absacc.h>
#include<reg51.h>
#define uchar unsigned char
unsigned char disbit[]={0xfe,0xfd,0xfb,0xf7};
unsigned char code discode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int disbuf[4]={0,0,0,0};
unsigned int count,shu;
unsigned char sec,tcnt;
sbit MOTOR_A_2=P3^6; //¶¨Òå
sbit MOTOR_A_1=P3^7; //¶¨Òå
sbit EN_MOTOR_A =P1^7; //¶¨Òå
sbit LED=P1^3; //¶¨Òå
sbit p30=P3^0; //¶¨Òå
sbit k1=P1^5; //¶¨Òåk1Ϊp1.5¿Ú
sbit k2=P3^1; //¶¨Òåk2Ϊp3.1¿Ú
sbit k3=P3^2; //¶¨Òåk3Ϊp3.2¿Ú
sbit k4=P1^6; //¶¨Òåk4Ϊp3.3Ϊ
sbit k5=P1^2; //¶¨Òå
uchar T=0; //¶¨Òå±ê¼Ç
uchar W=0; //Âö¿íÖµ 0~100
uchar A=0; //·½Ïò±ê¼Ç 0,1
uchar k=0; //°´¼ü±ê¼Ç
uchar i=0; //¼ÆÊý±äÁ¿
void delay(unsigned char N) //ÑÓʱ
{
unsigned char i;
for(i=0;i<N;i++);
}
void disp(unsigned?char ch)
{
unsigned?char k; //ÏÔʾ£¬³£ÓõÄÒ»ÖÖ³ÌÐò£¬¿ÉÒÔ°ÑdisbufÊý×é±ä³ÉÒ»¸öÔÝʱ±äÁ¿Êä³ö
disbuf[0]=ch%10; //¸ö
disbuf[1]=(ch%100)/10; //Ê®
disbuf[2]=ch/100%10; //°Ù
disbuf[3]=ch/100/10; //ǧ
for(k=0;k<4;k++)
{
P0=0xff; // p0×÷ΪÊä³ö£¬±ØÐëÏÈÖøߵçƽ
P2=discode[disbuf[k]]; //ÉèÖÃLEDÁ¬½Ó¶Ï¶Ë¿Ú
P0=disbit[k];
}
}
void key(void) //°´¼üÅжϳÌÐò
{
if(k1==0)//°´¼ü1°´ÏÂ
{
while(k1==0); //°´¼ü1̧Æð
if(W==100) //Èç¹ûÂö¿íΪ100
W=0; //Âö¿íÖÃ0
else
W+=1; //·ñÔò¼Ó1
}
else if(k2==0) //°´¼ü2°´ÏÂ
{
while(k2==0); //°´¼ü2̧Æð
if(W==0) //Èç¹ûÂö¿íΪ0
W=100; //Âö¿íÉèÖóÉ100
else
W-=1; //·ñÔò¼õ1
}
else if(k3==0) //°´¼ü3°´ÏÂ
{
while(k3==0); //°´¼ü3̧Æð
A=!A; //·½Ïò±ê¼ÇÈ¡·´
MOTOR_A_2=~MOTOR_A_2;
MOTOR_A_1=~MOTOR_A_2;
k=0; //°´¼ü±ê¼ÇÇå0
LED=~LED;
}
else if(k4==0) //°´¼ü4°´ÏÂ
{
while(k4==0); //°´¼ü4̧Æð
W=0; //Âö¿íÇå0
k=0; //°´¼ü±ê¼ÇÇå0
}
}
void t0(void) interrupt 1 using 0 //¶¨Ê±T0Öն˷þÎñº¯Êý
{
tcnt++; //ÿ¹ý250us tcnt¼ÓÒ»
if(tcnt==40) //¼ÆÂú40´Î(1/100?)ʱ
{
tcnt=0; /ÖØÐÂÔÙ¼Æ
sec++;
if(sec==120) //¶¨Ê±1.2Ãë,ÏÔʾתËÙ,ÔÙ´ÓÁ㿪ʼ¼Æʱ
{
sec=0;
TH0=0x06; //¶ÔTH0 TL0¸³Öµ
TL0=0x06; //250us
shu=count;
count=0;
}
}
T++; //¶¨Ê±±ê¼Ç¼Ó1
if(T>W)
{EN_MOTOR_A=0;
}
else
EN_MOTOR_A=1;
if(T==100) //T¼ÆÂú100´Î,ÇåÁã
T=0;
}
void sdf(void)interrupt 2 using 0 //¼ÆÊýT1Öն˷þÎñº¯Êý
{
count=count+1;
}
main()
{
EX0=1;
IT1=1;
TMOD=0x02; //¶¨Ê±Æ÷T0¹¤×÷ÔÚ·½Ê½2×Ô¶¯ÖØ×°·½Ê½£¬¼ÆÊýÆ÷T1¹¤×÷ÔÚ·½Ê½2×Ô¶¯ÖØ×°·½Ê½
TH0=0x06; //¶ÔTH0 TL0¸³Öµ
TL0=0x06; //250us
TR0=1; //¿ªÊ¼¶¨Ê±
ET0=1; //ÔÊÐíT0²úÉúÖжÏ
EA=1;//¿ªÖжÏ
EX1=1;
TR1=1;
EA=1;
shu=0;tcnt=0;count=0;//³õÖµ
while(1)
{ if(k5==1)
disp(shu);
else
disp(W);
key();
}
}
一周热门 更多>