-
不用位定义,异或结果为一个字节,如果位定义,编译汇编后使用setb,clr操作位。
所以你现在不用位定义,使用p1异或某一位时,是字节运算,把p1的其它位屏蔽掉,否则取反没什么
意义。
[ 本帖最后由 lalahu 于 2011-11-12 17:34 编辑 ]
-
试试加个括号(P1^1)==0,优先级问题
-
很好的创意啊
-
可以自己用proteus自己仿真一下:)
-
重在参与:)
-
你的串口电脑自己带的还是USB转串口。
1是可能驱动没装好
2是已经打开一个
-
:Sad:
-
原帖由 zw357234798 于 2011-10-6 11:56 发表 首先很感谢eeworld给了我这个平台,展示我学51的历程。同时也给所有的坛友送一句晚来的祝福:国庆快乐!为了解除大家对密密麻麻文字的产生厌倦,我先用流程图的形式说下学51的回忆73679我学51是从一个闪烁的LED灯引起 ...
这个初中就开始做项目啊,我初中还不知电脑是什么,差距啊。
-
经验不错啊,尽量在这方面找啊,要不再想转回来就有点难了。
-
写写自己过去的东西。
在大学
初接触51这个词记得还是大二的时候,记得老师上课讲的是51汇编,当时老师可能对这个也没搞懂,迷迷糊糊听完,回想做实验就是连接几根线,记得老师说程序已经在ROM里了,上电后自动运行,看见几个灯在闪,这就是我的第一个交通灯试验。学完连单片机长的什么样都不记得,当时根本没在意板子上哪个是单片机,因为当时连晶振,电阻。电容都不认识,回想自己的大学,只是接触了一些概念,真才实学什么都没有。真正接触单片机是在大四,而这一段时间又是很短,那就是凌阳的单片机大赛。因为当时想考研,没大把单片机竞赛放在重要的位置,最后什么都失败了。但这时对单片机理解的进步就是看见活的了,呵呵,就是知道长的啥样子,还有个编译器,还可以用C语言写程序。通过下载线可以下载到板子上去,仅仅如此,不怕大家笑话,我这个理解单片机的水平已经在我们班里算得着了的,别人更是对单片机更是,哎不说了。我觉得原因有几个:一是学校信息比较闭塞,周围没有什么高科技企业来影响学校,二是自己没有什么目标规划,老师学校没什么建议,说真的老师水平很低,记得一位老师说过,教你们某某老师学PLC一月就会了,然后教我们。。。我真的很无语。三是自己的水平很差自己没有感觉到,倒是因为自己成绩还好点,就沾沾自喜,想想自己真是不知天高地厚。走出社会,会付出代价的。
初入社会
那一年,此处省略n个字。我来到深圳,刚来这里对我的冲击很大,很不适应这里的环境,投了无数的简历,没一个回复。简历上除了得过奖学金之外,没有其他什么东西,我真的不知道该怎么办,我到底怎么办。。。。
又入大学
我又重新捡起考研的书。在深圳重新考一次。来过深圳的人都知道,刚开始没钱,自己住的都是很“简朴“的房子,自己没什么收入,还是借朋友的钱度日,还好,我考上了。考上研究生,自己有一定的目标。和导师商量把我的方向定位嵌入式方向,又重新拿起51的书看起来,但是还只是在理论,过程中下载一个proteus练习,不知什么时候突然好像有点感觉了。好的机会来了,导师把我安排到一个公司实习,在这里,我的技术提升的很快。虽然一开始就是焊板子,修修坏的电路板,但是觉得越来越有感觉,平时下班后我都会自己会呆几个小时,利用公司资源学习。感谢带我的段经理,还有在公司实习的我的师兄彭、张两位,还有黄同学,他们比我来公司早一年,他们也不厌其烦的回答我的问题,渐渐我有了进步,段经理给了我机会做一些小的项目。到现在我已经工作了,虽然个人原因,离开了那个公司。现在我很庆幸学到了很多东西,我有一点悲哀,这些东西本应该在大学完成。
我的感慨
对于大学生来说,成绩并不是最重要的,重要的是你自己要规划好自己的目标。找一个自己感觉比较成功的师兄,讨点经验,沟通很重要。单片机都差不多,学精一个,其他的上手都很快。不要一味追求高科技技术,又学linux又学ucos,先打好基础。学好51,只要不跑操作系统,其他的一天可以上手了。唧唧歪歪毫无逻辑的说了这么多,其实还有很多想说的,一下不知怎么说了,先到这儿吧。如果对我说的有什么开发,欢迎留言交流一下。
[ 本帖最后由 lalahu 于 2011-10-4 17:03 编辑 ]
-
应该叫定义一个数组
const uchar pagetxt[][]= { {"1.直流电压检测","2.数字时钟显示","3.数字时钟显示","4.数字时钟显示"},
{"5.直流电压检55","6.数字时钟显66","7.数字时钟显77","8.数字时钟显88"},
{"9.直流电压检99","10数字时钟显10","11数字时钟显11","12数字时钟显12"},
{"13直流电压检13","14数字时钟显14","15数字时钟显15","16数字时钟显16"} };
直接换成这样也可以啊,const uchar *pagetxt[15]={};
这样pagetxt[0]="1.直流电压检测";
[ 本帖最后由 lalahu 于 2011-9-24 22:42 编辑 ]
-
那做电动车的企业是不是不错!
等待吧!!!
-
编程能力还觉得与对系统的熟悉度有很大的关系。
对系统越加熟悉,编程越好。
-
我就不客气了:)
-
谢谢啦
-
我们知道,8051具有“读锁存器”与“读引脚”两种能力。
单片机在执行从端口的单个位输入数据的指令(例如MOV C,P1.0)时,它需要读取引脚上的数据。此时,端口锁存器必须置为‘1’,否则,输出场效应管导通,回拉低引脚上的高输出电平。系统复位时,会把所有锁存器置‘1’,然后可以直接使用端口引脚作为输入而无需再明确设置端口锁存器。但是,如果端口锁存器被清零(如CLR P1.0),就不能再把该端口直接作为输入口使用,除非先把对应的锁存器置为‘1’(如 SETB P1.0)。
而在引脚负载很大的情况(如驱动晶体管)下,在执行“读——改——写”一类的指令(如CPL P1.0)时,需要从锁存器中读取数据,以免错误地判断引脚电平。
-
端口用一个上拉电阻,0就是设置端口为0,1就是设置端口开漏,这时被上拉电阻拉高为1.
有的端口内部有上拉,可以设置为推挽输出,就不必加上拉电阻。0就是设置端口为0,1就是设置为1.
-
刚下载了楼主以前传的控制方面的资料。
谢谢分享,楼主有建模实例的书籍不?
-
不错的资料,谢谢楼主:)
-
:) .sesee