㈠ MCU,按键程序,使用状态机,为什么马潮的《基于AVR的单片嵌入式系统原理与实践应用》
其实他这样做,是拿一个2MS当系统的基准时间,再叠加出来无数个他需要的时间。你自己只要会灵活运用就可以了,祝你学习成功单片机。
㈡ 单片机采用状态机接收为什么数据不对
接收需要建立一个环形缓冲区,然后设立一头一尾两个指针,写的时候尾增加,读的时候头增加。头尾相同就是空队列,头跑到尾的后一位就是队列满。
㈢ 单片机中states什么意思
如果是作为关键字出现的话,那么就是声明的意思,当然我说的是C语言。
㈣ 什么书会讲到状态机
我买过一本书,上面讲到了,但书在家里,不记得名字了,如果你想问我的话,周末打电话给我,我找一下,再把书名告诉你
㈤ 请各位各位江湖人士帮忙,求有关单片机的程序
ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0_SEVER
ORG 30H
MAIN:;主程序
MOV P1,#00H
CLR P3.0
CLR P3.1
CLR 00H;初始化显示,关显示
MOV R0,#99;装初值
MOV R1,#00H;显示低位
MOV R2,#00H;显示高位
MOV DPTR,#TABLE;LED显示段位码首地址
MOV TMOD,#01H;T0定时方式1
MOV IE,#82H;开T0中断
MOV TL0,#LOW(65536-5000)
MOV TH0,#HIGH(65536-5000);装定时初值,定时5ms
SETB TR0;启动定时器
LOOP:
MOV A,R0
MOV B,#10
DIV AB
MOV R1,B;显示低位暂存
MOV R2,A;显示高位暂存
ACALL DELAY1S;调用1s延时子程序
DJNZ R0,LOOP;判断倒计时是否完毕
AJMP MAIN;循环执行
DELAY1S:;延时1s子程序
MOV R7,#20
DEL1:
MOV R6,#100
DEL2:
MOV R5,#248
DJNZ R5,$
DJNZ R6,DEL2
DJNZ R7,DEL1
RET
T0_SEVER:;中断服务子程序
JB 00H,LOOP1;判断显示标志位
SETB P3.0
CLR P3.1
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A;显示低位
SETB 00H;置显示标志位
AJMP RETURN
LOOP1:
CLR P3.0
SETB P3.1
MOV A,R2
MOVC A,@A+DPTR
MOV P1,A;显示高位
CLR 00H;清显示标志位
RETURN:
MOV TL0,#LOW(65536-5000)
MOV TH0,#HIGH(65536-5000);重装定时器初值
RETI
TABLE:;LED显示段码表
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
C51代码的程序实时性不好,时间不准,望指出问题。
/*程序名:99~0倒计时程序*/
/*程序功能:用P1口和P3.0、P3.1口实现动态显示,完成99~0的倒计时功能*/
/*作者:严峥晖*/
#include<at89x51.h>
typedef unsigned char uchar;
uchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
bit bdata flag="0";
uchar data high_dis,low_dis;
void delay(void)//延时子函数
{
uchar i,j,k;
for(i=0;i<=20;i++)
for(j=0;j<=100;j++)
for(k=0;k<=248;k++);
}
void init(void)//初始化函数
{
P1=0x00;
P3_0=0;
P3_1=0;
IE="0x82";
TMOD="0x01";
TL0=(65536-5000)%256;
TH0=(65536-5000)/256;
TR0=1;
}
void calc(uchar time)//计算显示高低位
{
high_dis=time/10;
low_dis=time%10;
}
void sever_t0(void) interrupt 1//中断服务子程序
{
if(flag==0)
{
P3_0=1;
P3_1=0;
P1=led[low_dis];
flag=~flag;
}
else
{
P3_0=0;
P3_1=1;
P1=led[high_dis];
flag=~flag;
}
TL0=(65536-5000)%256;
TH0=(65536-5000)/256;
}
int main(void)//主函数
{
uchar i="99";
init();
do
{
calc(i);
delay();
i--;
}
while(i>=0);
}
㈥ 单片机由哪几部分组成,最小系统是什么
单片机由中央处理器(含部分特殊功能寄存器)、内部RAM、程序存储器、各种外设(IO端口、定时器、串行接口、中断处理电路等等)及对应控制寄存器、时钟电路、复位电路等几部分组成。
单片机最小系统是由芯片外部接上时钟电路、复位电路和电源构成的一个基本应用系统。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
(6)单片机状态机扩展阅读
单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
㈦ 单片机使用状态机无延时按键消抖是怎样的原理
状态机,自动化专业一般比较愿意吹嘘这种花架子。
它是定时(比如20ms)检测一遍各个变量,得到的数据,就称为一个状态。
隔一会,检测一遍,得到一个状态。
再隔一会,再检测一遍,再得到一个状态。
。。。
每次检测后,对前后的状态进行比较,由其不同的变化,执行相应的程序。
其实,这就是一个巡逻哨,很有可能错过有用的信息。
这种方法,并不如直接扫描法更直接,更加稳定可靠。
㈧ 什么叫做状态状态机由哪五个部分组成
MCU由中央处理器(包括一些特殊功能寄存器)、内部RAM、程序存储器、各种外设(IO端口、定时器、串行接口、中断处理电路等)以及相应的控制寄存器、时钟电路、复位电路等部分组成。
单片机最小系统是由时钟电路、复位电路和电源组成的一种基本应用系统。
微控制器又称单片机,它不是把完成一个逻辑功能的芯片,而是把计算机系统集成到一个芯片中。它相当于一台微型计算机。
与计算机相比,单片机只缺少I/O设备。简而言之:芯片变成了计算机。它体积小、重量轻、价格便宜,为研究、应用和开发提供了方便的条件。
(8)单片机状态机扩展阅读:
微控制器已经渗透到我们生活的各个领域,几乎很难找到一个没有微控制器痕迹的领域。
导弹导航设备,控制平面的各种仪器、计算机网络通信和数据传输、实时控制和数据处理,工业自动化过程中广泛使用的各种智能IC卡。
民用豪华轿车的安全系统、摄像机、摄像机、自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说机器人、智能仪器、医疗器械以及自动化控制领域的各种智能机器了,单片机的学习、开发和应用,将为计算机应用和智能控制的科学家和工程师们带来大量的发展。
㈨ 有教单片机状态机编程思想的书籍是哪些
郭天祥的 单片机书 足矣 里面还有光盘 郭天祥讲的 10天学会单片机。我们老师只推荐这一本。容易看懂。