㈠ 单片机 8个LED灯随机闪烁怎么做
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。
㈡ 51单片机c语言编程子函数调用问题 程序功能是实现四个独立按键控制数码管四个位的段选来动态扫描
你的显示子程序的名称是:
void DigDispaly()
可是在主程序调用时,却写成了
DigDisplay();
比较一下,这两个一样吗,难道都不是你自己写的吗?
㈢ MCS-51单片机中断c语言或汇编编写完整程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPEXT0
ORG0030H
MAIN:
SETBEX0
SETBIT0
SETBEA
CLRP1.0
SJMP$
EXT0:
SETBP1.0
JNBP3.2,$
CLRP1.0
RETI
END
㈣ 如何用单片机设计一个类似打老鼠的装置
你指的是打地鼠的装置吧,给你思路,最简单的的就是用数个(数量自己定)带有LED的山陆开关,然后随机点亮其中一个LED然后延迟等待按李唯缓键,如果超过延迟时间或按键哪模错误那么判定失败否则返回继续,大概程序思路就是这样,自己练习写程序比较好,先自己试试做,遇到具体问题再来求助吧
㈤ 求教,用51单片机做打地鼠
把单片机绑在锤子上,,,做好了,打去吧。
㈥ 单片机一个按键如何同时控制两个C文件的程序执行。。打地鼠游戏的锤子和老鼠。。
先不说按键的事,就是单片机也不可能同时执行两个C程序。按普通的方法是实凯神袜现不了的。
这要模拟电脑的瞎档操作系统才行,即同时执行多个任务,即多个线程。
你这能跑操作系统吗?
实在不行,自己写个简单的切换系统,即两个程序分时来执行,可以用定时方法,一个盯激程序执行一小段时间后,切换到另一个程序上。
真要写起来,有点难度。
㈦ 51单片机1按键切换4种不同状态的灯的c程序可以是正闪,反闪,多种间隔闪。
以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。
程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下按键时,通过判断状态值悄拦悉来切换不同的灯亮灭模式衡首。定启乎时器中断函数用来实现灯的闪烁,可根据需求自行调整闪烁频率。
编程不易,忘采纳
㈧ 51单片机与PC串口通信程序,求指导 ! 具体要求如下:
要求用什么语言?
------------------------------
网友“星心晨梦”的回答,是可以满足题目要求的。
我实验了,是成功的,没有任何错误。
楼主应该检查自己的电路、串口设置等等。
------------------------------
网友“星心晨梦”的回答,篇幅稍稍长了一些。
缩减一半就可以正常工作了,可读性更好一些。
建议看看下面的。
------------------------------
#include <AT89X51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//---------------------------------------------------
uchar idata trdata1[] = {
'W','E','L','C','O','M','E',' ','T','O',' ','C','H','I','N'蔽肆乱,'A','!',0x0d,0x0a,0x00};
uchar idata trdata2[] = {
'M','Y',' ','N','A','M','E',' ','I','S',' ','L','I','M','I','N','G',0x0d,0x0a,0x00};
uchar idata trdata3[] = {
'Y','I','N','G','Y','O','N','G','K','E','X','U','E','X','U','E','Y','U','A','N',0x0d,0x0a,0x00};
uchar RxBuf[5], Rx_p, Rx_i, TX_p, Tx_i;
//---------------------------------------------------
void UART_Init(void) //串口初始化
{
PCON = 0x00;
SCON = 0x50; //串口工作方式为1,允许接收.
TMOD = 0x20; // T1 定时方式2
TH1 = 0xfd; /雹消/波特率 9600bps @ fosc = 11.0592MHz
TL1 = 0xfd;
TR1 = 1; //启动T1
ES = 1; //开串口中断.
EA = 1; //开总中断.
}
//---------------------------------------------------
void main()
{
UART_Init();
Rx_p = 0;
Rx_p = 2;
while(1) {
if (Rx_p != 0) {
TX_p = Rx_p;//字符串1 2 3
Tx_i = 0; //字符指针.
Rx_p = 0; //清零.
Rx_i = 0;
TI = 1; //启动发送中断.
} }
}
//---------------------------------------------------
void Uart_INT(void) interrupt 4 //串口中断函数
{
uchar Tcv = 0;
if(RI) { //接收?.
RI = 0; //标志位清零.
RxBuf[Rx_i] = SBUF;
if((RxBuf[Rx_i - 1] == 'g') && (RxBuf[Rx_i] == 'o')) Rx_p = 1;
if((RxBuf[Rx_i - 2] == 'w') && (RxBuf[Rx_i - 1] == 'h'宏档) && (RxBuf[Rx_i] == 'o')) Rx_p = 2;
if((RxBuf[Rx_i - 3] == 'h') && (RxBuf[Rx_i - 2] == 'o') && (RxBuf[Rx_i - 1] == 'm') && (RxBuf[Rx_i] == 'e')) Rx_p = 3;
P1 = Rx_p; //在P1显示收到的信息.
Rx_i++;
Rx_i %= 5;
}
else {
TI = 0;
if (TX_p == 1) Tcv = trdata1[Tx_i]; //取来待发字符.
if (TX_p == 2) Tcv = trdata2[Tx_i];
if (TX_p == 3) Tcv = trdata3[Tx_i];
if (Tcv != 0) {SBUF = Tcv; Tx_i++;} //不是0就发送.
}
}
//---------------------------------------------------
㈨ 如何在51单片机开发板上烧写程序
1.在电脑中找到【STC-ISP】程序烧写软件,有不同版本,但用法基本一致。双击打开会出现下图中界面。
2.然后点击下图中箭头所指处,找到单片机型号STC89C52。然后,将51单片机开发板与电脑连接起来,初次连接时,会自动给电脑装一个驱动。
3.单片机与电脑连接成功后,点击下图中【扫描】按钮,扫描出单片机与电脑连接的那个端口号。然后,点击【打开程序文件】按钮。
4.在弹出的对话框中,选择刚刚编写的那个程序文件,点击【打开】按钮。
5.然后,点击图中的【厅搜下载/编程】按钮。
6.此时,给按下单片机开发板上的【电源开扮宏历关】给单片机上电。
7.程序烧写成功后,会出现下图所示界面。
8.此时,你会看到单绝宏片机开发板上,流水灯的第一个被点亮了。
㈩ 51单片机独立式按键程序
#include<reg52.h>
unsignedcharID;
sbitk1=P3^7;//定义按键端口
voiddelay()
{
TMOD=0x10;//定时器的工作方式
TH1=0xd8;
TL1=0xf0;
TR1=1;
while(!TF1);//这里错了,是定时器1
TF1=0;
}
voidmain()
{
while(1)
{
if(k1==0)
{
delay();//去抖动
if(k1==0)//检测按键确实按下,进行按键处理
{
ID++;
if(ID==0)
{
ID=0;
}
while(!k1);//这里错了,多余的加了==0
}
}
switch(ID)
{
case0:P1=0x3f;break;
case1:P1=0x06;break;
case2:P1=0x5b;break;
case3:P1=0x4f;break;
case4:P1=0x66;break;
case5:P1=0x6d;break;
case6:P1=0x7d;break;
case7:P1=0x07;break;
case8:P1=0x7f;break;
case9:P1=0x6f;break;
default:break;
}
}
}