请教一个单片机的问题
每一种单片机的时钟频率都有一个上限值,只要在允许的时钟频率范围内,单片机就可以正常工作,只要单片机能正常工作,定时器就能正常工作,没有什么响应频率一说。考虑的是单片机的时钟频率,而不是考虑定时器的响应频率,没有的事。
因为
GPIO_LED=P0
ledValue=0X01
所以
GPIO_LED = ledValue;//点亮LED灯
就等于P0=0x01
void keyscan_falling()
{
flag=0;
if(P3==0xFF)
flag=1;
//delay(1); //去抖(可选)
if(flag&&(P3==0xFD))
cl();
}
void main(void)
{
P3=0xFF; //模式输入
while(1)
{
keyscan_falling();
}
}
sbit s1=P3^0;
char num;
void delay(int z) //延时函数
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
if(s1==0)
{
delay(5);
if(s1==0)
num++;
while(!key1);
delay(5);
while(!key1);
}
while(num%2==1)
{
P1=0xfe; //灯亮
if(s1==0)
{
delay(5)
if(s1==0)
{
num++;
while(!key1);
delay(5);
while(!key1);
}
}
} P1=0xff;
}
}
你拿这个程序试试吧,我试过没问题。
#include <REG51.H>
sbit led=P0^0;
sbit key=P3^6;
char flag=0;
void delay(void)
{
int i,j;
for(i=0;i<220;i++)
for(j=0;j<110;j++);
}
void cl(void)
{
if(!flag)
{
led=0;flag=1;
}
else
{
led=1;flag=0;
}
}
void main(void)
{
while(1)
{
if(key==0)
{
delay();
if(key==0)
{
cl();
}
while(!key);
}
}
}
试一下吧
看看这个行不,做个判断,如你的键名是key
if(key==0)
{
while(key)
{
:
case 0xFD:cl();break;//常亮模式
:
}
}
关于单片机的一点问题
入门的话 最好选择51单片机,简单!网络资源丰富,例程也多,只要感兴趣加上坚持。这些功能都能实现。 你提的第一个问题51单片机就可是实现,定时的话单片机里面有定时器功能,设置好相应的时间就可以控制灯亮灭,手动控制的话,用按钮接单片机IO口来控制灯泡亮灭。第二个问题就有点难度了,像你那样的...
有关单片机问题。各位帮我解答一下。
A为累加器,P为奇偶标志,根据定义:PARITY:奇偶标志。若累加器中8 个位的和为奇数时该位置1,为偶数时清0,63H=001100011B,八个位的和为4, 偶数, 所以置0.
单片机初学者的一个小问题,求帮帮忙啊!!!
程序修改如下:include"reg51.h"#include"intrins.h"unsigned char key=0;typedef unsigned int u16;typedef unsigned char u8;sfr led=P2;\/\/这里是错误的,应该是sfrsbit k1=P3^0;sbit k2=P3^1;sbit k3=P3^2;void delay(u16 i){while(i--);}void moshi1(){u8 i;led=0xfe;key=0;for...
学习单片机的有关问题
汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口...
单片机一个简单的问题
不过看在楼主级别很高的面上回答一下。你只有5V电,那么升压问题如前面那位所述。你传感器输出是什么类型的?你没说,我只好猜,一般24V的三端传感器,不会太复杂,输出模拟量的可能性高,但不管是数字量还是模拟量,如果预估会超过5V,那么简单的做法就是2个电阻分压就行。分开说:数字量稳妥点用光耦...
单片机类题目,大家讨论一下,该如何作答。
第二道题,51单片机我忘了T1在方式一下是什么定时器,主要是看几位的定时、计数器,如果8位的,计数最大值就是2^8=256,16位的就是2^16=65536,初值等于计数最大值减去要计数的值,比如,用12位定时计数器,晶振是12M的,然后12分频,那么一个指令周期是1US,要定时10MS,那么计数值就是10MS\/...
最近在学习单片机有一些不明白的问题,求高手指教。
首先你这里(sbit P1_0=P1^0;)只是定义了一盏灯,如果你想三个灯轮流点亮的话可以把三盏灯都定义好(sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;),然后可以在定时器子程序上写轮流闪,也可以在主程序的whlie(1)里面写。定时器子程序可以作如下修改 void timer0() interrupt 1 {...
一个简单的51单片机问题
将你的while()函数改为下面这个函数:while(1){ P1_0=0;sleep(1000);P1_0=1 sleep(1000);} 你再试试这个。蜂鸣器不断响,就是因为给它高低电平,它就能发声。
【急】有关单片机的几个问题,求大神!
编写一段程序,实现将片内RAM中从30H开始的连续10个字节的数据传送到50H开始的连续10个字节中。(这个比较搞不懂)MOV R0, #30H MOV R1, #50H MOV R2, #10 LOP:MOV A, @R0 MOV @R1, A INC R0 INC R1 DJNZ R2, LOP END --- 单片机RAM中,(50H)=3CH,写出每条...
一个单片机 定时器 计算 问题
12M的晶振每秒可产生1M个机器周期,50ms就需要50000个机器周期,定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值15536,即3CB0H,所以TH0=0x3c,TL0=0xb0。11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期,定时器在方式1工作,是16位计数器,最大值为...
谏虽活力:[答案] 如果要用到MOVX或MOVC指令认问外部存储器,数据只能从P0口送出..因而只能用P0口当数据口... 而在MOVX或MOVC的... P2口作出相应的动作..这或许是规定.我也不太清楚... 关于补充问题... 分为,片内ROM,RAM,片外ROM,RAM就是这四种.. 关...
海东地区17192831424: 单片机一个简单的问题 - ?
谏虽活力: 是的,单片机IO口提供的电流小,所以要外加驱动电路.我一般用ULN2003(输出能力有500mA),或者你还嫌驱动能力不够,用三极管驱动.驱动的意思,举个简单的例子,一个继电器需要50mA的电流才能使其动作,那么你将单片机的IO口直接接到继电器,单片机提供不了那么大的电流,继电器不会动作.就好像1个人的力气是有限的(驱动能力有限),拉动不了一辆卡车,你就需要找来一辆车(驱动芯片或三极管),来拉动这辆卡车.
海东地区17192831424: 请教8051单片机的问题 - ?
谏虽活力: 你是指8051的汇编语言和X86的汇编语言吧.因为汇编语言通常是与机器想关的,所以讲汇编语言一般带要指明处理器架构.比如X86的汇编语言、MCS-51汇编语言、MCS-96汇编语言、ARM汇编语言等等.基本上没有两种机器的汇编语言是...
海东地区17192831424: 单片机问题请教各位专业人士?
谏虽活力: 1 边沿出发是发生电平跳变时触发的,如单片机的中断选用下降沿触发,是在发生高电平向低电平跳变时才能产生中断的,如果其引脚一直为低电平或高电平,是不会产生中断的.所以其关键是电平的“跳变” 电平触发则不同,如低电平触发,如果中断输入引脚始终为低电平,则单片机系统会一直响应中断,直到其引脚变为高电平为止. 2 触发方式可通过设定 TCON 的IT0/1来选择,这个一般的单片机原理之类的书都有,故不详述.
海东地区17192831424: 请教单片机的问题? - ?
谏虽活力: 在keil中仿真时(就上面的饿),第一次执行完RET后,程序返回第一行MOV R1,#00H;第二次执行完RET后,程序返回第一行MOV R1,#00H;第三次执行完RET后,就报错*** error 65: access violation at C:...
海东地区17192831424: 关于单片机的几个问题! - ?
谏虽活力: 1.分析单片机与通用计算机的相同和不同之处 单片机就是微型计算机,只是说单片机只包裹控制器、计数器、存储器、IO口; 2.单片机有哪些应用领域 自动控制的地方都用 3.归纳分析80c51单片机硬件结构特点 控制器+计数器+存储器+IO口 4.归纳分析80c51单片机定时器/计数器的特点 计时益处产生中断 5.归纳分析80c51单片机中断系统的特点 放下当前程序转跳到另一个地方 6.归纳分析80c51单片机指令系统的特点 运算+逻辑+控制转移 7.归纳分析80c51单片机串行口接受和发送数据的过程 写入寄存器+然后发送 8.简述在MCS-51单片机系统中,外接程序存储器和数据存储器、地址线、数据线、控制线的接法 这个你去看书
海东地区17192831424: 一个关于单片机的问题!!!!!!!!!! - ?
谏虽活力: 有多少个芯片很好计算,你需要的存储器是一个16K*8位的,也就是说总共需要16*8*1024bits.当你有1K*1位的芯片时,需要16*8*1024/(1*1*1024)= 128 同理,4K*8位的芯片,需要16*8*1024/(4*8*1024)= 4 所谓片内寻址,就是说有多少位...
海东地区17192831424: 关于单片机 电路方面的问题. - ?
谏虽活力: 1,AD就是模拟数字转换器,输入是模拟量,输出就是数字量,不是电流也不是电压,因为单片机是数字芯片,它只能识别0101的数字信号,然后通过得到的数字信号与基准信号的比例关系计算得出AD输入的模拟电压. 2,在电路设计中,都会遵循大输入阻抗,小输出阻抗的原则,运放理论上能达到输入阻抗无穷大,输出阻抗无穷小,但也只是理论,单片机也同样遵循,所以设计的时候并不需要去刻意计算这些数据,在你使用IC或者串入电阻的时候有这个思想就好,电阻不要太小,一般以1K为底限. 3,内部振荡器的确不准,但是这是相对于你的要求来讲的,如果你要很严格的5S,那用它肯定不行,如果只是大概的延时一段时间让小车电机滞后启动,那就无所谓,祝成功~
海东地区17192831424: 请教有关单片机的问题 - ?
谏虽活力: 我原是计算机专业的,对嵌入式领域非常感兴趣.我们专业没有嵌入式相关的课程,所有东西都是自学的.现在我已从事嵌入式软件工作了. 一楼的说得非常对,不要将希望寄托在老师身上,自学才是王道. 我当时也是自学成才的. 1.首先去...
海东地区17192831424: 一个简单的单片机问题 - ?
谏虽活力: 在P1.0口上接个二极管. 电压自然就降下来了.