摘要:以下程序择晶振为12MHz时钟i周期为晶振的倒数,位1/f(晶振),机器周期为时钟周期的12分频,即为12*1/f(晶振),故12MHz的机器周期为1us定时器1/0 /******************************************************************************/#include <reg52.h> //头文件调用,写程序时都要加上,#define uint unsigned int //宏定义,为了后面定义变量书写简便#define uchar unsigned charuchar mm=0; ...
阅读全文
摘要:89C51单片机结构框图1、一个8位 的微处理器CPU。2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。5、两个或三个定时/计数器:每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。7、片
阅读全文
摘要:原文:http://wenwen.soso.com/z/q207451784.htmaltium designer 怎么才能不经过原理图直接在空白pcb上加封装然后画线?我现在直接打开新的pcb,然后添加封装,但是画线的时候两个焊孔之间不能连线。应该是网络表没连接,然后就不能直接连,我想知道怎么才能解决这个问题?对于你的这种想法,如果是复杂点的PCB,建议还是画下SCH,这样的好处就不说了,如果PCB只有几个元件,那么我觉得可以用这种方法,但也要有一定的功力,否则也会出错;想不画原理图,直接进行布线,往往是很多初学者最想知道的,但是这也一定不是初学者能学到的。因为你买的书,都是按画PCB的流程
阅读全文
摘要:1、 AD制板流程先设计原理图,确定封装,设定板子边框,导入网表,布局,设置布线规则,布线,铺铜,DRC规则检查,打印输出 ,电源线要尽量粗一点, 因为要通过的电流比较大,地线也要粗点。电源在外面,容易接线,高频在里面,低频在外面防干扰,地线最好覆铜模拟信号要和数字信号格里,防止干扰线拐角最好是圆弧型的,防止尖端放电,100mil=2.54mm.原理图部分在原理图绘图窗口,Design 菜单下,Make Schematic Library 生成原理图库,Make Intergrated Library 生成集成库,放置总线来放置总线,点击Place BUS,画出一段总线见右图。根据最下面提示,
阅读全文
摘要:举个简单的例子来说吧,做点阵的集成库:前面傻瓜式建工程省了,效果如图所示:点击Didong.SchLib在原理图做出如下步骤:首先点击Rectangle,其次点击pin添加引脚Place菜单下选择Pin放置引脚,按键盘上的空格键即可选择引脚方向,按Tab键即进入属性设置。按住键盘上的ctrl键再滚动鼠标滑轮即可放大缩小图纸得到的效果图为其中要提的是怎么添加封装呢?其一:其二:左边点击edit出现如图的右边的图示,其中Deignator一般定义为U?,还有最右边的是Add添加另一种封装的方法。完成后的效果如图:
阅读全文
摘要:以下大部分内容摘自VerilogHDL扫盲篇:学习VerilogHDL语言不像学习一些高级语言,对于高级语言来说它们已经是完成品了,其外它们还有很多被隐藏的指令,这些好处无疑是减轻了学习者的负担。相反的VerilogHDL语言既是完成品,既不是完成品,就是因为它太自由了... 所以往往会让学习者感到疑惑,很疲惫和浮躁(我不学了!)。学习VerilogHDL语言需要一段过渡期的,快则半年,普通则1~2年,慢则很多年。即使经过了过渡期这也不表示已经掌握VerilogHDL语言了。所以呀朋友,希望你们可以沉住气,“欲速则不达”这是老祖先的智慧,它非常适合用在学习VerilogHDL语言的路上。Ver
阅读全文
摘要:在altium打开page setup,按如下设置,注意打圈的是调整打印机位置的,若电脑显示的是右边,则打印出来的则是左边,当有一张新的菲林纸时一般我们设置Horzontal为200,Vertical为100。注意了,portrait和landscape打印时是不一样的,一般我们选择landscape,上面的数值也是针对ladnscape的之后再file-print preview 点击如图所示添加如下圈内的层注意了,因为在top内画pcb的,所以要添加,如果是bottom画的就添加bottom的层,multi-layer是多层,如焊盘,过孔等,keyout-layer是隔离层,keyoutl
阅读全文
摘要:Abstract撰寫Verilog時,雖然每個module都會先用ModelSim或Quartus II自帶的simulator仿真過,但真的將每個module合併時,一些不可預期的『run-time』問題可能才一一浮現,這時得靠SignalTap II來幫忙debug。Introduction使用環境:Quartus II 8.0 + DE2-70 (Cyclone II EP2C70F896C6N)實際使用SignalTap II時,會發現有些reg與wire可以觀察,有些又無法觀察,在(原創) 如何使用SignalTap II觀察reg值? (IC Design) (Quartus II
阅读全文
摘要:Abstract邊緣檢測電路(edge detection circuit)是個常見的基本電路。Introduction使用環境:Quartus II 7.2 SP3所謂的邊緣檢測,簡單的說就是判斷前一個clock的狀態和目前clock狀態的比較,若由0變1,就是上升沿檢測電路(posedge edge detection circuit)(又稱上緣微分電路),若是由1變0,就是下升沿檢測電路(negedge edge detection circuit)(又稱下緣微分電路),若上升沿與下升沿都要檢測,就是雙沿檢測電路電路(double edge detection)。上升沿檢測電路(pose
阅读全文
摘要:;将内部数据存储器40H~4FH单元的16个数传送到;外部数据存储器100H~10FH单元中。(要求用循环指令实现) ORG 0000H SJMP MAIN ORG 0030HMAIN: MOV R0, #40H MOV DPTR, #100HLOOP: MOV A, @R0 MOVX @DPTR, A ;注意了,DPTR是16位的,寄存器间接寻址:寻址范围,内部低128字节单元(只能使用R0和R1做间接寄存器),纠结,keil软件看不到外部数据存储器的内容 INC R0 INC DPTR CJNE R0...
阅读全文
摘要:;NAME: 跑马灯;AUTOR: ;TIEE: 2012年4月12日 18:12:25;CONTENT: P1.0~P1.7接发光二极管L1~L8 CSEG AT 4000H ;定义起始地址,为什么是4000H呢 ;存储器:程序存储器、数据存储器统一编址,达64K,板上ROM(16K);RAM ;(32K)供用户使用,可扩展至48k。用户存储器起始地址为4000H;8051原 ;有中断入口地址均定位在偏移4000H之后的相应地...
阅读全文
摘要:原文:http://zyq5510806.blog.163.com/blog/static/122738986201111831442694/Keil C51 调试程序时, 对 ROM的查看 以及RAM 查看或修改2011-02-18 15:14:42|分类:单片机技术|字号订阅 在 Kei 里使用 DeBug 模式时,如要 查看外部 RAM 的数据 或查看 ACC 的内容可以进行以下操作;sysGetTxMode:LCALL Com0185(C:2B95)JNB 0xE0.0,sysGetTxMode................retCom0185:MOV DPTR,#0x7020M..
阅读全文
摘要:原文:http://bbs.ednchina.com/BLOG_ARTICLE_124824.HTM题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢。这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一个有志于FPGA/CPLD方面发展的工程师学习的。1、硬件设计基本原则(1)、速度与面积平衡和互换原则:一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可
阅读全文
摘要:原文:http://blog.chinaaet.com/detail/18161.html曾记得当年看过一本PCB的书,说Altium Designer 有自动保存功能,但是会影响Layout的速度,默认关闭,再brother 7的引导下,我找到了这个避免自我阉割的功能:
阅读全文
摘要:原文:http://blog.chinaaet.com/detail/16592.htmlAltium Designer Winter 09 Rules Design很多人设计的PCB板子去厂家做了回来之后发现很戳,一直埋怨厂家的戳,可实际上自己不一定按照厂家的规则来。在此我根据jiaXX的规则发表个人对Rules的见解:根据所谓最XX的PCB制作厂家:jia XX的工艺标准:以及综合Alium Dsigner Winter 09 的Runle规则,一般要能到让jiaXX做出来的,你千万不要挑战他的极限。就像你平时一般吃1碗饭,但是最多能够吃3碗,如果每次让你吃三碗,你会受不鸟的。OK,不扯淡
阅读全文
摘要:原文:http://www.cnblogs.com/crazybingo/archive/2010/07/29/1788161.html进入电子设个世界,PCB是少不了的东西,刚开始画板子的时候,感觉好神奇。那个时候用的是Altium Designer Summer 08 ,现在用的是Altium Designer Winnter 09 ,感觉跟Altium Designer 6.9 也没多大差别,只是功能上更新了点,视觉上变得更加炫了。偶尔逛论坛,或者自己发现,有好未知的秘密,放在这里,已知的未知的,Let‘s see see。(1)、在pcb布局阶段:在原理图中框选一个区域的元件或点选若干
阅读全文
摘要:愿文:http://pcdian.blog.163.com/blog/static/1619004520119311526429/还没有成功过,收藏了先Proteus与Altium Designer联合使用2011-10-03 16:27:43|分类:单片机|字号订阅很喜欢用protues来仿真,用Altium Designer来画电路板。但是经常要画两遍原理图很烦呀,心中一直有疑问,究竟如何才能使protues里电路图为Altium Designer所用呢?测试平台Proteus7.5 sp3+Altium Designer 6.91.先将要仿真的protues文件画好,还有一个非常重要的问
阅读全文
摘要:以下代码是选自特权同学的《《深入浅出玩转FPGA》》 1 module led_seg7( 2 clk,rst_n, 3 sm_cs1_n,sm_cs2_n,sm_db 4 ); 5 6 input clk; // 50MHz 7 input rst_n; // 复位信号,低有效 8 9 output sm_cs1_n,sm_cs2_n; //数码管片选信号,低有效10 output[6:0] sm_db; //7段数码管(不包括小数点)11 12 reg[24:0] cnt; /...
阅读全文
摘要:以下代码是选自特权同学的《《深入浅出玩转FPGA》》 1 `timescale 1ns / 1ps 2 //////////////////////////////////////////////////////////////////////////////// 3 // Company: 4 // Engineer: 5 // 6 // Create Date: 7 // Design Name: 8 // Module Name: 9 // Project Name: 10 // Target Device: 11 // Tool versions: 1...
阅读全文
摘要:以下代码是选自特权同学的《《深入浅出玩转FPGA》》 1 //说明:当三个独立按键的某一个被按下后,相应的LED被点亮; 2 // 再次按下后,LED熄灭,按键控制LED亮灭 3 4 module sw_debounce( 5 clk,rst_n, 6 sw1_n,sw2_n,sw3_n, 7 led_d1,led_d2,led_d3 8 ); 9 10 input clk; //主时钟信号,50MHz11 input rst_n; //复位信号,低有效1...
阅读全文
摘要:以下代码是选自特权同学的《《深入浅出玩转FPGA》》1 module clk_div( 2 clk,rst_n, 3 clk_div 4 ); 5 6 input clk; //50MHz 7 input rst_n; //低电平复位信号 8 9 output clk_div; //分频信号,连接到蜂鸣器10 11 //---------------------------------------------------12 reg[19:0] cnt; //分频计数器13 14 al...
阅读全文
摘要:时钟是整个电路最重要、最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行, 这就要求时钟信号时延差要非常小, 否则就可能造成时序逻辑状态出错;因而明确FPGA设计中决定系统时钟的因素,尽量较小时钟的延时对保证设计的稳定性有非常重要的意义。 1.1 建立时间与保持时间 建立时间(Tsu:set up time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(Th:hold time)是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。建立与保持时间的简单示意图如下..
阅读全文
摘要:原文:http://www.cnblogs.com/yuphone/archive/2010/01/18/1650612.html示范程序seg7_test.v12345678910111213141516171819202122/** seg7 x 8 查找表测试文件*/module seg7_test(input CLOCK_50,output [7:0] SEG7_DIG,output [7:0] SEG7_SEG);seg7_8_LUT u0(.i_clock(CLOCK_50),.i_turn_off(8'b1100_0000), // 熄灭位[此处取第7、6位.i_dp(8
阅读全文