纯白色高清图片v2.这个定制,大家觉得怎样

proteus一些常见的问题 - proteus论坛|仿真论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [直播]
proteus一些常见的问题
助理工程师
18:07:30  
1.标题:Graphics Fills
问题:使用工具“BOX”和“ARC”设计好自己所创建元器件的图形之后,在电脑屏幕上看起来非常漂亮,但是在打印输出之后发现图片没有背景颜色(即图片是黑白的)
答案:在输出原理图的时候,选择BMP格式,且需要在颜色选项中选中“DISPLAY”;问题的实质是图片的背景颜色,即使图片是黑白颜色的,黑白颜色仍然被当作是一种背景颜色处理了。所以我们在输出图片的时候,必须检查一下“颜色设置”,否则,很可能得到的是黑白的图片。
2.标题:Pin Wiring Problem
问题:有时候在自己创建的元器件的管脚上无法实现连线
答案:应该是管脚的间距太小了。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线之前先使用“2D graphics line”工具延长管脚的引线,然后再走导线,也可以在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。
3.标题:ASCII DATA IMPORT-HOW DOES IT WORK?
问题:参照ISIS中帮助文件的方法在写字板中创建了一个文本文件(有关于ASCII DATA的函数),然后在将其导入ISIS时,电脑屏幕上显示出:“unexpected end of file”的错误,即使文件内容是从帮助文件中复制粘贴过来的,情况还是一样。
解决方法:在创建你所说的文本文件时,在最后的“END”命令行之后一定要加上至少一个回车换行符号。
4.标题:Changing sort column in BOM scripts
问题:我想修改清单列表中元器件的排列顺序,例如把电阻和二极管按照其值的大小来排列,但是实际上元器件是按其名字标号来排列的。
解决方法:可以输出“CSV”格式的元器件报表,然后将元器件在表格中重新排列。
不过用“HTMP output”输出的报表看起来更美观一些哦。
5.标题:ISIS, netlist and ARES
问题:设计好一个含有多个子电路的层次电路原理图,然后产生网络表,将其导入ARES制作PCB图。如果要求生成多个PCB图,且每个PCB图中包含独立的子电路部分,该怎样实现呢?
方法:如果纯粹是为了制作PCB的话,问题就比较容易解决。你可以建立几个相近的电路原理图(每个原理图只有子电路部分不同而已),然后依次产生网路表并生成PCB图;如果不嫌麻烦的话,在生成PCB图时采用手动布局元器件也可以实现你的目的,只是这种做法相当繁琐而已。
6.标题:change design created date?(即要更改设计被创建的日期)
问题:在一个已有的原理图的基础上做一些修改,然后另存问别的设计文件,该设计文件的创建日期还是跟原来的原理图的日期是一样的,有没有办法修改?
答:可以用“新建设计”,而不是用“另存为”。其实修改这个时间没有任何的实际意义,完全没有必要这样做。
7.问题:Proteus中鼠标的操作有点不符合人的传统习惯,能不能在Proteus实现更改鼠& && &&&标设置?
答:Proteus的鼠标操作方式(左右键)是有点与众不同,在开始使用时你可能真的会觉得有点不习惯,但是用久了之后你就会慢慢喜欢它了,因为用它可以简化操作的步骤。不过Proteus的7.0版很有希望实现自由设置鼠标的操作方式。
8.标题:question about updates
问题:如果要升级 Proteus,必须重装Proteus后然后再运行 update 吗?
答:不需要重装Proteus,具体步骤如下:
1)&&把license文件放在桌面上,以便查找;
2)&&把任意一张Proteus的安装盘插入光驱中,停止其自动运行;
3)&&运行最新的 PROSYS.EXE ,将完全安装最新的升级服务包。
9.标题:simulation animate same pages
问题:能不能实现不在当前原理图页面下观察仿真效果(即将观察窗口浮起来)?
答:到目前为止,还只能在当前原理图下观测仿真效果,Proteus的下一个版本可能会解除这个限制。
10.标题:how to generate netlist in 4.73?
问题:我用Proteus 4.73为何只能设计原理图,不能产生网络表并生成PCB图?
还有,在进入ARES时,其自动产生、装载网络表,我不想让其自动装载网络表,能不能实现呢?
& & 答:你用的是Proteus限制版,它既不能产生网络表文件也不能输出Gerber文件,仅用于业余爱好者学习。至于你想手动产生网络表,可以用Tools -)netlist compiler,能产生多种格式的网络表文件。
11.标题:Power and GND
& & 问题:能不能自建12VDC的电源和其他的接地方式?为什么先用decompose分解POWER的管脚,然后用“make symbol”命名为新的power,它不能与VCC连接?
答:可以先在原理图中放置POWER,然后选中并左击,在其属性对话框中的string处输入+12V ,点击OK,它就不会与VCC(其默认值为5V)连接了。接地(GND)也一样,更改一下它的属性就变成另外一个地脚了。“make symbol”是用来设计元器件外形的,元器件是通过管脚连接的,GND和POWER只是代表逻辑终端,所以不能将其象普通元器件一样分解POWER和 GND.如果你想创建自己的接地符号,可以先用画图工具画出图形,然后附上管脚号码和名字,保存在元器件库中。创建+12V直流电源的具体步骤如下:
a.& &&&点击“Inter-sheet Terminals”图标
b.& &&&选择“Power”终端,并将其放入原理图中
c.& &&&按右键选中“Power”并左击,弹出其属性对话框
d.& &&&在“String”空格区输入“+12V”
注意:如果没有“+”和“-”,系统将无法识别其为电源。
& &&&元器件被分解之后就不再是一个元件了,所以不能更改它的属性了,它只代表一种图形符号了。
如果想创建圆形的电源图标,只需将终端符号换成“DEFAULT”,然后按“A”建,在弹出的对话框的“String”空格区输入“TYPE=POWER”,再点击OK就可以了。
12.标题:ISIS accessing internet?
& & 问题:启动 Proteus ISIS之后,防火墙会发出警告:ISIS正试图连接英特网,在启动Proteus ARES后也会碰到这种情况,请问是怎么回事?
& & 答:原因是你在Proteus ISIS中设置了远端调试监视器(remote debug monitor),使用TCP/IP网络协议让IP地址为127.0.0.1的电脑通过其8000端口访问英特网,因此防火墙会提示你是否允许开关 8000端口。如果电脑没有安装使用防火墙的话就不会有这个问题了。
13.标题:Find duplicated part
& & 问题:电脑显示错误“ERROR[ROOT10]:Duplicate part reference xob”,这是怎么回事?怎么找到发生错误的地方?
& & 答:发生上述错误的原因是有元器件的标号出现了重复;找出错误之处的方法是使用“Bill of materials”工具先生成报表,然后在报表中可以发现错误产生的地方。通常电阻的标号为“R?”,电容的标号为“C?”,芯片的标号为“IC?”
14.标题:MAXIM max 497 part creation
& &问题:max497有四个输入脚,4个输出脚,4个GND脚,2个VCC脚,2个VEE脚,我想在用它的时候加2组独立的电源,但是其封装内部默认的是两组电源的名字是相同的,所以认为他们是连接的,该怎么解决呢?
& &答: 可以在创建max497的时候,给他们的管脚赋上不同的网络标号,例如将其9号和15号管脚加上相同的标号如VCC,那么这两个管脚就会都连到同一个电源(VCC)上,如果它们有不同的网络标号,那么它们就会分别连到独立的电源上。
15.标题:Multiplexer (多路转换器)
& &问题:我需要一个8或16路输入通道,4路输出通道的多路转换器,,怎么找不到模型?
& &答:4067不就是你想找的模型吗,它是一个CMOS模拟器件,有16个输入脚,还有一个用来使能的EA脚。
16.标题:change component
& &问题:我已经用ISIS设计好一个原理图,并制作了PCB图,但是我突然发现需要将一个二极管更改为电阻(包括名字,封装,型号,参数),能够实现吗?
& &答:当然可以,为了减少系统的工作量,我们增加或删除元器件时,会改变器件的布线和标注,所以一般是从ISIS到ARES;如果只需要更改已有的元器件(例如管脚号码和标注等),一般从ARES到ISIS.因为ARES和ISIS是可以同步的。
& & 注意:更改元器件时,原来已经布好的导线不会消失。
17.标题:ISIS OP-AMPS
& &问题:在ISIS中许多光耦放大器的3号管脚为反相输入脚,而传统上都是2号管脚,可不可以更改呢?
& &答:可以,管脚号码的顺序是可以更改的,我们用Library菜单下的“decompose”命令先分解元器件,然后更改管脚号码,再用“make device”生成元器件。
18.标题:2D graphic background shading
& &问题:出于出版的目的我想要同一个原理图中的元器件有不同的背景颜色,以实现特别区域的不同显示,同时元器件和其导线均要可见;我用“move to&&back”命令操作,结果是元器件可见,其导线却不可见,因为导线被背景颜色掩盖掉了。
&&解决方法:在ISIS中设计原理图时,按鼠标右键然后框选住需要特别显示的元器件及其导线,再使用EDIT菜单中的“bring to front”命令,就可以将目标前置与背景之上了,这样元器件和导线都是可见的。
19.标题:printing problem
& &问题:有没有办法把Proteus软件的帮助文件分章节地打印出来?好像我们只能浏览而不能对它进行任何处理哦。
& &答:如果你是被授权用户的话,你不仅可以获得我们免费赠与的PDF格式文件,而且还能得到使用指南的硬拷贝文件。
20.标题:Form net list
& &问题:完成原理图设计后产生网络表并进入ARES,ARES界面中没有完整的元器件管脚列表,这样就实现不了所有器件管脚的连接。
& &答:可能是原理图设计有错误,可以先用“Tools”菜单下的电气规则检查命令(即electrical rule check)进行检查;如果没有错误的话,可以在ARES中用手动画线的方式补上漏画的导线。
21.标题:Assigning strategies to multiple nets
& &问题:如何设置一种策略可以不用依次单独为每一根导线放置网络标号?
& &答:应用PAT工具,按“A”键,在弹出的对话框中的“String”处输入“NET=START=NEW_STRATEGY_NAME”,然后依次在需要放置网络标号的导线上单击鼠标左键一次就可以放置网络标号。
22.标题:A problem with some component replacements
& &问题:为何不能将SW-SPST与BUTTON直接用鼠标拖放实现互相替换?
& &答:对于开关这样的动态器件,鼠标点击它有不同的含义,故不能直接替换,如要实现替换可以用如下方法:
a.& &&&选中要被替换的元器件;
b.& &&&按“A”键,进入property assignment tool窗口(即属性设置工具);
c.& &&&在“STRING”处输入“DEVICE=new part’s name”
d.& &&&应用范围设为“local tagged”,再点击“OK”
23.标题:Remove components models from DSN file?
& &问题:从元器件库里挑出元器件之后它就出现在DSN文件的元器件列表中,能不能把它再删除呢?
& &答:如果元器件没有用于原理图设计,可以在元器件列表中选中,然后点击“EDIT”菜单下的“Tidy”,就可以将元器件从列表中删除。注意我们不能从列表中清除被放置在原理图中的元器件。
22:03:04  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
RAM COMMAND UNSUPPORTED这是怎么回事啊
高级工程师
20:55:33  
13:51:39  
20:43:39  
21:38:21  
参考资料COPY下来先谢拉!
23:02:21  
22:43:58  
助理工程师
21:39:47  
11:33:36  
助理工程师
10:56:58  
{:1:}{:1:}{:1:}{:1:}
助理工程师
10:58:16  
助理工程师
11:07:54  
{:1:}{:1:}顶一个
14:31:18  
顶楼主 楼主观点不错&&
&&充qi娃娃多少钱
&&阴茎短小
&&白发治疗
&&英国卫裤
&&治疗白发
&&伟哥官网
&&日本充qi娃娃
助理工程师
18:21:03  
可能是 对仿真元器件内存 读写 程序有问题 吧!
助理工程师
09:57:45  
21:08:25  
15:32:14  
1.标题:Graphics Fills
问题:使用工具“BOX”和“ARC”设计好自己所创建元器件的图形之后牛皮癣能治好吗,在电脑屏幕上看起来非常漂亮,但是在打印输出之后发现图片没有背景颜色(即图片是黑白的)
答案:在输出原理图的时候,选择BMP格式,且需要在颜色选项中选中“DISPLAY”;问题的实质是图片的背景颜色,即使图片是黑白颜色的,黑白颜色仍然被当作是一种背景颜色处理了。所以我们在输出图片的时候,必须检查一下“颜色设置”,否则,很可能得到的是黑白的图片。
2.标题:Pin Wiring Problem
问题:有时候在自己创建的元器件的管脚上无法实现连线
答案:应该是管脚的间距太小了北京最好牛皮癣医院。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线之前先使用“2D graphics line”工具延长管脚的引线,然后再走导线,也可以在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。
16:46:00  
1.标题:Graphics Fills
问题:使用工具“BOX”和“ARC”北京牛皮癣专科医院设计好自己所创建元器件的图形之后,在电脑屏幕上看起来非常漂亮,但是在打印输出之后发现图片没有背景颜色(即图片是黑白的)
答案:在输出原理图的时候北京武警总队第二医院,选择BMP格式,且需要在颜色选项中选中“DISPLAY”;问题的实质是图片的背景颜色,即使图片是黑白颜色的,黑白颜色仍然被当作是一种背景颜色处理了。所以我们在输出图片的时候,必须检查一下“颜色设置”,否则,很可能得到的是黑白的图片。
2.标题:Pin Wiring Problem
问题牛皮癣能治好吗:有时候在自己创建的元器件的管脚上无法实现连线
答案:应该是管脚的间距太小了。因为在ISIS中,每个元器件的管脚都要占据一块区域(就像自己的保护区一样,不容别人随意侵犯),该区域会排斥外部的走线。解决问题的方法是在走线之前先使用“北京最好牛皮癣医院2D graphics line”工具延长管脚的引线,然后再走导线,也可以在走线的同时按住 “CTRL”键,直到走线绕过狭窄的保护区。当然最根本的办法是重新编辑元器件,把其管脚间距调大一些。
12:13:59  
6个问题&&&&&&&&1640个浏览
19个问题&&&&&&&&17068个浏览
32个问题&&&&&&&&6882个浏览
通过本次直播,你将学到:
1.理解mbed操作系统的结构是什么样的
2.mbed功能模块与其他嵌入式操作系统有什么不同
3.工具链使用以及开发流程实操演练
即日起至6月15日,参与英蓓特NXP产品知识小测验,即有机会赢取最新系列开发板。特别奖SBC-EC9100开发板1套,幸运奖FRDM系列最新开发板(型号随机,共10套)。快来参加吧! >> 立即参加
Powered byProteus的打开及基本操作求Proteus仿真之继电器??_开关_百科问答
求Proteus仿真之继电器??
提问者:石宝波
――Seaman(SJTU )1. 继电器简述继电器(如图1所示)是一种电控制器件,具有控制系统(输入回路)和被控制系统(输出回路)之间的互动关系,实际上就是用小电流控制大电流运作的一种“自动开关”,在电路中起着自动调节、安全保护、电路转换等作用。当流入继电器的电流乘以继电器的标称电阻达到其标称电压时,继电器就在磁场作用下将原先悬置的开关拉到另一个开关处,即由“常开触点”到“常闭触点”。图 1 Proteus中继电器形状2. Proteus硬件电路设计Proteus中,继电器驱动电灯泡的电路如图2所示。这里,采用at89C51来提供微小电流,控制电灯泡的开关。图 2 继电器控制电灯泡之硬件电路图图2中,芯片AT89C51左边电路为其复位和晶振电路,同时将 引脚接高(51单片机在使用外部存储器时,此引脚接低,直接接地即可;否则接高)。除有特殊说明,默认接高即为+5V。图中所有的电流表和电压表在实际应用中皆可不接,只为测试用。 电路中,因为单片机输出口的电流很小,无法驱动继电器,所以在继电器输入端应该接一个PNP三极管,用来放大电流,驱动继电器工作。而为了保护此三极管的正常工作,还应在三极管的输出端(集电极)加上一个二极管用来保护三极管不被过流击穿,此二极管在实际应用中非常重要。继电器的电路设计如图3所示。图 3 继电器的电路设计3. C51软件设计本文只为了说明问题,所以软件部分没有任何复杂性与难度,只是将输出的对应脚置低,程序如下所示。#include &reg51.h&sbit led1 = P2^4;#define uchar unsigned char#define uint unsigned intvoid main(){ while(1) { led1 = 0; }} 4. 实验结果运行之后,如图4所示,灯泡L1和L2将被点亮,但是两者的颜色却并不一样。这是因为,对于一定功率(额定电压和额定电阻)的灯泡,驱动灯泡发光的电流大小将直接决定其亮暗程度,这个很好理解。图 4 实验结果将右边部分放大(图5所示),可以看到,流过三极管Q1基极的电流为-0.44mA,流过Q1集电极的电流为9.82mA。因为Q1由发射极流进电流,一部分流向基极,另一部分流向集电极,所以按照图中接法,基极处电压为负。图 5 放大后的示数值由于Q1的放大倍数β=100,但是0.44×100=44,显然超过9.82。这是为什么呢?秘密在于继电器RL1中。打开RL1属性,我们可以发现RL1的标称电压为5V,标称电阻为500Ω,这就是说流进继电器的电流要达到(或接近[1])0.01A即10mA,才能驱动继电器工作。而电路中,Q1的导通电压约为0.3V,即集电极的电压约为4.7V,而此时有电阻500Ω,所以流出的电流为4.7/500=9.4mA≈9.82mA,而继电器在此工作电流下亦能正常工作。这里,可以改变继电器的阻值来观察其效果。改变继电器的线圈阻值为100Ω,则流出Q1集电极的电流为47.6mA,近100倍放大基极电流,同时灯泡点亮。但是,工作后,继电器两端为什么还会有0.91V的电压呢?这是一个很值得探讨的问题。仔细思考下,我们就可以知道,那是因为此时的继电器仍然存在一定的内阻,而且值为0.91/9.13≈0.1Ω。可是这个值在继电器中又是如何设置的?继电器在proteus中是一个模型,其电气行为由一个叫MODFILE(LISA Model File)的文件定义的,而ACTVRLY就是继电器的MODFILE。RLY为relay,即继电器;ACTV为active,所有诸如继电器这样在仿真的时候能用动画来改变自身状态的模型都为ACTIVE模型,像发光二极管、数码管等。打开proteus安装目录\MODELS,找到ACTIVE.LML的文件,将其后缀名改为.txt后,用写字板就可以打开。搜索relay,可以找到如下一段文字。*PROPERTIES,5 RCOIL=100RCONTACT=0.1ROFF=100MVOFF=0.5*&VALUE&VON=0.8*&VALUE&*MODELDEFS,0 *PARTLIST,6 AVS1,AVS,&ABS(V(A,B))&,PRIMITIVE=ANALOGUER1,RESISTOR,&RCOIL&,PRIMITIVE=ANALOGS1,VSWITCH,VSWITCH,PRIMITIVE=ANALOGUE,ROFF=&ROFF&,RON=&RCONTACT&,VH=(&VON&-&VOFF&)/2,VT=(&VON&+&VOFF&)/2S2,VSWITCH,VSWITCH,PRIMITIVE=ANALOGUE,ROFF=&RCONTACT&,RON=&ROFF&,VH=(&VON&-&VOFF&)/2,VT=(&VON&+&VOFF&)/2S3,VSWITCH,VSWITCH,PRIMITIVE=ANALOGUE,ROFF=1M,RON=1,VH=(&VON&-&VOFF&)/2,VT=(&VON&+&VOFF&)/2VP1,RTVPROBE,ACTIVE_VPROBE,LOAD=1k,MAX=1.0,PRIMITIVE=ANALOG RCOIL表示继电器左边的线圈电阻为100Ω;RCONTACT=0.1表示继电器右边的开关,即当它闭合的时候有0.1Ω的电阻,这就解释了上面的疑问。ROFF=100M表示继电器右边的开关在断开的时候有100MΩ的电阻。VOFF=0.5*&VALUE&:VALUE表示的是继电器的电压,当新放置一个继电器时,看到的12V字样,就是这个。尖括号的意思是,这个数值在仿真运行的时候,取自你属性对话框里设定的数值。而VON即与此相反。这里,表示当施加的电压小于0.5*&VALUE&时,继电器释放;大于0.8*&VALUE&时,继电器合上。这也解释了上面提到的“接近”。下面的语句有S1,S2和S3,表示此继电器由三个开关组成。关注语句中的ROFF=&ROFF&:左边的ROFF表示器件模型里的开关在断开时候的电阻,这个电阻是器件的组成分;右面的&ROFF&表示给ROFF一个多大的数值,此值来自属性表。如果属情表中没有赋值,ROFF就是系统默认的100M,否则使用属性表中的值。
回答者:俞鸿友
Mail: Copyright by ;All rights reserved.查看: 549|回复: 6
keil里进行单步调试没有问题但proteus仿真到那就卡住
一个中断程序执行结束返回到主程序后的那一步,我在keil里进行单步调试过程没有问题,但是proteus里仿真到那一步就卡在那了,等到一个循环过去之后才继续执行,是程序有问题还是电路接错了呢,如果不执行中断程序proteus里是没问题的。
 楼主你把程序和仿真文件都发上来看一下
 最好的办法,就是焊接实物进行调试。而不是仿真。
