求这个单片机题目的答案,基于51单片机,要求用c语言编程并在开发板上实现。来大神

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求这个单片机题目的答案,基于51单片机,要求用c语言编程并在开发板上实现。来大神相关的知识,希望对你有一定的参考价值。

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P1^0;
//延时
void DelayMS(uint ms)

uchar
i;
while(ms--)
for(i=0;i<120;i++);

//向串口发送字符
void Putc_to_SerialPort(uchar c)

SBUF=c;
while(TI==0);
TI=0;

//主程序
void main()

uchar
Operation_No=0;
SCON=0x40; //串口模式1
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
while(1)

if(K1==0) //按下K1时选择操作代码0,1,2,3

while(K1==0);
Operation_No=(Operation_No+1)%2;

Putc_to_SerialPort(\'A\'+Operation_No);
DelayMS(100);



//乙机程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num=0;
sfr LED=P0;
//延时
void DelayMS(uint ms)

uchari;
while(ms--)for(i=0;i<120;i++);

void t0isr() interrupt 1

TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num>=20)

num=0;
LED=~LED;


//主程序
void main()

SCON=0x50; //串口模式1,允许接收
TMOD=0x21; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率9600
TL1=0xfd;
RI=0;
TR1=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
LED=0xff;
while(1)

if(RI) //收到则

RI=0;
switch(SBUF)//根据所收到的不同命令字符完成不同动作

case\'A\': TR0=1;break; //LED闪烁
case\'B\': LED=0xff;TR0=0;break; //LED灭


DelayMS(100);

参考技术A 你好!那你要发一下开发板的原理图 参考技术B 俺能够搞定.

急求一道c语言编程的答案!!时间急迫!!快快!!

下面10组题目中任选其一完成。【难度系数:10】

1. 文件压缩及解压缩程序。
题目:设计一种压缩格式的压缩及解压缩程序。
提示:调用已有的压缩及解压缩函数库实现。
参考:下面格式选择一种实现
CAB格式:libmspack,http://www.kyz.uklinux.net/libmspack/
ZIP格式:http://www.zlib.net/,ZLIB Compression Library (PKZIP/GZIP Compression)
UNRAR:http://www.rarlab.com/rar_add.htm

2. 数据加密程序
题目:编写一种加密算法的程序
提示:调用已有的加密函数库或利用算法原理实现。http://www.cryptopp.com/
参考:下面算法选择一种实现
已知的加密算法有许多种,例如:RC6, MARS, Rijndael, Twofish, Serpent, IDEA, DES, Triple DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, TEA, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square, CBC padded, CBC ciphertext stealing (CTS), CFB, OFB, counter mode, ARC4, SEAL, WAKE, Sapphire, BlumBlumShub, RSA, DSA, ElGamal, Nyberg-Rueppel (NR), BlumGoldwasser, Rabin, Rabin-Williams (RW), LUC, LUCELG, Elliptic Curve Cryptosystems, PKCS#1 v2.0, OAEP, PSSR, IEEE P1363 EMSA2, Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, SHA-1, MD2, MD5, HAVAL, RIPEMD-160, Tiger, MD5-MAC, HMAC, XOR-MAC, CBC-MAC, DMAC, Luby-Rackoff, MDC, ANSI X9.17 appendix C, PGP's RandPool

3. 位校验程序
题目:编写数据通信中位校验程序
参考:下面方法选择一种实现
位校验方法有:CRC16、CRC32、CRC8等

4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法

5. 排序算法程序
题目:编写七种排序算法的演示程序
快速排序;
插入排序;
选择排序;
冒泡排序;
堆排序;
归并排序;
基数排序;

6. 高精度计算
题目:高精度计算是指位数较长(超出C语言数据类型范围)的计算问题。
参考:下面要求选择一种实现
高精度加法
高精度减法
高精度乘以低精度
高精度乘以高精度
高精度除以低精度
高精度除以高精度

7. 查找算法
题目:编写查找算法的演示程序
参考:下面算法选择一种实现
顺序查找
折半查找
树形查找

8. 数据结构相关算法
题目:编写链表处理程序
参考:
链表的定位函数
单链表的插入操作
单链表的删除操作
双链表的插入操作(插入新结点q)
双链表的删除操作

