单片机编程器,编程实现(R1R2) = #1280+#3490H

C++全排列递归实现
设计一个程序生成n个元素{r1,r2,…,rn}的全排列。如n=3时,输出为:r1r2r3,r3r2r1,r1r3r2,r2r1r3,r2r3r1,r3r1r2。
全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。
1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是其本身,从而得到以上结果。
2、再看后三个数3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六组数。即以3开头的和4,5的全排列的组合、以4开头的和3,5的全排列的组合和以5开头的和3,4的全排列的组合.从而可以推断,设一组数p = {r1, r2, r3, ... ,rn}, 全排列为perm(p),pn = p - {rn}。因此perm(p) = r1perm(p1), r2perm(p2), r3perm(p3), ... , rnperm(pn)。当n = 1时perm(p} = r1。
为了更容易理解,将整组数中的所有的数分别与第一个数交换,这样就总是在处理后n-1个数的全排列。
具体的实现方法如下:
#include &iostream&
int n = 0;
void swap(char *a ,char *b)
void perm(char list[],int k, int m )
for(i = 0 ; i &= i++)
cout&&"r"&&list[i];
cout&&"/n";
for(i = i &=m;i++)
swap(&list[k],&list[i]);
perm(list,k+1,m);
swap(&list[k],&list[i]);
int main()
char list[] ="12345";
perm(list,0,4);
cout&&"total:"&&n&&"/n";
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长! 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
AD0809中文资料和单片机电路及程序
下载积分:1500
内容提示:AD0809中文资料和单片机电路及程序
文档格式:DOC|
浏览次数:121|
上传日期: 16:02:07|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
AD0809中文资料和单片机电路及程序
关注微信公众号单片机 STC89C54_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机 STC89C54
&&单片机 STC89C54
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩157页未读,
定制HR最喜欢的简历
你可能喜欢led旋转显示的c语言编程,基于c51单片机40引脚_百度知道
led旋转显示的c语言编程,基于c51单片机40引脚
设计制作一个依靠直流电机转动扫描的显示字符、图形的LED显示屏,电机驱动线性LED扫描显示屏结构如下图所示:
基于P0和P3口,16个led
我有更好的答案
#include &reg52.h& //单片机头文件#include &led.h&sfr P4=0xe8;sbit KEY= P4 ^ 3; //红外感应 A04E/*********************************************************************************************字幕数组*********************************************************************************************/unsigned char code zimu[] = {// (取码:从上到下从左到右,纵向8位下高位 )//空格0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//&仙&, 0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x00,0x40,0x00,0x40,
0x00,0x40,0xFF,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0xF0,0xFF,0x00,0x00,0x00,0x00,//&剑&, 0x40,0x00,0x20,0x20,0x50,0x61,0x48,0x2E,0x44,0x20,0x43,0x2F,0x64,0x10,0x48,0x1C,
0x10,0x13,0x20,0x00,0xF8,0x0F,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,//&奇&, 0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E,0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12,
0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F,0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,//&侠&, 0x80,0x00,0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x81,0x08,0x41,0x28,0x21,0x48,0x11,
0x08,0x0D,0xFF,0x03,0x08,0x0D,0x48,0x11,0x2C,0x61,0x88,0xC1,0x00,0x41,0x00,0x00,//&传&, 0x80,0x00,0x40,0x00,0x20,0x00,0xF8,0xFF,0x47,0x00,0x48,0x00,0x48,0x02,0x48,0x0B,
0xC8,0x12,0x7F,0x62,0x48,0xD2,0x48,0x0A,0x4C,0x06,0x68,0x02,0x40,0x00,0x00,0x00,//&四&, 0x00,0x00,0xFC,0x7F,0x04,0x20,0x04,0x28,0x04,0x24,0xFC,0x23,0x04,0x20,0x04,0x20,
0x04,0x20,0xFC,0x21,0x04,0x22,0x04,0x22,0x04,0x22,0xFE,0x7F,0x04,0x00,0x00,0x00,//空格0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//&谪&, 0x40,0x00,0x42,0x00,0xCC,0x7F,0x00,0x20,0x04,0x10,0xE4,0xFF,0x24,0x01,0x2C,0x7D,
0x35,0x25,0xE6,0x27,0x34,0x25,0xAC,0x7D,0x24,0x81,0xF6,0x7F,0x24,0x00,0x00,0x00,//&仙&, 0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x00,0x40,0x00,0x40,
0x00,0x40,0xFF,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0xF0,0xFF,0x00,0x00,0x00,0x00,//空格0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//空格0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
/*********************************************************************************************函数名:LED显示用延时函数调 用:delay0();参 数:无返回值:无结 果:占用CPU方式延时500微秒时间备 注:晶振11.0592m/*********************************************************************************************/void delay0(void)
//误差 -0.46875us{
unsigned char a,b;
for(b=1;b&0;b--)
for(a=227;a&0;a--);}/*********************************************************************************************//*********************************************************************************************函数名:CPU延时函数调 用:delay1();参 数:无返回值:无结 果:占用CPU方式延时4000微秒时间备 注:晶振11.0592M/*********************************************************************************************/void delay1(void)
//误差 -0.us{
unsigned char b,c;
for(c=126;c&0;c--)
for(b=13;b&0;b--);}/*********************************************************************************************//*********************************************************************************************函数名:关闭所有LED灯(操作硬件)调 用:DISPLAY_OFF();参 数:无返回值:无结 果:所有LED灯熄灭备 注:/**********************************************************************************************/void DISPLAY_OFF (void){delay0();//显示停留P0 = 0P3 = 0}/**********************************************************************************************//*********************************************************************************************函数名:单帧数据送入显示(操作硬件)调 用:display(?,?);参 数:16位显示数据(下高位)(d:上面8位,e:下面8位)返回值:无结 果:点亮对应数据的LED灯备 注:/**********************************************************************************************/void display(unsigned char d,unsigned char e){ //第1列横向显示程序P3=~d;P0=~e;DISPLAY_OFF();} /*********************************************************************************************函数名:初始化程序调 用:init();参 数:无返回值:无结 果:IO接口全部置1/**********************************************************************************************/void init (void){P1 = 0 //初始IO接口状态P0 = 0P2 = 0P4 = 0}/**********************************************************************************************//*********************************************************************************************函数名:主函数调 用:无参 数:无返回值:无结 果:程序开始处,无限循环备 注:/**********************************************************************************************/void main (void){unsigned int c=0;//数据指针init();//初始程序while(1){
if(KEY== 0) {
while(KEY== 0);
for(a=0;a&160;a++){
if(c&1279)c=c-1280;
display(tab1[c],tab1[c+1]);
c=c+2;//产生显示一列移位
if(c&316)c=c+964; //防止指针溢出c=c+并实现字幕首尾无缝对接
else c=c-316;
//调节滚动速度,转一圈产生384-376=8列位移
}tab1[]和tab_love[]放在一个点H文件里面
里面是去摸的数组
同样的硬件
采纳率:37%
把要求说清楚,我看一下
需要一个C语言的程序,硬件已经解决,芯片C51,16个led,需要显示出字符,用p0和p3口控制led
为您推荐:
其他类似问题
您可能关注的内容
c语言编程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。ATMEGA1280 简单的串口程序,发送数据不正常(没分了,各位高抬贵手!!!) - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
ATMEGA1280 简单的串口程序,发送数据不正常(没分了,各位高抬贵手!!!)
14:30:09  
以下程序,在ATMEGA128 中输出正常,但是稍做修改,
在ATMEGA1280 中输出不正常,输出内容为
EUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUR
EUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUREUR
所用的串口芯片及电路图完全一样.
#define TESTMODE& &1&&// 0:atmega128& && &1:atmega1280&&
#if (TESTMODE == 0)
#include&&&iom128v.h& //atmega128
// #pragma interrupt_handler Uart0RxInterrupt:19&&//422 atmega128
#if (TESTMODE == 1)
#include&&&iom1280v.h&&&//atmega1280
// #pragma interrupt_handler Uart0RxInterrupt:26&&//422 atmega1280
#include&&&macros.h&
#include&&&string.h&
#include&&&stdio.h&
#include&&&math.h&
#define uchar unsigned char
#define uint unsigned int
#define mclk 7372800&&
uint baud=9600;
uchar Uart0RxHead=0,Uart0RxTail=0,Uart0Flag=0;
uchar Uart0RxTable[256];
void Uart0Init(void)//RS422
UCSR0B=0X00;
UCSR0A=0X00;
UCSR0C=0X06;
UBRR0H=(mclk/baud/16-1)/256;
UBRR0L=(mclk/baud/16-1)%256;
UCSR0B=(1&&TXEN0)|(1&&RXEN0)|(1&&RXCIE0);&&
SREG=BIT(7;
void Uart0SendByte(uchar data)
while(!(UCSR0A && (1&&TXC0)));
UCSR0A |= (1&&TXC0);& &
void Uart0Clear(void)
Uart0RxHead=Uart0RxTail=0;
void Delay(uint DlyTime)
&&while(DlyTime--);
void UartAllInit(void)
Uart0Init();
Uart0Clear();
void main(void)
PORTE=0x62;//,1)RS422,(2~6)DAC8512
DDRE=0xFE; //&&RS422(Tx:PE1,Rx:PE0)
Delay(2000);
UartAllInit();
&&Uart0SendByte('A');
10:28:31  
有没有可能是我硬件的问题,这块板只是一块调试用的板,上面有2个晶振,但是可以通过去掉相对应的电阻去控制使用哪个晶振,所以晶振的两条线是不一样长的。但是显示屏的程序可以正常显示。
麻烦各位大牛能否指点一二。
10:29:16  
IMG_639.jpg (436.18 KB, 下载次数: 0)
10:28 上传
11:46:22  
{:16:}{:16:}
等待验证会员
21:15:58  
您好 我也是初学者遇到了同样的问题 请问楼主的问题解决了吗?
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司

我要回帖

更多关于 单片机c语言编程300例 的文章

 

随机推荐