没有程序,没有电路,你以为别人是神啊
不错,研究研究
不懂,帮顶
大概是中断,也可能是程序乜嘢可能是仿真,只要不做实物出来,其他的都不百分百正确
Powered by哪位大神帮我看一下为什么一运行就会无响应?是原理图有错误吗? - proteus论坛|仿真论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [直播]
哪位大神帮我看一下为什么一运行就会无响应?是原理图有错误吗?
22:58:05  
[img]file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\\QQ\WinTemp\RichOle\)CTNI[2P@894F06B4(81_BH.png[/img]
QQ图片43.png (34.12 KB, 下载次数: 0)
22:55 上传
电子密码锁程序代码感觉是没错的,不过也附上
#include&reg51.h&#define uchar unsigned char#define uint unsigned int #define LCDDataBus P2& &//定义LCD数据总线sbit RS = P0^1;sbit RW = P0^2;sbit EP = P0^3;sbit unlock = P3^0;uchar Keyword[6]=&111211&;& & & & & & & & & & & &&&//初始密码 // 延时函数void delay(uint k){& & & && && & & & for(; k & 0; k--)& & & &&&for(i = 121; i & 0; i--);} //===================================//& && && &LCD部分//=================================== // 写数据函数void LCDWriteData(uchar Data){& & & & RS=1; //传输数据& & & & RW=0; //写& & & & LCDDataBus=D& & & & EP=1;& & & & delay(1);& & & & EP=0;} // 写指令函数void LCDWriteCmd(uchar Cmd){& & & & RS=0; //传输指令& & & & RW=0;& & & & LCDDataBus=C& & & & EP=1;& & & & delay(1);& & & & EP=0;}
// ========将坐标转换为LCD的坐标===========void LCDPosition(uchar row,uchar column){& & & && & & & if(row == 1)& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & && & //& & & & row = 0x00在第一行显示,row = 0x01在第二行显示& & & & & & & & position = 0x80 + column - 1;& & & & & & & & & & & && & //& & & & column = 0~15在LCD上的可见域显示& & & & else if(row == 2)& & & & & & & & position = 0xC0 + column - 1; & & & & LCDWriteCmd(position);& & & & delay(10);} // ==========在指定位置写数据函数=========== void writeChar(uchar row,uchar column, char c)& & & & & & & & & & & & // row指定行,column指定列位置,c为待写入的数据。{& & & & LCDPosition(row,column);& & & & LCDWriteData(c);& & & & delay(200);} // ============写字符串函数================= void writeString(uchar row,uchar column1,uchar column2, char *s)& & & & & & & &&&// row表示行,column1表示第一行起始地址,column2表示下一行起始地址,均从1开始。{& & & && & & & if((*s)=='\0')& & & & & & & && & & & for(i = 0; ; i++)& & & & {& & & & & & & & if((*(s+i)) == '\0')& & & & & & & & & & & && & & & & & & & if(i &= 15)& & & & & & & & {& & & & & & & & & & & & writeChar(row,column1,*(s+i));& & & & & & & & & & & & delay(2);& & & & & & & & & & & & column1++;& & & & & & & & }& & & & & & & & if(i & 15 && i& 32)& & & & & & & & {& & & & & & & & & & & & writeChar(row + 1,column2,*(s+i));& & & & & & & & & & & & delay(2);& & & & & & & & & & & & column2++;& & & & & & & & }& & & & }} // 移动字符串函数void moveString(char *s){& & & && & & & writeString(1,25,25,s);& & & & for(i = 16; i & 0; i--)& & & & {& & & & & & & & LCDWriteCmd(0x18);& & & & //屏幕移动& & & & & & & & delay(900);& & & & & & & & }} // 液晶初始化函数void LCDInit(void){& && & & & LCDWriteCmd(0x38); //设置16*2显示,5*7点阵,8位数据接口& && & & & delay(30); & && & & & LCDWriteCmd(0x01);//清屏& && & & & delay(30);& && & & & LCDWriteCmd(0x06);//地址加一,整屏右移& && & & & delay(30);& && & & & LCDWriteCmd(0x0f);//开显示,光标闪烁,显示光标} //外部中断初始化void InuptInit(void){&&& & IT0=1;& & & & EX0=1;& & & & EA =1;} //===================================//& && && &键盘部分//=================================== uchar code rowScan[]={0xFE,0xFD,0xFB,0xF7};& & & && & //行扫描码//uchar code columnScan[]={0xEF,0xDF,0xBF,0x7F};uchar code key12[]={0xEE,0xDE,0xBE,0xED,0xDD,0xBD,0xEB,0xDB,0xBB,0xE7,0xD7,0xB7};& && && && && & //& &1& & 2& & 3& & 4& & 5& & 6& & 7& & 8& & 9& & *& & 0& & #uchar code keyValue[]=&#&; #define KEY P1
//=====键盘扫描函数==========uchar keyScan(void)& & & & & & & & & & & & //返回值:有键按下时获得的键盘值(*#),无键按下时返回字符‘$’{& & & & uchar k = 0,flag = 0;& & & & for(k = 0;k & 4; k++)& & & & {& & & & & & & & KEY = rowScan[k];& & & && &//逐行扫描& & & & & & & & delay(10);& & & & & & & & & & & & //按键扫描& & & & & & & & if(KEY != rowScan[k])& & & & & & & & {& & & & & & & & & & & & uchar i=0;& & & & & & & & & & & & for(i = 0; i & 12; i++)& & & & & & & & & & & & {& & & & & & & & & & & & & & & & if(KEY == key12)& & & & & & & & & & & & & & & & {& & & & //比较键码& & & & & & & & & & & & & & & & & & & & flag=1;& & & & & & & & & & & & & & & & & & & && & & & & & & & & & & & & & & & }& & & & & & & & & & & & }& & & & & & & & & & & & while(KEY != rowScan[k]);& & & && &//等待按键释放& & & & & & & & & & & & if(flag)& & & & & & & & & & & & & & & & return keyValue;& & & & & & & & }& & & & }& & & & return '$';} //===================================//& && && &警铃部分//====================================sbit Beep = P3^1;uchar code scalesH[] = {0xf7,0xf8,0xfc,0xf9,0xfa,0xfa,0xfb};& &//7个音符所对应的计数器初值uchar code scalesL[] = {0x20,0x88,0x44,0x59,0x13,0x67,0x04}; //初始化函数void AlarmInit(){&&TMOD = 0x01;& & & &&&//T/C0工作在方式一& &ET0 = 1;& & & & & & & &&&//开定时器中断& &EA = 1;& & & & & & & &&&//开总中断& &TR0 = 0;& & & & & & & &&&//关闭定时器0} //播放声音void play(uchar c){& && & & & switch( c )& & & & {&&& & & && & case 0 : note = 6;& & & && && && && & for(i=0;i&3;i++)& & & && && && && & {& & & && && && && && & TR0 = 1;& & & && && && && && & delay(300);& & & && && && && && & TR0 = 0;& & & && && && && && & delay(300);& & & && && && && & }& & & & & & & & & & & & & & & && & & && & case 1 :& & & & for(note=2;note&6;note++)& & & && && && && & {& & & && && && && && & TR0 = 1;& & & && && && && && & delay(300);& & & && && && && && & TR0 = 0;& & & && && && && && & delay(300);& & & && && && && & }& & & & & & & & & & & & & & & && & & &&&}& & & && && && && & & & & & Beep = 1;} //定时器0的中断服务函数void time0() interrupt 1{& &TH0 = scalesH[note];& &TL0 = scalesL[note];& &Beep = ~B} //====================================//& && && && &主函数//==================================== void main(void){& & & & uchar value,allValue[6],column =4;& & & & uint i=0; & & & & LCDInit();& & & & InuptInit();& & & & AlarmInit(); & & & & unlock = 0;& & & & writeString(1,1,1,&Enter Password:&);& & & & while(1)& & & & {& & & & & & & & & & & & value = keyScan();& & & & & & & & if ((column & 10) && (value &= 48)) & & & & & & & &&&//48是“0”的ASCII值& & & & & & & & {& & & & & & & & & & & & allValue[column - 4] =& & & & & & & & & & & & writeChar(2,column,value);& & & & & & & & & & & & column++;& & & & & & & & }& & & & & & & & if (value == '#')& & & & & & & & & & & & & & & & & & & & & & & & & & & & //按下取消键& & & & & & & & {&&LCDWriteCmd(0x01);& & & & & & & && & writeString(1,1,1,&Enter Password:&);& & & & & & & && & column = 4;& & & & & & & & }& & & & & & & & if (value == '*')& & & & & & & & & & & & & & & & & & & & & & & & & & & & //按下确认键& & & & & & & & {&&for(i=0;i&6;i++)& & & & & & & && & {&&if (allValue != Keyword)& & & & & & & & & & & &&&//解锁失败& & & & & & & && && & {& &unlock = 0;& & & & & & & & & & & && && & play(0);& & & & & & & & & & & && && & LCDWriteCmd(0x01);& & & & & & & && && && &&&writeString(1,1,1,&Wrong Password&);& & & & & & & & & & & & & & & && &writeString(2,1,1,&Unlock Failed!&);& & & & & & & & & & & & & & & && &delay(600000);& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//3秒后清屏,等待下次输入???& & & & & & & & & & & && && & LCDWriteCmd(0x01);& & & & & & & && && && &&&writeString(1,1,1,&Enter Password:&);& & & & & & & && && && &&&column = 4;& & & & & & & & & & & && && && & & & & & & & & & & && &}& & & & & & & & & & & & LCDWriteCmd(0x01);& & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//解锁成功& & & & & & & & & & & & unlock = 1;& & & & & & & & & & & & play(1);& & & & & & & && &&&writeString(1,1,1,&Unlock Succeed!&);& & & & & & & & & & & & while(1);& & & & & & & && &&&}& & & & & & & & }& & & & }} //====================================//外部中断0服务程序&&(更改密码)//==================================== void exInt0(void) interrupt 0{ & &&&uchar j,key,index=4,allkey[6];& & & &&&LCDWriteCmd(0x01);& &&&writeString(1,1,1,&Change Password? (Y/N)&);& & & &&&while(1)& & & & & & & & & & & & & & & && & //等待用户确认& & & &&&{& & & && && &key = keyScan();& & & & & & & &&&if (key == '#')& & & & & & & & & & & && & //有问题!!返回后怎么处理?& & & & & & & &&&if (key == '*')& & & & & & & & & & & & & & }& & & & & & & & & & & & & & & & & & & &&&LCDWriteCmd(0x01);& && && &writeString(1,1,1,&Old Password:&);& & & && &while(1)& & & && &{&&key = keyScan();& & & && && &if ((index & 10) && (key &= 48)) & & & & & & & &&&//48是“0”的ASCII值& & & & & & & & {& & & & & & & & & & & & allkey[index - 4] =& & & & & & & & & & & & writeChar(2,index,key);& & & & & & & & & & & & index++;& & & & & & & & }& & & & & & & & if (key == '#')& & & & & & & & & & & & & & & & & & & & & & & & & & & & //按下取消键& & & & & & & & {&&LCDWriteCmd(0x01);& & & & & & & && & writeString(1,1,1,&Old Password:&);& & & & & & & && & index = 4;& & & & & & & & }& & & & & & & & if (key == '*')& & & & & & & & & & & & & & & & & & & & & & & & & & & & //按下确认键& & & & & & & & {&&for(j=0;j&6;j++)& & & & & & & && & {&&if (allkey[j] != Keyword[j])& & & & & & & & & & & &&&//验证失败& & & & & & & && && & {& & & & & & & & & & & && && & LCDWriteCmd(0x01);& & & & & & & && && && &&&writeString(1,1,1,&Wrong Password&);& & & & & & & & & & & & & & & && &writeString(2,1,1,&Match Failed!&);& & & & & & & & & & & & & & & && &play(0);& & & & & & & & & & & & & & & && &delay(600000);& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//3秒后清屏,等待下次输入& & & & & & & & & & & && && & LCDWriteCmd(0x01);& & & & & & & && && && &&&writeString(1,1,1,&Old Password:&);& & & & & & & && && && &&&index = 4;& & & & & & & & & & & & & & & && && & & & & & & & & & & && &}& & & & & & & & & & & && &else{& & & & & & & & & & & && && && &LCDWriteCmd(0x01);& & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//旧密码验证通过& & & & & & & && && && && & writeString(1,1,1,&Enter New PW:&);& & & & & & & & & & & && && && &index = 4;& & & & & & & & & & & && && && && & & & & & & && && && &&&}& & & & & & & & & & & & } & & & & & & & && &&&while(1)& & & & & & & & & & & & {& & & & & & & & & & & & key = keyScan();& & & & & & & && &&&if ((index & 10) && (key &= 48)) & & & & & & & &&&//输入新密码& & & & & & & && &&&{& & & & & & & && && && & & & allkey[index - 4] =& & & & & & & & & & & && &&&writeChar(2,index,key);& & & & & & & && &&&& & & & index++;& & & & & & & && && &}& & & & & & & && && &if (key == '#')& & & & & & & & & & & & & & & & & & & & & & & & & & & & //按下取消键& & & & & & & && && &{&&LCDWriteCmd(0x01);& & & & & & & && && && &writeString(1,1,1,&Enter New PW:&);& & & & & & & && && && &index = 4;& & & & & & & && && &}& & & & & & & & & & & &&&if( key =='*')& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&{& &if (index != 10)& & & & & & & & & & & && && &{& &LCDWriteCmd(0x01);& & & & & & & & & & & & & & & && & //若位数不足6位& & & & & & & && && && && &&&writeString(1,1,1,&The Password must be 6 bits!&);& & & & & & & & & & & & & & & & & & & &&&delay(600000);& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&&//3秒后清屏,等待下次输入& & & & & & & & & & & && && && & LCDWriteCmd(0x01);& & & & & & & && && && && &&&writeString(1,1,1,&Enter New PW:&);& & & & & & & && && && && &&&index = 4;& & & & & & & & & & & & & & & & & & & &&&& & & & & & & & & & & & & & & &&&}& & & & & & & & & & & & & & & &&&for(j=0;j&6;j++) Keyword[j] = allkey[j];& & & & & & & && &//存储新密码& & & & & & & & & & & && & & & & & & & & & & & }& & & & & & & && &&&}& & & & & & & && & & & & & & & }& & & && &}& & & && &writeString(1,1,1,&The Password has changed!&);& & & && &play(1);& & & && &}
13:38:40  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
很明显的问题,复位电路错误,一直处于复位状态 ,所以程序不会运行,51高电平复位
14:38:05  
51高电平复位& && &C1 没有连线,不要着急,慢慢来吗!先写一个让蜂鸣器响的程序,测试一下,通过了再说!!
01:02:22  
不好意思回答晚了!把仿真图上的中文字去掉。
6个问题&&&&&&&&1640个浏览
19个问题&&&&&&&&17068个浏览
32个问题&&&&&&&&6882个浏览
通过本次直播,你将学到:
1.理解mbed操作系统的结构是什么样的
2.mbed功能模块与其他嵌入式操作系统有什么不同
3.工具链使用以及开发流程实操演练
即日起至6月15日,参与英蓓特NXP产品知识小测验,即有机会赢取最新系列开发板。特别奖SBC-EC9100开发板1套,幸运奖FRDM系列最新开发板(型号随机,共10套)。快来参加吧! >> 立即参加
Powered by

我要回帖

更多关于 纯白色 的文章

 

随机推荐