9. 用链表实现有序线性表
题目:用链表实现有序线性表
参考:实现的功能
(1)有序线性表的元素是按值从小到大的顺序排列的。本题要求用带表头结点的单链表实现有序线性表。
(2)用户界面要求设计为菜单方式。程序运行后,显示如下功能菜单:
1. 置空表
2. 插入
3. 删除
4. 查找
5. 输出
0. 退出

10. ACM/ICPC试题
题目:编写http://acm.uva.es或http://icpc.baylor.edu/icpc/上的ACM问题集程序
参考:试题自选,要求英文试题内容,全英文程序摘要、基本结构及算法讲解。

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
const int MAX_SIZE=100;
void partition1(int A[],int n,int first,int last,int &mid)//划分

int i=first,j=last,x=A[i];
while(i<j)

while(i<j&&A[j]%3!=0)
j--;
if(i<j)

A[i]=A[j];i++;

while(i<j&&A[i]%3==0)
i++;
if(i<j)

A[j]=A[i];
j--;


A[i]=x;
mid=i;

void partition2(int A[],int n,int first,int last,int &mid)//划分

int i=first,j=last,x=A[i];
while(i<j)

while(i<j&&A[j]%3!=1)
j--;
if(i<j)

A[i]=A[j];i++;

while(i<j&&A[i]%3==1)
i++;
if(i<j)

A[j]=A[i];
j--;


A[i]=x;
mid=i;

void QuickSort(int A[],int n,int first,int last)//快速排序

int middle;
if(first<last)

partition1(A,n,first,last,middle);
partition2(A,n,middle+1,last,middle);


void display(int A[],int n)

int i=0;
for(i=0;i<n;i++)
cout<<A[i]<<" ";
cout<<endl;

int main()

int array[MAX_SIZE],i=0,n=1;
srand(time(0));
cout<<"提示:本程序是将一个整型数组调整为这样的数组:所有3的倍数在左边,所有除以 "<<endl;
cout<<"3余1的数放在中间,而所有除以3余2的数放在最右边.要求算法的时间尽可能少. "<<endl;
cout<<endl<<"数组中元素的值在1~n之间变化,请输入n的值:";
cin>>n;
for(i=0;i<MAX_SIZE;i++) //插入随机数
array[i]=rand()%n;
cout<<"排序前:"<<endl;
display(array,MAX_SIZE);
QuickSort(array,MAX_SIZE,0,MAX_SIZE-1);
cout<<"排序后:"<<endl;
display(array,MAX_SIZE);
system("PAUSE");
return 0;

快速排序
参考技术A 4. 常用算法演示程序
题目:编写常用算法的演示程序
参考:下面算法选择一种实现
矩阵旋转算法
Prim算法
拷贝链表的O(n)算法
随机算法
大数阶乘源码
格雷码算法
算术表达式的计算
寻找链表中间节点算法
模式匹配的KMP算法
最小堆/哈希表/二叉树/平衡二叉树/红黑树
最小生成树
Kruskal算法:(贪心)
最短路径Dijkstra 算法本回答被提问者采纳
参考技术B 问问题的该不会是。。。。xgd的吧。。。
你够可以的~~~不想自己做还搜难度系数最大的。。。

自己做个数学型的就行了呗。。那些里有特简单的。
参考技术C 第八个是最简单的,看看书呗~唉数据结构重修- -

以上是关于求这个单片机题目的答案,基于51单片机,要求用c语言编程并在开发板上实现。来大神的主要内容,如果未能解决你的问题,请参考以下文章

基于80C51单片机,编写电子时钟,要求有电路图、PCB图和代码(C语言或者VB)

单片机简易计算器的设计要求用2*8矩阵键盘,程序如下,求大神把下面4*4键盘程序改成2*8的,可追加分数

求。用89C51单片机设计4*4矩阵式键盘计算器程序

51单片机运用can总线的通信协议 急!!!!!!!!!!

跪求基于MCS-51单片机的旅馆房价电子报价系统设计——软件部分 的文献综述,毕业论文

用定时器实现10s秒表的计时功能,精确到小数点后一位,即能够有0.1s显示,有开始,暂停,清零的功能(C语