单片机编程入门问题

(hagDJdocker)
(sunshinee24)
(吃榴莲不吐皮)
第三方登录:单片机编程题(经典)_中华文本库
第1页/共3页
一、编程题(每小题4分,共20分)
1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。
2.请使用位操作指令实现下列逻辑操作:
BIT=(10H∨P1.0)∧(11H∨CY)
3.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。
4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位
5.将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。
编程题(每小题4分,共20分)
0,1,4,9,16
25,36,49,64,81
RESx=0,Y=0
POSIx&0,Y=1
A,#0FFHx&0,Y=-1
@R0,A存低字节BCD
@R0,A存高字节BCD
DPTR,#8000H
A,@DPTR取数
第1页/共3页
寻找更多 ""单片机编程小问题总结
11:29:12来源: diangon 关键字:&&&&
1、时间太长,记不清在哪个项目里遇到的,指向code区的也要加 code 关键字声明。
比如 unsigned char code arr[30]; 数组,要用指针指向它,要把指针也声明成 unsigned charcode*p;
后来使用发现其它很多地方使用是不需要这样声明的,只要 unsigned char *p;就行了,但是清楚地记得那次确实是要加 code 关键字声明才可以的。
2、在51里面,位变量貌似是有限的。
如果要用一个布尔型作为标识变量,为了节省控件可以用 bit 型变量,但是在DRS1000项目中遇到过一次用 bit 型变量出错,改为 unsigned char 型就OK了,那时定义的变量已经很多了,可能是把可以用bit寻址的存储区都用光了吧。
3、用机械开关触发INT中断时:
由于机械开关会震动,产生的电压会有毛刺,这些毛刺会多次触发中断。会造成多次触发的因素有两点:
(1 )开关按下时的震动。第一次低电平到来时会进入中断处理程序,之后就算这些震动在中断处理程序执行的过程中产生,即使进入中断处理程序后关掉了总中断,这些毛刺仍然会使中断标志位置位,会在结束中断处理程序结束后再次马上触发中断处理程序。
(2 )开关释放时的震动。在第一次高电平到来时会退出中断处理程序,之后的毛刺会再次进入中断处理程序。
解决办法:
在中断处理程序的最后加一段低电平等待代码,等待低电平结束再延时5ms(为了消除开关释放时毛刺的干扰),5ms延时结束后再清除中断标志位(在中断处理程序执行的过程中可能已经再次触发了中断标志位)。代码如下:
[cpp] view plaincopyvoid int0() interrupt 0
/*Do something*/
while(rollRA==0);//等待低电平结束
delay5(1);//等待按键释放的毛刺结束
IE0=0; //清除中断标志位,以防再次进入中断
4、对于15系列单片机,在使用串口时必须要指定AUXR寄存器的值,否则程序无**常运行。
这个情况遇到过很多次,15系列单片机只要使用到串口就一定要知名AUXR寄存器的值,不像12系列那样可以把这个寄存器忽略。
在使用15系列单片机时养成了一个习惯:main 函数的第一句让 AUXR=0; ,后面串口在根据需要对其进行初始化。
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
网友正在学习IC视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
STM32学习之路-LCD(3)
STM32学习之路-LCD(3)
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。单片机编程问题_百度知道
单片机编程问题
单片机编程问题一个工程有2个.C文件怎么在第一个.c里调用第二个.c的函数并写入数据
我有更好的答案
这是标准的C语言写法。 1. 不管有多少个函数,C总是从main()主函数开始执行。 2. 至于你说的一个工程里面包括多个.c的文件,其实每个.c的文件里就是一系列函数而已。如果你要使用这些函数的话你要在头文件里加入#include。比如我要用“init.c”这个文件,则头文件中除了#include&reg51.h&你还要加#include&init.c&然后如果在&init.c&中有一个函数&init()&我需要调用。我就要在main()函数之前作声明。(其实一般我们要调用一个函数,除非这个函数写在main()之前。否则我都要在main()之前做函数声明。比如在main()之前加上void init();)那么如果这个init();在其他文件中,改如何声明呢?我们一般可以做外部声明.extern init();就行了。 3. 其实说穿了,你的问题就是函数声明问题。如果前面加上正确的声明,你的编译应该能通过的。单片机也能按照你的要求工作了。顺便说一句,如果是外部文件的数据结构,如果要调用的话,也是做extern声明。如果还有不明白的地方你可以看看标准的c语言方面的书籍就能明白了。
采纳率:92%
为您推荐:
其他类似问题
您可能关注的内容
单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。已解决问题
单片机的编程
我现在从事的是灯光行业,经常看到那种灯光扫描出很好看到的图形出来,就是不知道它是怎么弄出来的,学的是电子,由于之前没接触过软件这块。
我想问的是哪个程序是用什么语言编的,要用到那些软件,我们用的IC是STC 89C52,还有烧录过的89C52能不能抄出来。
麻烦有知道人能相告,呵呵 谢谢啦啊~~~~~~~~~~~~~~ 问题补充:呵呵 我现在做的是激光灯,用的是那种扫描振镜的,调制了的激光经过扫描振镜就能看到很好的图形,其实我倒不是想抄人家的程序,现在想的就是自己能不能写这个,想往这个方向发展,想弄个硬软兼备。
浏览次数:603
用手机阿里扫一扫
最满意答案
1.单片机的编程软件有keil或者wave,都可以用c语言编写也可以汇编语言,c语言比较灵活,推荐入门使用c语言,市场上可以买到同时介绍c和汇编语言的单片机的书。2.你说的这种能扫描出图形的灯莫非是流水灯还是什么?流水灯的原理就是一排灯一个接着一个亮。LED的屏幕控制网上有很多资料可以参考。3.单片机编好程序之后需要仿真可以用proteus软件,具体可以看我的另一个回答。http://zhidao.baidu.com/question/.html4.51系列的单片机据说很容易破解,通过专门的软件应该可以把里面的程序提取出来。&
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok}

我要回帖

更多关于 单片机仿真器怎么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信