51单片机编程,问题如下,请问该怎么实现? 51单片机流水灯c语言编程
单片机C51编程问题:怎样实现一个开关控制两个灯?按一次灯1亮;两次,灯1,灯2亮;三次,全灭。
单片机C51编程问题:要实现一个开关控制两个灯,按要求两个灯有3种状态,就要声明一个变量,每按一下开关,变量加一,且变量取值为1,2,3,大于3再回1,又重复控制两个灯亮灭变化。变量加一后,就根据变量的三个值,去控制两个灯的三个状态了。用仿真实现,如下仿真图。
怎样给单片机编程??
看你用的是什么类型的单片机,一般来说51系列的是入门级的也很好用,资料很多。你把编的程序经过编译后,形成一个最终的二进制文件,然后利用编程器写入单片机芯片中,然后把写了程序的芯片安装或焊接在电路中进行测试,最好的办法是用一些学习板或开发测试板,因为那样可以免去焊来焊去之苦。
当然你用STC(宏晶)片子,也可以事先做好电路,然后用STC下载线把你编制的程序写到芯片中。
另外,对于单片机技术,你不仅会编程,还要会电路设计,因为不同的电路设计有不同的程序与之对应,单片机编程与电路设计是分不开的。
51单片机汇编程序的几个问题。。。。。
六个问题就是120分了,呵呵,开个玩笑
你知道在51中数据传送指令有几条?告诉你,是29条,里面没有mov Rn,Rn这样的指令,为什么呢?因为单片机不允许同时有两个访存工作寄存器组的操作,p1呢,它不是工作寄存器,明白吗?
你知道在51中工作寄存器组有几组?上电复位后单片机用的是哪一组?为什么只能有一组是可用的呢,其它几组干什么去了?工作寄存器组的存储单元呢?单片机是怎么识别当前用的是哪一组?为什么要有好几组工作寄存器呢?
告诉你,是4组,分别是0,、1、2、3;上电复位后单片机用的是第0组;因为汇编指令里只有一个R0、R1、R2、R3、R4、R5、R6、R7,你要是往R0中存数据,只能是一个单元,所以是一组,其它几组呢,让它们闲着,等需要用的时候切过去;4组工作寄存器,每组8个单元,共32个单元,从片内RAM00H开始到1FH,自己算算,32个单元;在SFR(特殊功能寄存器)中有个PSW(程序状态字)的寄存器,它里面有两个位叫RS0、RS1,00、01、10、11组合,明白?上电复位后PSW要被清零的,就是00组合,他就是第0组工作寄存器的识别信号,明白?为什么要有好几组工作寄存器呢?那是为了程序调用的,发生子程序调用,保护主程序的工作状态,你要给子程序重新设一组工作寄存器,当然,你要是用不到工作寄存器,不切换也行,怎么切换呢?这你不会不知道了吧,给psw寄存器送个值把RS0、RS1的二进制数改了不就行了?
够明白的了吧?再要是不知道就看书去,太丢人了
单片机编程的一般思路及步骤是怎么样的
先考虑外围硬件结构及需求(输入输出,AD等),然后选择合适的单片机,再根据功能进行编程,如果对单片机编程不是很熟悉,建议先买一块单片机开发板进行学习