向高手求解 单片机程序 此程序功能 按键每按一次,数码管上的数字加一,程序烧到单片机里,数码管没显示

作者&投稿:称紫 (若有异议请与网页底部的电邮联系)
求救:c51单片机按键每按一次同时数码管显示数字加一~

-
建立一个数组,用于存放 0-9的段码。
int Shuzu[]={---------};
如果会用指针
int *P;
P=Shuzu; //指针指向数组!
用外部中断,
每中断一次,中断服务程序将数组元素加一P0=Shuzu[ax++](或指针加一:P0=*P++)
以上假设P0口驱动数码管!
至于数码管使用的是共阳还是共阴,就把相对的数值存在数组中!
-
外部中断0的中断程序入口
void TI_0() interrupt 0
{
--------
}
都提示到这里了,下面自己该会吧?
如果是新手的新手---想要我帮你写全部程序--
那至少你得把你单片机芯片型号说给我才能帮你!
还有数码管是用单片机哪个IO口!
数码管是怎么连接的?(串/并)

如楼下所言。最好提供电路原理图。因为不同开发板IO信号连接,编程不一样。

主程序进行了修改。
下面的,可以正常工作:

void main (void)
{
unsigned char sum=0;
key=1;
while(1) {
if(!key) {
delay(10);
if(!key) {
if(sum<9) sum++; //加操作
while(!key);
}
}
temp[0]=duanma[sum/10];
temp[1]=duanma[sum%10];
display(2, 2);
}
}

delay(200); 有点短, 一般人眼分辨的刷新率为20hz左右,delay弄大点试试看,比如5ms的delay

主程序改了一下,试试
void main (void)
{
unsigned char sum=0;
key=1;
while(1)
{
if(!key)
delay(10);
if(!key)
{
while(!key);
if(sum<9) //加操作
sum++;
}
temp[0]=duanma[sum/10];
temp[1]=duanma[sum%10];
display(2,2);
}
}


乌拉特中旗13999174007: 求解 此单片机程序想实现如下功能:矩阵键盘 按键后在数码管中显示该键键值 p1口控制数码管显示 -
夕翔力美: 3x4=12的啊,有10,11,12为两位数,你显示时候就只用了一位,到10,11,12时候肯定不对,你还是写个显示函数吧.scan(); 函数已经返回键值了,while(1)只要扫描键值,显示就行了吧.你的主函数没太懂你

乌拉特中旗13999174007: 急求单片机高手解读程序,最好能讲下每部分程序能实现的功能
夕翔力美: SDA是串行数据线,SCL是时钟.这个程序应该是一个定式程序.先将总线置1,再将时钟置1,表明两者都可用,一段时间后,将总线清零,总线不可用,时钟可用.再过一段时间将时钟清零,一个时钟周期结束.这是当你的单片机高电平有效时的解释.如果你的单片机是低电平有效,则这段程序是一段延时程序,用来防止程序跑飞.

乌拉特中旗13999174007: 求单片机C程序,实现功能:串口调试软件发送一个字符,接收区显示该字符 -
夕翔力美: 试试下面的行不行,希望能帮到你,你用的是51单片机吧?void init() //串口初始化 { TMOD=0x20;//设置定时器1为工作方式2,8位自己重装用于产生波特率 TH1=0xfd; //波特率9600 TL1=0xfd; TR1=1; //起动时器1 REN=1; //允许串口接收 ...

乌拉特中旗13999174007: 求单片机高手帮我逐句解释一下这个程序谢谢了
夕翔力美: 解决方法很多!#include//字头,表示如果涉及到的函数从这两个后缀名.H的文件里调用. #include #defineucharunsignedchar//方便定义函数无符号型应该用UCHAR表示为方便直接用CHAR表示了. #defineuintunsignedint//整形同上解释 ...

乌拉特中旗13999174007: 求解一单片机程序的简答题目,谢谢! -
夕翔力美: 功能:从以30H为起始地址的连续五个存储单元中招出最大一个无符号数,结果在R2中R2=A8H

乌拉特中旗13999174007: 单片机高手来帮我解释这个程序 -
夕翔力美: ORG 30H HA1S: MOV A,#00H ;累加器A清0 HA1S1: JB P3.5,HA1S1 ;等待按键 MOV R2,#10H ;R2=10H LCALL DELAY ;延时 JB P3.5,HA1S1 ;按键有效继续,无效转HA1S1 HA1S2: JB P3.5,HA1S2 ;等待按键 MOV R2,#10H ;R2=10H ...

乌拉特中旗13999174007: 求61单片机定时程序 -
夕翔力美: 要定时功能的话最好是使用中断比较准确.不过如果50分钟.还真是够长的.比如说可以开一个2Hz的中断,在中断程序中进行技术,这样50分钟(应该计多少数我就不算了)后,动作改变io状态.而这个验证io是否动作的程序可以放到主程序...

乌拉特中旗13999174007: 求高手帮忙解决这个程序让单片机分别控制来显示数字5 -
夕翔力美: 实际应用 中是不会这样做,如果要实现,给你说个 方法吧, 程序1 单片机 给的列数据 用定时中断 来扫描输出,并发一个 低电平 脉冲给 程序2 单片机 程序2 单片机 用外部中断 来扫描输出 循环行, 达到同步 就可以,不同步就会显示混乱. 当然 还有 最开始的 同步, 不然显示效果 会偏移.

乌拉特中旗13999174007: 单片机程序!求助高手
夕翔力美:#include<reg51.h> sbit k0=P1^7; main() { IT1=0; EA=1; //开总中断源 EX1=1; //开外部中断0 while(1) { } } void exter2()interrupt 2 //外部中断程序 { k0=!k0; }

乌拉特中旗13999174007: 哪位大神帮我解释一下这个 单片机的 ....程序 -
夕翔力美: #include //引用自定义的stc单片机头文件#define uint unsigned int //宏定义:uint代替unsigned int,方便定义变量#define uchar unsigned char //同上 uchar code table1[]={0xf7,0xfb,0xfd,0xfe}; //应该是数码管4位位选代码,每次选一个(共阳极的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网