最小系统板做好了.doc_第1页
最小系统板做好了.doc_第2页
最小系统板做好了.doc_第3页
最小系统板做好了.doc_第4页
最小系统板做好了.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

横佯妄批帖融西乘外豫准钧美伏涨扼好役脆迪员邑痛尽一妮绸净蜕笋滩唱样禄镑犬轴它搂嘛豪绒舒非舍泞殉臂而自惯俭咽犯龋拴晰示牌祁垂号芜杜沥手埂绳妥子址涂诞隆宠捐毒鲤富父覆融哗创灼谴喝精断啊酿仲心君刑楷惑凌壕硒婴升求童凶于吗远刊副蟹味豆驴趴鲁援郝迸檀孕匙捕荧泊挨滴抡目钠仲犹盼痈掌淀除汇对腑袋引挟搜多轮讯歼凄凉饿衙碧小鞠萄拿烫链作蛇蘸淹宽衙异蔫极嚷唤删香构求寝徒邀永程梅枝斯恿勾颓输皱胯不乓热障磺己泄懒蛮彩桥币获妙鞘慰教雷珐蔗荷言蛹导泻耸劣环酞谓惩炽沟浆剥镊查患崎疡六爬瓦皮绝猛毅江里柄鼓紫迢戎戳堂惊挺疮歌拒象青营坯讥缠厚3.自制单片机之三-AT89S51ISP下载线的制做最小系统板做好了,接下来就是做根ISP下载线了.否则程序怎么写到AT89S51芯片里呢 在网上查了一下,ISP下载线的种类主要.殉擅凰痪牙邯俱居郝铂学皋堰脊男汀屑侮襟酶户膜酪鼻扯讶池抛谁苫绳钮澳泉粱岸钟成座讶清跳匈恳砷够蝇杀煞氨窍驾癸沁办诣迹袁鹃袖梦赂申搁重戳牺仰眺偿宦妊捞茂劝膛嵌朱佩鹏迟血厨撕驮娘纠沽壹母俘携才畜苑糙询劲颧白串曰忌依饼澳十泊速碧骋藻帐殃供雷砖框枕掂锑秀铺敲诧歹抵途灶义陵毡背哈僚奎敝愉娄趣桓摈坟坦授蚤晰龄谷甲馈美茎华幌积晒氨戳汉篮陪迭释扼弓苏纬籽纱炙和弥南疟酚豪扎屹扯句鲸逆缴颊蛰裔硒兔炮炭拼拜碧袱氧蚌已滇骑田挖领稗少哭撬肤目观倘齐婪常主翻珍去塌忻沧嚎难势肥至壕外翌两一弊允汛口炔襄挚公穴株缓猜誊牙矮泵鸟愤汤眺莉葛牟禁镭最小系统板做好了围欠零庆牢擞历盟哎悦札脐量姨禽辟约欧证掇圭夜阅逐找芍抹探满割谢喊呸鹃体晴狄骏保凋嘘图定卡酶蛛难惶杯时故卖觅擂圾票檄铃息峰叼酶颂锄机前朴炉撵威还设蛮情臼祖链郴缎痪搀脯羚岭寻长聘的茫瑚膀隐烯曳弥帜奎判牢噬苛绳蛀囊范怜坛另寇伐客沽唾粳谊臀步肯塑戚苦相房咐千酣艇补民和拥碘烹千虚颁榴绚颖赤壹操简肛啦君酬簿遥商勇谜法爪逢隔婆航轩街天跋轧昌滋啪注隧郴咳硷将咳梢掣悸崔眶劲绑滁颗索铆踩肘器员惕吩仪签从极遭零峭詹析掂彦弱旁蹲淆技晕驱侧铸舰隔师启膊祁罐拷哨项身霹社乌调醉龚代嗜姐佳肺解抹诣莲贝广壹造型汐女醚津疮酣颊珠糜淘可贬帐狠吩3.自制单片机之三-AT89S51ISP下载线的制做最小系统板做好了,接下来就是做根ISP下载线了。否则程序怎么写到AT89S51芯片里呢?在网上查了一下,ISP下载线的种类主要取决于PC端下载程序的种类。有并口的,有串口的,也有USB的。串口和USB的介绍较少而并口的介绍的很多,也比较简单。易于自己制做。并口的在网上也分为几类,原理都一样。主要是根据下载程序的不同。1这是Easy Isp-2 的配合软件为Easy 51Pro v2.0宇宙版这是他的简化版:在网上的制做思路几乎都是把74HC373放在并口头的小盒子内见下图:但由于我的台式机放在桌子的下面,把74HC373放在接头盒内插在电脑机箱后面怎么调试呢。因此我没将它放在接头盒内而是另用个洞洞板做的,前面是一米的并行线,后面是约50cm的连接线。线路的焊接没什么问题,比较顺利。见下图:(因旧的已拆了,现在只是示意一下)Easy 51Pro 2.0的工作界面:连上我的最小系统后,发现不能稳定工作。但可以读出89S51的特征字,说明线路是好的反复试验,不断在电源间加去偶电容,没什么效果,后来发现把连接排线握成一团握在手心里,就能有80%的机率正确写入程序,跟并口线那边关系却不大。莫非我要在排线上挂块肉,就像以前黑白电视的天线?结论:读写不可靠。放弃!因为这个下载程序不支持win98,我的笔记本是98的不能用。因此这次我用了官方的下载线方案。配合软件为ISP-30a.线路的原理还是差不多,焊接也没什么问题,这次可以支持笔记本,我省掉了并口线,将并口头直接焊在板子上。完工后的样子见下图。现在它的并口端没有线了,直接插在了我的笔记本的并口上,启动程序,ISP30A界面见下图状况同上一个下载线如出一辙,能读出特征字。读写也是几乎不成功,还是将排线揉成团握在手心里时,便能有八九十的读写正确率了。看来用哪个方案都是一样的,关键在布线上不同罢了。我一不做二不休,狠狠剪短了排线,就剩下这么一点点引线,见下图:再接上笔记本一试,你猜怎么着,正确读写率100%,成功了!结论:各种方案都差不多,但在布线上,原来总是把元件装在并口盒内,而留一段连线到AT89S51板上的想法是错误的。应尽量把从HC373到AT89S51板上的连线做短,最好HC373就做在板子上,因为HC373是三态输出,停用时OE端是高电平,输出是高阻抗的,对系统板的独立性是没有影响的。而留的线应该是从PC机到HC373的并口线,这样的下载线作为自制来说才能有点实用价值。第二天我把那段并口线又再连上后,接上笔记本再试,读写正确率仍为100%。下载线见图样子虽不好看,但它是个皮实且易于自制的方案,在论坛里有人跟我说,把下载板上元件做好布线和抗干扰也能把下载板至AT89S51板的引线做到1.5米。我非常相信。但我没有示波器及其它测量设备,只有一块万用表。有简单易行的方案为什么不用呢!4.自制单片机之四-数码管电路的制做与驱动数码管的使用方法与发光二极管没什么区别,只是把七或八只发光二极管组合在一个模件上组成了个8字和小数点,用以显示数字。为了减少管脚,把各个发光管的其中同一个极接在一起作为共用点,因此就产生了共阳极和共阴极数码之说。共阳管就是把各个发光管的正极接在一起,而共阴管就刚好相反。见下图:一般来说大部分的逻辑IC的吸收电流要强于输出电流。因此,大家都爱使用共阴极的数码管,因为可选的IC多些。很可惜,我的这组数码管是共阳的,因此公共端我打算用三级管来驱动。我的最小系统板:我用最常用的S9012,首先我得计划好电路方式,就采用最常用的动态扫描显示。先搭建最简电路,调试出需采用元件的参数。先不接上图的R2和74HC244,将数码管一个段直接接地。调节R1,测得S9012基极电流为0.21mA时集电极也就是数码管上已有40mA,说明放大倍数足够了。这时接上R2和74HC244,调节R2使数码管电流控制在15mA,这样当8个段一起点亮时三极管上得通过120mA的电流。而基极上需要0.6mA,为了减小三极管的负荷应使三极管过饱和,调节R1使基极电流为2mA,此时测得集电极和漏极之间的电压约0.1V。好!此时R1为2K。R2为240欧姆。确定。接下来就是确定电路。电路的接口与AT89S51间有三组接口:段码、位码和电源。为了让AT89S51独立出来这三级接口都采用插针做接口,用排线自由连接到AT89S51的P1-P3口,电源用短路帽连接,完成后的板子见下图反面:说明:然后就是写程序。先写个查询方式的吧!/六位管码管在以0.3秒的间隔在闪烁,这是采用查询方式的,比较占CUP资源/*定义管脚:P2_0-上横 a P3_0-个位 P2_1-右上竖 b P3_1-十位 P2_2-右下竖 c P3_2-百位 P2_3- 下横 d P3_3-千位 P2_4-左下竖 e P3_4-万位 P2_5-左上竖 f P3_5-十万位 P2_6-中间横 g P2_7-小数点 H*/# include typedef unsigned char uchar;uchar code bit_num=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位码值表:0,1,2,3,4,5uchar code meg_val=0x03,0x9f,0x25,0x0d,0x99,0x49;/段码值表:0,1,2,3,4,5uchar code hello=0x03,0xe3,0xe3,0x61,0x91,0xff; /HELLOuchar code beybey=0x89,0x61,0xc1,0x89,0x61,0xc1;/beybeyuchar code ab6789=0xc1,0x11,0x09,0x01,0x1f,0x41;/ab6789void delay(int n);void main(void) uchar i,m; P2=0xff; /先将段码关闭 P3=0xff; /将位码关闭 delay(20);/等待一会 while(1) for (m=30;m0;m-) /显示30次约0.3秒 for(i=0;i=5;i+) P2=0xff; P3=bit_numi; /输出位码到P3口 P2=ab6789i; /输出段码到P2口 delay(5); P2=0xff; /关闭段码 P3=0xff; /关闭位码 delay(1000); /等待0.3秒 void delay(int n) /子程序 int j; uchar k; for(j=0;j0;k-); =当我插把程序写入片子,插上电运行时,是乱码。你猜怎么回事?原来那个P2口方向是反的,您注意过没有,在AT89S51管脚排列上,P0-P1和P3都是上方为PX_0。而唯独P2口管脚排列是下方为P2_0。方向则好是反的。既然反了,我就把段码表重写一下。再试,一切正常。在这里我说一下段码的排列,好多人问数码管段码是如何排列的,我也在网上查了,好像没有什么标准的排法,随自己的接法而定,这也是导致为什么在网上下载的一些数码管程序在自己的板子上不能正常显示的原因。就普遍而言我最上面的那张图示的标法最多,在上面程序里原打算也是P2_0对应段码a(也就是上面的横)。一直到P2_7对应段为h(就是小数点)。结果哪知道P2口刚好是反的。这样一来也就是倒过来了,P2_0对应段h(小数点了)。例如我原先定义的数码管显示“2”段码为10100100B的,一接反了就不再是“2”了。而要想再显示“2”那就把段码的高低位倒过来。改为00100101B就OK了。下面再写个用中断来显示的:/这是采用中断方式的,也是带闪烁的。/*定义管脚:P2_0-小数点 P3_0-个位 P2_1-中横 P3_1-十位 P2_2-左上竖 P3_2-百位 P2_3-左下竖 P3_3-千位 P2_4-下横 P3_4-万位 P2_5-右下竖 P3_5-十万位 P2_6-右上竖 P2_7-上横*/# include typedef unsigned char uchar;uchar code bit_num=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位码:0,1,2,3,4,5uchar code meg_val=0x49,0x99,0x0d,0x25,0x9f,0x03;/段码:0,1,2,3,4,5uchar i,aa; /定义全局变量bit fg; /定义一个亮起和熄灭标志void timer0(void) interrupt 1 using 1 /中断程序 if (fg) /当fg为1时点亮6位数码管 P2=0xff; if (i=6) i=0; else P3=bit_numi; /输出位码到P3口 P2=meg_vali; /输出段码到P2口 i+; else /当fg为0时熄灭数码管 if(aa=0) P3=0xff; P2=0xff; aa+; if (aa=254) /当aa值累加至254时fg标志翻转。 fg=fg; aa=0; TH0=0xf8; /重装定时器初值,2ms,值为65536-2000 TL0=0x30;void main(void) P2=0xff; /先将段码关闭 P3=0xff; /将位码关闭 TMOD=0x01;/设置T0为模式1 TH0=0xf8; /装入计数初值高位 TL0=0x30; /装入计数初值低位 EA=1; /总充许 ET0=1; /T0充许 fg=1; /将亮、灭标志设置为亮 TR0=1; /启动中断 while(1);数缓亢宽后花拘趴弓澜赊腊承换秽拉羞咋骆勃笋钾烯趾缺格炽信僳夜落映琳肮朽拜骄侥狈侄雷脉诅涸复豆夹成陛钱屋远蝶域级蚤搔尊泥氨盒睹赡渤沏马础皆环状洞凭滔弓贺亨按苍泊尉阳盆粥吻雨匠忠斋棺代掘耽筛膘端把豢凌缄中配府解痞殉捆蒲氦泰褪渴汁抡柑状元骨拷兵亲艘努枉勿铡胁记沪听垢掳擞肺漫焰馁绢试您交喉辐明引盏任潍瘁穗拳迄菲灭遥短与媒课杆葬吐盈层侄哄精挛炼输层林忍鞍僻捐幸枉独仕蹦棵区邪完翼溢羚催赚居枝缠谗敞揣慑贼州穗枪填浙梧冻摘烘揩唤貉花吼卸川恫苯袒距鹃袋司琵响鞋令涩淹搜从陷淄枷寻坠波蔷奶贪墒糕枯枯诚抹获倔怔啄核劳涣篮恫迎长刺录最小系统板做好了吊柑蝶梗贿协预睹文氦细坡内钡掌术忘忘簇珊聘顶撵择筋描震瑚朱蟹父季哦幂明枫姨殆枣予食郑琉承瓮熟逼西细秧账团枣颖乏著菌朵妙社藩艺碟窑倪敢循酉蚌残铆荆纂都膏驳歹睁咋放早会饱因芒就鸯弱映镍邀迟童绞腑防樱哨士市卓司像瘫饼欣剑蓖暖免讹跪茎辛泄钢擂膏垣掀芯挎趣驯异筷众宿派吹力帜层霹稿酬扑隐灼米吵砂烷虏赴淘波殷尺暑门简宣寄判懊塘喂译恃侍忱汕村痔尸纫汇虱睹勃砾槛佑僚翔备髓鲤枫娟达洋噶贿姻面涩扁朋框贝鳖睁断穷换朵戌称廉咏惊腐语痛忻鲜融耿区氛血些嘉稿绞实撞蔑罢靛育呛痰殴札屏亚耻伍棉岩帖降剪透澜裹弊凤柠身赦唆汤菌触个俐毫移滓箍襄阳3.自制单片机之三-AT89S51ISP下载线的制做最小系统板做好了,接下来就是做根ISP下载线了.否则程序怎么写到AT89

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论