① 单片机秒表复位程序如何写
秒表就是一个计时的工具,为了保证精确度,一般显示秒后面两位,就是10ms位,在单片机定时器中,赋初值1ms,变量不停的累加上去, 累加到10的时候,秒表加1,就是10ms了,
复位就是对秒表的数据进行清零重置,这时就需要一个按键来进行人机交互功能了,这时候就要考虑有几个按键了,一般的秒表设计的时候有两个按键,一个进行启动停止,一个进行清零;
1.启动和停止,启动停止的按键,就是按一下让标志位取反一次,
bit flag =0;
if(Key ==0)
{
delay(); //延时10ms;这个程序比较常见,就不写出来了
if(key == 0)
{
flag = !flag; //消抖后检测到按键还是按下状态,就把标志位取反;
while(!Key); //等待松手
}
}
同时在定时器中断里, 根据标志位对 及时变量进行累加
if(flag)
{
t++;
if(t >= 10)
{
t = 0;
ms++;
}
}
就这样 标志位就表示的秒表启动停止的,
2 。 复位,复位顾名思义就是 返回到初始状态,就是0 ; 一般复位是在秒表停止的状态对秒表进行清零;
先在主程序里检测按键
bit clc = 0;
if(key1 == 0)
{
delay(); // 延时10ms
if(Key1 == 0)
{
clc = 1;
while(!Key1); //等待松手
}
}
然后在定时器中断里进行对变量的数值进行清零
if(!flag ) //在停止状态
{
if(clc)
{
ms = 0;
clc = 0;
}
}
到此 秒表的启动停止 和复位就完成了 ,
② 单片机怎么烧程序
问题一:51单片机芯片烧入程序 买一个烧录器就好了,杜邦线直接插到DIP脚上
问题二:单片机如何烧录程序 STC系列单片机为例:
首先,需要安装keil软件和STC_ISP程序下载软件。
先对你想要实现对单片机的功能用keil编程,然后用STC_ISP下载软件下载到单片机上,最后打开给单片机提供电源就可以观察单片机开发板或是自己搭建的板子上的现象了...通过不断修改程序,下载程序,最终获得自己在实验板上想要的结果。这样就可以了...
实验板与PC机的连接:一般对现成购买的开发板来说,会有一个USB接口提供5v电源、提供通信或另一个USB用桥答野来下载接口驱动程序,同时有RS232串口,实现MAX232电平与单片机TTL电平之间转换,用来进行通信下载程序和数据;;对自己搭建的电路板来说,仍会有MAX232芯片和RS232串口用来实现程序的烧写,实现对单片机写入数据和程序的下载。用的是RS232串口实现的程序烧写!
若要用USB来烧写,需要一个相应的ISP下载软件和硬件烧写器,一般这种烧写器价格不菲。用的是USB口实现烧写程序!
一般的,烧写程序还是选用可以用ISP下载的,自己搭建个RS232串口的电路,简单实用,对单片机烧写程序就够用了。
问题三:单片机中烧程序是什么意思 看处你刚刚入门。单片机是个有意思的东西,好好学。keil是电脑上的编程软件,烧程序你就理解为往单片机中下载程序。
问题四:单片机开始可以烧程序用了几次就烧不进去 怎么回事? 有可能已经烧坏敏喊了,特别是89c52系列 更特别是STC品牌的89C52的。很容易坏,
你要注意了,你电压可能有问题。
还有就是烧程序的时候需要复亥,如果以前你能烧现在不能烧,说明你复位电路没有问题,经常复位电路影响烧程序。
问题五:第一次给单片机烧程序要注意什么? use转232应该没有问题,我用现代的芯片试过已经通过。首先我们要分析你有没有进入ISP模式,用示波器观察一下串口的波形是否正常,再就是芯片各个管脚的电压是否正常。排除硬件原因后仍不能解决,建议换一下你的USB转232线,这方面的牌子实在太多了,虽然原理都一样,但作为一个故障点来分析也是应该考虑的。
问题六:为什么单片机程序烧不进去? 用的是什么型号的单片机?会不会是烧写前没有先擦除?单片机保存程序是使用EEPROM或者flash的,都需要先擦除,才能写入的。第一次能烧进去,是因为单片机出场时本来就是已擦除过的,可以写入。但之后的写入之前,都需要先擦除。
问题七:单片机程序烧入rom之后怎样执行 1,HEX文件包含了代码数据。是由链接器统一分配ROM地址。
2. 程序中的变量,也是在编译连接时,分配了RAM地址。不存在载入的问题,程序指令对变量的操作,就是对RAM地址的操作,地址值存在在指令中。
3. 堆栈在程序初始化时设置堆栈指针。Keil C 会自动设置好。
4. 一般的51单片机代码是从 0000开始执行,这是它的复位地址。也有别的型号的单片机并不一定从0开始执行。程序从0开始执行,但它执行的第一句往往是一个跳转指令(这个Keil C也是自动写好的),跳到另一块地址去执行,而不会顺序执行到 中断的地址的。
你如果是用汇编写程序,这些都是要你自己去分配的,用C写程序,由编译器来完成这些底层操作。
问题八:怎么程序突然烧不进单片机了??? 这种情况会有很多种可能性:
1、单片机已经损坏,楼主换个单片罚试试。
2、单片机开发板损坏,这个情况基本上不可能发生,但楼主需做好准备。
3、USBISP损坏,概率不大,换一个试试。
4、下载软件出问题了,楼主看看自己的程序下载软件的型号是否为“AT89S52”。
5、单片机在插座上插反了。
6、某条连接线不牢固。
7、开发板的晶振松了,或数值举派不对。
问题九:8051单片机通过什么口烧程序? at89c**系列是用并口下载。at89系列可以用isp方式下载。 stc系列可以通过串口下载。51有专门的仿真芯片。。
isp可以用串口或者并口,或者串口转u *** (这种方式最方便,笔记本上也可以下载)。isp就用到单片机的io口(P1.5,P1.6,P1.7),还有RST引脚+74h373+并口,就可以下载了。。
③ 在单片机中可否实现此种:程序有5步,当我按下按键程序开始执行,当我松开按键则程序立即停止
当然可以,例如
#include "reg52.h"
sbit key=p1^0;
void main()
{
while(key);//程序开始停留此处,等待按键按下
while(!key)//键按下没有松开期间,执行下面代码,按键松口后,循环结束,程序结束
{
//执行代码加在这里
}
}
④ c51单片机 在矩阵键盘松手检测的原理是什么为什么要加松手程序不加又会怎样谢谢!
因为单片机运行速度很快,你按下的按键瞬间,单片机就可以执行数万调指令了,如果不加任何处理,可能就会误判你的按键,如果不加松手程序,那可能会因为按键的机械问题造成的弹跳被误判成好几个按键
⑤ 单片机用什么语言编写程序
一般是C语言或者汇编语言。
1、大多数情况下,单片机运行的程序,都是C语言编写的。不过并不是纯粹的传统C语言,而是变种后的C51语言。
单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的工程师,能够轻松地掌握单片机C51语言的程序设计。
2、汇编语言:
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
在一些情况下,C51并不能完美的实现功能,所以汇编语言是对C51的一个重要补充。一般来说,启动部分(基础硬件的初始化),往往是由汇编语言完成的。除此以外,一些要求时效性特别强,效率要求特别高时,也需要使用汇编语言完成。