导航:首页 > 编程语言 > 单片机编程竞赛

单片机编程竞赛

发布时间:2023-02-07 08:21:48

单片机编程题求助!!

太多了吧,这点分还不够辛苦钱。先做一个吧。
第一个:
MOV R0,#30H
MOV B,#0
LP:
MOV A,@R0

CJNE A,B,LP1

LP1:
JC,LP2

MOV B,A

LP2:
INC R0

CJNE R0,#3AH,LP

MOV A,B

RET

Ⅱ 单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以

下列程序已经调好,按键显示电路可见:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/ef086222268d4f4eac34de59.html
//单片机:使用51系列兼容的即可;
//4×4矩阵键盘:接在P1口;
//两位数码显示器: P0口输出七段码,P2口输出位选码。
/========================================
//C语言程序如下。
/*************************************************************
* 文件名: KEY_LED.c
* 功能 : 对4×4矩阵键盘进行输出,在数码管后两位显示按键值。
**************************************************************/
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar code table[10] = {0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
uchar sec, t_50ms;
/**************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***************************************************************/
void Delay_1ms(uint x)
{
uint i;
uchar j;
for(i = 0; i < x; i++) for(j = 0; j <= 148; j++);
}
/**************************************************************
* 名称: Display(uchar k)
* 功能: 将参数分成十位、个位分别显示
* 输入: k (键盘数值)
* 输出: P0口输出七段码,P2口输出位选码
***************************************************************/
void Display(uchar k)
{
P2 = 0; //消隐
P0 = table[k / 10];
P2 = 0x02; Delay_1ms(5); //显示5ms十位
P2 = 0; //消隐
P0 = table[k % 10];
P2 = 0x01; Delay_1ms(5); //显示5ms个位
}
/**************************************************************
* 名称: Keyscan()
* 功能: P1外接4×4按键, 按照扫描法读出键值
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar Keyscan(void)
{
uchar i, j, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f};
for(j = 0; j < 4; j++) { //循环四次
P1 = Buffer[j]; //在P1高四位分别输出一个低电平
temp = 0x01; //计划先判断P1.0位
for(i = 0; i < 4; i++) { //循环四次
if(!(P1 & temp)) //从P1低四位,截取1位
return (i + j * 4); //返回取得的按键值
temp <<= 1; //判断的位,左移一位
} }
return 16; //判断结束,没有键按下,返回16
} //呵呵,实质性的语句不过8行,就是这么简练!
/**************************************************************
* 名称: GetKey()
* 功能: 读出按键、消抖、等待按键释放
* 输出: 按键值0~15/如无键按下, 返回16
***************************************************************/
uchar GetKey(void)
{
uchar Key_Temp1, Key_Temp2; //两次读出的键值
P1 = 0xff;
Key_Temp1 = Keyscan(); //先读入按键
if(Key_Temp1 == 16) return 16; //没有键按下,返回16
Display(sec); //用显示代替延时
Key_Temp2 = Keyscan(); //再读一次按键
if(Key_Temp1 != Key_Temp2) return 16; //不同,返回16
while(Keyscan() < 16) //等待按键释放
Display(sec); //等待期间显示
return Key_Temp1;
}
/**************************************************************
* 名称 : Main()
* 功能 : 主函数
***************************************************************/
void Main(void)
{
uchar Key_Value; //读出的键值
sec = 0;
TMOD = 0x01;
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
TR0 = 1;
ET0 = 1;
EA = 1;
while(1) {
Display(sec); //显示
if (GetKey() == 10) {
TR0 = 0;
while (TR0 == 0) {
Display(sec); //显示
Key_Value = GetKey();
if (Key_Value < 10) {
sec %= 10;
sec = sec * 10 + Key_Value;
}
if (Key_Value == 10) TR0 = 1;
} } }
}
/**************************************************************
* 名称 : T0_INT()
* 功能 : T0中断函数
***************************************************************/
void T0_INT() interrupt 1
{
TH1 = (65536-50000)/256;
TL1 = (65536-50000)%256;
t_50ms++;
if(t_50ms >= 20) {
t_50ms = 0;
sec++;
sec %= 60;
}
}
/*************************************************************/

Ⅲ 蓝桥杯的单片机比赛难不难啊,我大一的,被拉去参加了,好担心😞

不用担心的,看看别人是怎么学习单片机的,加油。

最近论坛上发了一个连载帖子——吴鉴鹰单片机实战项目精讲,因此受到不少网友的关注,在这里吴鉴谢谢各位网友的支持、关心和信任。
在帖子中留了几个群号,有两千多读者加了群,通过QQ向我询问了很多问题,如果在工作不是太忙的时候我看到了就会回答,但是有时候做项目太忙就没时间解答。
为此,在这里应群内成员以及一些网友的要求,专门写一篇文章来针对这些问题做一个总结。希望能为大家的疑惑有一点点帮助就足以。不足之处,也希望大家客观指出,君子和而不同。

1、学习单片机有用吗?
有很多初学者有这样的困惑,单片机初学者感觉入门很难,学着学着,就会产生这样的疑问——自己辛辛苦苦学习单片机,将来有用吗?
单片机只是一个工具,重要的还是思想,有了自己的想法,电子行业地域辽阔,随便你闯。单片机这个切入点入手还是不错的,可以让你尽快进入电子殿堂的大门,如果你还在上学,不要眼睛里面只盯着暂时的薪水,哪怕是毕业两三年的也一样。重要的是掌握程度和对技术的理解程度,有句话叫“水到渠成”,到时候再去研究工资的事情也不晚。

2、学习嵌入式编程有必要从51单片机开始吗?
我原本来在读大学的时候,有很多同学听说学习ARM很牛逼,于是就跑到图书馆借了一两本关于ARM的书,学一两天后发现跟自己想的不太像,于是学着学着就慢慢放弃了。所以我总结一下,与其迈很大的步子,不如放慢脚步一步步走。从最基本的做起,一步步走,等单片机学会之后再进行像ARM,DSP之类高端处理器的运用,也就能得心应手了,如果想一口吃成一个胖子,只怕最后没胖起来,倒把自己给噎死了!

3、会用高端处理器就牛了吗?
不少网友问我:是不是学会了ARM、嵌入式操作系统就会很牛?是不是单片机就是运用在低档产品上,ARM做出来的产品就高端了。
首先,从本质上说,是同一类东西,都是嵌入式应用方面的主力。十八般兵器,没有优劣之分,只是在乎持兵器的人修为高低,当年解放军凭借小米加步枪不也取得了抗战胜利。
微处理器,单片机、DSP、FPGA、ARM,每一种都有自己的侧重点,都具备自己的优势和劣势。
单片机:技术比较成熟,运用在工控领域比较多,但进行嵌入式应用显得太庞大,因而派生出ARM单片机进行高端应用,可以进行操作系统的移植,但是现在一些高端单片机也可以移植操作系统,单片机跟ARM并没有什么本质的区别。
DSP:是数据处理的缩写。也可以做控制运用,它的优势是运算,主要用在运算量大的领域,如数字信号处理,图像处理,视屏处理,导弹雷达上也等等。如果要用的好,需要学会很多高深的算法,需要有较强的数学功底。
FPGA:可编程逻辑阵列的缩写。实际上就是做一个芯片,用软件实现它的内部连接,达到用软件的方法实现硬件的目标。是用硬件实现的一种方法。是早期单片机(功能简单的逻辑应用)的现代实现方法。

总结:一个嵌入式软件工程师,其实核心竞争力不是你会运用什么芯片,当你会了一两种以后,再学其他的,就会觉得很容易了。一个真正的有竞争力的工程师,应该是具备良好的编程习惯,编程思路,还应该具备扎实的数学功底。只有把握核心的东西,才能走的更远。

4、单片机行业技术研发有前途吗?
这也是初学者最为关心的一个话题,单片机行业的技术研发将来前途如何?
着名的高尔夫球手,老虎伍兹说过一句话:我只需成为高尔夫数一数二的高手,钱自然会追着我来。
单片机技术研发,也就是一个类型的职业岗位,同样叫做“单片机工程师”,能力、经验、学历,参差不齐,因此待遇肯定也不尽相同。
高待遇者,年薪数百万也有,低收入者,养家糊口都难。
只有倒闭的企业,没有倒闭的行业!
不是行业没有前景,只能反思自己为何没有足够的优秀。

5、单片机技术研发太苦太累,值得去坚持吗?
在论坛里看到很多人在抱怨:现在电子行业的研发做起来太累,待遇又不是很好,感觉没什么出路。
既然我们选择了单片机行业,就坚持做下去,不要轻信别人讲的:单片机研发工程师没有前途,太苦太累。
学好单片机你至少可以找一份技术性的工作,就算目前累一点,至少你可以看到希望,随着自己经验的积累,未来的路会越走越宽!至少可以坐在办公室里面,有自由的时间可以支配。
你知道那种专业课没学好,只能去车间做一线工人的感觉吗?坐在车间里像一个机器人一样每天重复同样的工作吗?你喜欢过那种一点自由都没有,在流水线上忙碌着,连上厕所时间都没有的工作吗?我相信没有人喜欢!
所有不要被一些工作了几年的工程师的话语所迷惑,说做技术很苦,拿的钱又少,当你真正有一天想去做技术,发现原来因为自己缺少知识的积累,没有公司愿意要你。

简单地分享了自己对单片机领域一些问题的看法,欢迎同行积极分享自己的心得,能让更多初学者少走弯路,摆正心态进行单片机的学习。

Ⅳ DP801单片机哪有卖的参加中学生智能控制单片机竞赛编程 用的

巨人总部有卖

Ⅳ 刚学单片机,为了8月底的电赛(国赛)做准备。想以后继续深造这方面,但不知道单片机这个方向有没有发展!

光搞单片机不行的,单片机其实就一个芯片,光会玩一块芯片能干什么,什么都做不了,而且是电子行业的低端,没有大的发展,面临着淘汰的驱势,不过仍然有很多地方需要用到单片机,在未来一段时间里仍然有活力。建议你想长远一点,可以先学单片机,然后再学ARM,从8位到32位发展,可以做软件,也可以做硬件,你上面说待遇比不上程序员,这也不一定的,看你做的深度了,如果纯粹搞单片机的程序的话显然没有太大的技术含量,代码一般不会超过万行,而做嵌入式ARM的程序员通常都是几十万行或几百万行的代码,我觉得做软件吃的是青春饭,一定岁数之后就做不了了,所以建议你学硬件,学习单片机也是要配合电路板的硬件写程序,如果你想学硬件的话那就要学很多了,模数电、FPGA/CPLD、电路CAD,等,硬件的知识需要积累,越老越吃香,对今后的职业发展帮助会大很多。如果你真的想学的话就要做好心理准备,这个行业不是那么简单的学的,会有很多困难,面对挑战与挫折才能取得进步,祝你成功。

Ⅵ 几道简单的单片机亮灯信号的编程题,谁来帮我看下我做得对不对

1.假定L1是最高位
loop:
movc a, @A+DPTR
MOV P0, A
CALL OS1…………LCALL OS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 10000H…………ORG 1000H
TABLE: DB 80H, 40H, 20H, 10H
08H, 04H, 02H, 01h
END

这样写也行
MOV A,#80H
LOOP:
MOV P0,A
LCALL OS1
RR A
DJNZ R7,LOOP
AJMP START
END

2.假定L1是最低位 ,细节修改后如下
ORG 0040H
MOV DPTR,#TABLE
START:
MOV A, #00H
MOV R7, #09H
LOOP:
MOVC A,@ A+DPTR
MOV P0 ,A
LCALL DS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 1000H
TABLE:DB 01H, 03H ,07H,
0FH, 1FH ,3FH,
7FH, 0FFH ,00H
END

3.细节修改如下
LOOP:
MOVC A, @A+DPTR
MOV P0 ,A
LCALL DS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 1000H
TABLE:
DB 81H ,0C3H
E7H ,0FFH
18H, 3CH
7EH, 0FFH, 00H
END

Ⅶ 蓝桥杯单片机比赛,会51单片机可以参加吗

蓝桥杯单片机比赛会51单片机是可以参蓝桥杯比赛的。

单片机设计与开发(本科组,高职高专组)需要具备模拟、数字电路,传感器及MCS51系列单片机的相关知识,常用仪器使用方面的知识,程序编译调试和下载软件使用方面的知识。每位选手只能参加其中一个组别的竞赛。

(7)单片机编程竞赛扩展阅读

蓝桥杯比赛时长

软件比赛:4小时,全程封闭。

电子类比赛:5小时,全程封闭。

蓝桥杯比赛形式

软件类:全程机考。

选手机器通过局域网连接到各个分赛区的竞赛服务器。

选手答题过程中无法访问互联网,也不允许使用本机以外的资源(如USB连接)。

以“服务器-浏览器”方式发放试题、回收选手作答。

电子类:动手操作

注意事项

1、选手必须符合参赛资格,不得弄虚作假。资格审查中一旦发现问题,则取消其报名资格;竞赛过程中发现问题,则取消竞赛资格;竞赛后发现问题,则取消竞赛成绩,收回获奖证书及奖品等,并在大赛官网上公示。

2、参赛选手应遵守竞赛规则,遵守赛场纪律,服从大赛组委会的指挥和安排,爱护竞赛赛场地的设备。

Ⅷ 基于AT89S52单片机的比赛记分牌设计,求汇编编程!

  1. 额,真心简单。大半夜了,没心情写。况且一楼二楼都有意给你答案,我就不越俎代庖了哈

Ⅸ MCS-51单片机的编程题:已知系统晶振频率为12MHZ,采用定时器T0的方式1,请编程实现1s的延时。

; ORG 0000H SJMP START ORG 0001BH MOV TH1, #(65536 - 50000) / 256 MOV TL1, #LOW(65536 - 50000) CPL P1.0 RETISTART: MOV TMOD, #10H MOV TH1, #(65536 - 50000) / 256 MOV TL1, #LOW(65536 - 50000) SETB TR1 MOV IE, #88H SJMP $END

阅读全文

与单片机编程竞赛相关的资料

热点内容
唐古拉优选app叫什么名字 浏览:37
打开一个文件夹为什么接着就退出 浏览:49
女主高中就怀孕的小说 浏览:10
app为什么必须要获取手机号码 浏览:58
实用的网页编程 浏览:424
宝鸡小程序定制开发源码 浏览:432
十大军事历史穿越小说 浏览:56
爱的共享韩 浏览:179
中文字幕推荐排行榜 浏览:589
李采镡所有电影 浏览:348
前度2未删减 浏览:866
日本一部关于平行时空的电影 浏览:346
伤寒论原文pdf 浏览:29
剧情肉的电影 浏览:803
下行 电影在线观看 浏览:786
欧美大尺度男同电影 浏览:985
张学友最后大佬电影 浏览:777
心理罪中廖亚凡怀了孩子 浏览:844
服务器如何开权限设置密码 浏览:271
申请资料填写小程序源码 浏览:177