注:P3.2口一直接地,程序如下:
#include <reg52.h>
sbit dula=P2^6;
sbit wela=P2^7;
sbit d0=P1^0;
sbit d1=P1^1;
sbit d2=P1^2;
sbit d3=P1^3;
sbit d4=P1^4;
sbit d5=P1^5;
sbit d6=P1^6;
sbit d7=P1^7;
#define uchar unsigned char
#define uint unsigned int
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
EA=1;
EX0=1;
IT0=0;
wela=1;
P0=0xc0;
wela=0;
while(1)
{
for(num=0;num<16;num++)
{
dula=1;
P0=table[num];
dula=0;
delay(1000);
}
}
}
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=110;b>0;b--);
}
void exter0() interrupt 0
{
uint c;
for(c=0;c<25000;c++);
d0=0;
for(c=0;c<25000;c++);
d0=1;
for(c=0;c<25000;c++);
d1=0;
for(c=0;c<25000;c++);
d1=1;
for(c=0;c<25000;c++);
d2=0;
for(c=0;c<25000;c++);
d2=1;
for(c=0;c<25000;c++);
d3=0;
for(c=0;c<25000;c++);
d3=1;
for(c=0;c<25000;c++);
d4=0;
for(c=0;c<25000;c++);
d4=1;
for(c=0;c<25000;c++);
d5=0;
for(c=0;c<25000;c++);
d5=1;
for(c=0;c<25000;c++);
d6=0;
for(c=0;c<25000;c++);
d6=1;
for(c=0;c<25000;c++);
d7=0;
for(c=0;c<25000;c++);
d7=1;
}
谢谢谢谢!是不是中断程序一定要比主程序小啊?
51单片机c程序求助,程序会在main()函数里循环执行,这是怎么回事?当main...
keil做了下仿真,虽然你的主函数结束了,但是你的计时器仍然在工作,单步下去,总会进入中断函数。但是在protues下你的定时器初值要设置合理,也就是在主函数结束前溢出,中断就能发生。然后一直会有定时中断.挺神奇的 还是烧在板上做吧
...用Keil编写的程序,编译没有错误,下载到51单片机开发板上没有结果...
你好 看了一下,利用外部中断来处理键盘,在没有重要资源的时候,还是不错的选择,但在1ms及以下级的脉冲输出的时候,就要把中断留给定时器。以防止int0阻止t0的中断。好言归正传,首先靠int0,来控制键盘,在硬件上要有触发条件,因为int0是硬件触发的,再说软件,其实键盘的扫描,除了你程序中编程的...
那位大侠能帮我看看我写的单片机程序怎么没有返回值啊??
后面那两个这么没有在前面加key_jian==1 key_yidong==1,你这程序没判断按键是否松开,又没判断按键是否有按下,没判断是否松开可能发现不了错误,但不判断是否按下就是再次运行着程序,使返回值为1,。所以你说没有返回值是错的,其实已经返回了你的按键值,只不过被第二次的返回值给覆盖了。
请各位大侠帮我看看,为什么我的C程序跑起来后,只有窗口一闪而过_百度...
无需要控制台录入的地方,执行完后直接退出了,机器的执行效率肯定比你反应的快啊 你需要人为添加一句需要人输入的语句以使程序暂停 在你的return 0;前面加上int i;scanf("%d",&i);看看
写了程序的S52单片机没运行
我觉得主要还是软件问题,要先看程序再说 初步判断应该是延时程序延时太短了,不是不闪而是闪的太快了,快到你看不出来.程序没什么问题哦,就是少了个END(不加END有时会出错),加加看还不行就是硬件问题了,先拿万用表测下复位是不是低电平(USBASP不好的话这脚有可能是高电平),EA是不是高电平...
51单片机定时器2的最短定时时间怎么有限制?
如果 超过定时器 定时时间,则来不及 处理 定时也就不准确了。用 C 语言编程,有可能 定时时间 过短 会有问题,有不好 计算中断用去多少时间。如果用 汇编语言 编程,晶振是12MHZ、12分频,只是产生一个方波信号,30KHz 频率没有问题。当然你要检测 准确性 加入计数程序后 会占用时间,一般编程时...
关于AVR单片机PWM中断的问题想请教各位大侠!
我用的是一片Atmega64的芯片,编辑环境采用的是ICCAVR,可是我在做快速PWM实验使能中断的时候出现的问题我无法理解,想请懂AVR单片机的朋友给我解答一下,谢谢!我的程序如下,本人初... 我用的是一片Atmega64的芯片,编辑环境采用的是ICCAVR,可是我在做快速PWM实验使能中断的时候出现的问题我无法理解,想请懂AVR单片机的...
求助各位前辈,小弟在自学51单片机,想请大侠们赐一个小程序给我学习,万...
你这第一下就想玩这难度要大点,因这有个控制亮度的麻烦点,你最好先玩玩流水灯啊,数码管自动加数啊,(本以后你这中也要用的)完成后再来玩你这才会达到事半功倍的效果,这类程序 网上多的是,你可根据你想玩C语言还是玩汇编去找相应的下载....
如何理解这段单片机程序. 各位大侠,请解释一下。我搞不明白,为什么会这 ...
但是c要先加一然后再判断是不是比300大,知道第三百次到了,c值就变成300了,if语句的条件就满足,这时候才执行{ LedNumVal++ ; \/\/每隔300个扫描周期加一次 C =0; \/\/每隔300个扫描清零 } 至于那个显示的问题,我不知道程序要显示什么,但是我写显示程序的时候是不这么复杂的,直接编写共阳...
单片机入门,急求高手大虾指教!!!
您的水平不高我完全心中有底,其实我只要求这些学生能够掌握单片机应用开发的基本技能,用汇编和C51 写过一些基本的程序,真正动手做过一些简单的项目,然后将自己做过的项目写成比较规范的文档。我想,这种形式的“自我介绍”肯定要比让别人看您那写的千遍一律的“八股文”简历不知要强多少倍,古人言:“一叶知秋”其实...