‘壹’ 流水灯实训报告
转载于 http://www.scetop.com/jpkc/pld/ArticleShow.asp?ArticleID=565&BigClassName=%CA%B5%D1%B5%BD%CC%D1%A7
希望对你有帮助
实训项目(一) 流水灯 1. 实验目的通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及Ver-ilog HDL的编程方法;学习简单时序电路的设计和硬件测试.2. 实验内容本实验的内容是建立可用与控制LED流水灯的简单硬件电路,要求在SmartSOPC实验箱上实现LED1-LED8发光二极管流水灯显示.3. 实验原理(1) 在引脚上周期性地输出流水数据,如原来输出的数据是11111100则表示点亮LED1、LED2.流水一次后,输出数据应该为11111000,而此时则应点亮LED1~LED3三个LED发光二极管,这样就可以实现LED流水灯.为了观察方便,流水速率最好在2Hz左右.在QuickSOPC核心板上有一个48MHz的标准钟源,该时钟脉冲CLOCK与芯片的28脚相连.为了产生2Hz的时钟脉冲,在此调用了一个分频模块,通过修改分频系数来变改输出频率.当分频系数为24×10时,输出即为2Hz的频率信号.(2) int_div分频模块说明: int_div模块是一个占空比为50%的任意整数分频器.输入时钟为clock,输出时钟为clk_out.其中F_DIV为分频系数,分频系数范围为1~2N(n=F_DIV_WIDTH).若要改变分频系数,则改变参数F_DIV和F_DIV_WIDTH到相应范围即可.在本例中输入时钟频率为48MHz,要得到2Hz的信号,分频系数应为48×10/2=24×10.对于分频系数为24×10的数需要一个25位宽的计数器.在以后的实验中还会多次用到这个模块,用户可以分析它的基本原理.4. 实验步骤(1) 启动QUARTUSⅡ建立一个空白工程,然后命名为.(2) 新建VerilogHDL源程序文件ledwater.v,输入程序代码并保存,然后进行综合编译.若在编译过程中发现错误,则找出并更正错误,直到编译成功为止.(3) 从设计文件创建模块,由ledwater.v生成名为ledwater.bsf的模块符号文件.(4) 将光盘中EDA_component目录下的int_div.bsf和int_div.v拷贝到工程目录.(5) 新建图形设计文件命名为led_wter.bdf在空白处双击鼠标左键,在sym-bol对话框左上脚的的Iibraries中,分别将projet下的ledwater和int_div模块放在图形文件ed_wter.bdf中,加入输入、输出引脚,双击各引脚符号,进行引脚命名.将与ledwater模块led[7..0]连接的引脚命名为led[7..0],与int_div模块clock连接的引脚命名为clock. int_div模块的clk_out与ledwater模块的clk相连接.双击int_div的参数框,并修改参数,将F_DIV的值改为24000000, F_DIV_WIDTH的值改为25,单击“确定”按扭保存修改的文件的参数如果led_water.bdf中部能看到参数设置框,可在空白处右击鼠标,选择Show Parameter Assignments命令来显示参数设置框。(6) 选择目标器件并对相应的引脚进行锁定,正在这里所选择的器件为Altera公司Cyclone系列的EP 1C6Q240C8芯片,引脚锁定方法如表3.1所列。将未使用的引脚设置为三态输入(一定要设置,否则可能会损坏芯片)。 表3.1 引脚锁定方法 信号引脚 信号引脚1C61C12EDA1C61C12EDALed[0]505050led[5]474747led[1]535353led[6]484848led[2]545454led[7]494949led[3]555555clock282828led[4]176176176 (7) 将led_water.bdf设置为顶层实体。对该工程文件进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。(8) 最后将跳线短接帽跳接到smartSOPC实验箱上JP6的LED0~LED7,使LED1~LED8 分别与FPGAD的引脚50、53~55、176和47~49相连。将AlteraByteBlasterⅡ下载电缆的两端分别接到PC机的打印机并口和QuickSOPC核芯板上的JTAG下载口上,打开电源,执行下载命令,把程序下载到FPGA器件中,此时,即可在smartSOPC实验箱上看到流水灯。(9 更改分频模块(int_div)的分频系数,并重新编译下载,观察流水灯的变化。 5. 实验参考程序 程序清单3.2ledwater.v Mole ledwater(led,clk); //模块名ledwaterOutput[7:0]led; //定义LED输出口Input clk; //定义时钟输入口Reg[8:0] led_r; //定义输出寄存器Assign led=led_r[7:0]; //寄存器输出always@(posedge clk) //在时钟上升沿触发进程beginled_r<=led_r<<1; //是,则输出左移一位if(led_r==9`d0) //循环完毕吗?led_r<=9`b11111111; //是,则重新赋初值endendmole 6. 日积月累(1) 思考:如何实现左流水灯或其他花样流水呢?用户自己动手试试。(2) REG数据类型:由两大类数据类型,线网类型和寄存器类型。REG是最常见的寄存器类型,形式如下:REG[msb:lsb]reg1,reg2,…regN;其中,msb和lsb定义了范围,并且均匀为常数值表达式。范围定义是可以选的。如果没有定义范围,默认值为1位寄存器。 reg数据类型的默认初始值是不定值X,它可以赋正值,也可以赋负值。当一个reg类型数据是一个表达式中的操作数时,他的值被当作是无符号值,即正值(如意个4)为寄存器被赋值-1,则在表达式中进行运算时,其值被认为是+15)。 reg型只表示被定义的信号将用在always块内,理解这一点很重要。并不是说reg 型信号一定是寄存器或触发器的输出。虽然reg型信号常常是寄存器或触发器的输出,但并不一定总是这样,只有在时序逻辑中他对应的才是寄存器,而在组合逻辑中他则表达一个节点。(3)按照上述管工程进行编译,会出现“warning: found pins functioning as undefined clocks and/or memory enables Info: Assuming node ”clock” is an undefined clock”的警告,大概意思是指发现clock节点没有定义成时钟信号。消除这个警告的方法如下: ①选择assignments→timing settings命令,在弹出的对话框中的clockseteings选项区中选中settingsfor indivial clock signals项。 ②对clocks进行设置,在弹出的对话框中单击按钮添加节点,按图中所示进行设置。图中requiredfmax 为系统需求的最大时钟频率,在这里填50HZ即可。 ③设置好之后连续单击OK按钮保存设置,最后再进行编译,原先的warning就会消除。以上的操作是将“clock”加入时钟域。如果“clock”不是一个时钟信号,可将设置属性改为“not a clock ”,也可以消除warning。
‘贰’ 单片机控制的循环彩灯控制系统的设计
刚刚写过一个:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5adeb99112822680a877a415.html
‘叁’ 单片机报告怎么写
给你个例子吧 单片机设计与制作实训报告 题目:交通灯模拟控制 班级:***** 指导教师:** ** 组长:*** 成员:***** 实训地点:******* 实训时间: 2009/12/20——2009/12/31 一、实训目的1. 通过对《单片机原理与接口技术》这门课程的学习,掌握单片机软件、硬件的设计原理与方法。2. 通过“通灯模拟控制”课题胡设计与制作,掌握电子元器件的识别、面包板的使用、及电路整体走线设计。3. 掌握电子产品设计与制作过程中的软、硬件的仿真与调试技术。4. 掌握单片机设计与制作的规划与设计的能力。二、设计要实现的性能指标要求 :利用单片机制作一个能实现模拟的种交通灯显示状态要求的控制系统,交通灯的各种模式就是用红绿黄三种颜色的信号灯按照特定的时间和规律进行显示,在特殊情况下能进行应急处理。三、实训器件元件名称参数数量面包板 1单片机89511晶体振荡器12MHZ1瓷片电容22pF2发光二极管绿、黄、红各四个12电阻10k欧2电解电容22uF1按钮开关 1电阻300欧12四、设计思路设计原理图 1. 程序流程图 交通灯模拟控制系统主程序流程图 交通灯模拟控制系统延时子程序流程图 中断程序流程图 程序;**********交通灯控制程序********ORG 0000HAJMP MAINORG 0003HAJMP EMER ;指向中断子程序ORG 0100HMAIN:MOV TCON,#00H ;置外部中断0、1为电平触发 MOV IE,#81H ;开CPU中断,开外中断0DISP:MOV P1,#0F3H ;A绿灯放行,B红灯禁止 MOV R2,#6EH ;置0。5S循环次数110次DISP1:ACALL DELAY500MS ;调用0.5S延时子程序 DJNZ R2,DISP1 ;55S延时 MOV R2,#06 ;置A绿灯闪烁循环次数WARN1:CPL P1.3 ;A绿灯闪烁 ACALL DELAY500MS DJNZ R2,WARN1 ;A绿灯闪烁3次 MOV P1,#0EBH ;A黄灯警告,B红灯禁止 MOV R2,#04H ;置0.5S循环次数 YEL1:ACALL DELAY500MS DJNZ R2,YEL1 ;延时2S MOV P1,#0DEH ;A红灯,B绿灯 MOV R2,#32H ;置0.5S循环次数DISP2:ACALL DELAY500MS DJNZ R2,DISP2 ;延时25S MOV R2,#06H ;置B绿灯闪烁循环次数WARN2:CPL P1.0 ;B绿灯闪烁 ACALL DELAY500MS DJNZ R2,WARN2 ;B绿灯闪烁3 次 MOV P1,#0DDH ;A红灯,B绿灯 MOV R2,#04H ;置0.5S循环次数YEL2:ACALL DELAY500MS DJNZ R2,YEL2 ;延时2S AJMP DISP ;交通灯循环显示;***** 延时子程序 DELAY500MS ****;***子程序功能:定时器T1,方式1,频率12MHZ,延时0.5S*** DELAY500MS:MOV R3,#0AH MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 LP1:JBC TF1,LP2 SJMP LP1 LP2:MOV TH1,#3CH MOV TL1,#0B0H DJNZ R3,LP1 RET;********中断服务子程序 EMER****;***程序功能:使A B 方向交通灯都变为红灯***EMER:CLR EA PUSH P1 ;P1口数据压栈保护 PUSH 02H PUSH 03H PUSH TH1 ;TH1压栈保护 PUSH TL1 ;TL1压栈保护 MOV P1,#0DBH ;A,B 道均为红灯 ACALL DELAY500MS ACALL DELAY500MSDELAY0 :JB P3.2,DELAY0 ;判断开关是否按下? JNB P3.2,$ ;按键是否松开? POP TL1 ;弹栈恢复现场 POP TH1 POP 03H POP 02H POP P1 SETB EA RETI ;返回主程序 END五、 完成情况(包括仿真调试过程中出现的问题及解决方法) :1、了程序的编写,硬件结构的设计,元器件的布局与接线、软硬件的联调。2、出现面包板上LED灯无法显示,而仿真软件上却可以运行,问题是:线路接触不良。解决方法是:用万用表检测电平。六、 实训总结体会 i. 在编写程序时,必须注意软件和硬件能一一对应,确保原理和实践的统一。 ii. 接线过程中,布局十分重要,同时,正确稳定的接线,对后面的调试起到很重要的作用 iii. 在线路出现问题时,必须按照正确的方法检测错误的地方,比如使用万用表测电平的高低 iv. 组员之间要团结合作,分工协作。
‘肆’ 急求大专单片机实训报告
实训报告总结~
高职高专教育培养的是技术应用型人才,学校为了培养我们学生的创新精神和和工程实践能力,提高我们的综合素质,故在底13周带领全校学生进行为期一周的实训,在时间中互相学习和进步。
现在我们已步入大二下学期,经过两年的在校学习,对我们计算机控制专业有了比较全面的认识和理解,但在校期间,一直忙于理论知识的学习,没能有机会走出校园,真正切身感受本专业的实际应用。所以在实训之前,本专业对我来说是比较抽象的,但通过这次实训,我们揭开了她神秘的面纱,离我们不再遥远!
第一天的实训,我们去了深圳艾克瑞电气有限公司,在去公司之前,公司的史总经理特地抽空来到本班,对艾克瑞公司以及他们公司所开发研究的产品进行了一系列的讲解。所谓“艾克瑞”也就是根据英文“XRAY”直翻译过来的,也就是生产X光。通过他的讲解,我学到了很多东西,比如说X线的产生,X线的特点以及组成等等。X光机主要是用于医疗机构,我们都知道X光的医疗效果是很显着的,可见它的发明及应用,对于我们人类生活,作出了多么巨大的贡献。
第二天我们同样去了艾克瑞公司,哪天让我真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。因为做开发研究的地方都是没有空调的,温度很高,看着那些技术人员流着满身大汗仍然对自己的工作乐此不疲,我真的很感动也很钦佩。除此之外,我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。第一次亲身感受了所学知识与实际的应用,理论与实际的相结合,让我大开眼界。
第四天,我们去了深圳百事可乐公司,坐了一个小时左右的车去到那里,到达那里后给我的第一印象就是:规模庞大。不愧是世界品牌。那里的建筑也主要是以蓝,白为主,真正的体现了了百事可乐的清爽,舒服的意念。通过公司里的工作人员的讲解,知道了百事已经有109年的历史了,听到这里,真的很让我惊讶!1898年8月28日,是百事可乐“PEPSI-COLA”诞生的日子。这是每一个关爱百事可乐的人们都引以为骄傲且不会忘却的日子。一百多年来,百事可乐在喧嚣,纷乱,竞争的氛围中,随着时代的步伐,与美国和世界一起成长壮大。
遗憾的是,由于停电的关系,我们没能参观到他们整个的生产过程,只是参观了一下他们的重要生产线。真的不能简单以一个“规模庞大”的词来形容的。在参观的过程中,我们知道了瓶装可乐可以每分钟生产600多瓶,而罐装可乐,甚至每分钟可生产1000多瓶,真的很不可思议。
“纸上得来终觉浅,绝知此事要躬行!”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不知所措,这让我感到非常的难过。在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这时才真正领悟到“学无止境”的含义。
“千里之行,始于足下”,这是一个短暂而又充实的实习,我认为对我走向社会起到了一个桥梁的作用,过渡的作用,是人生的一段重要的经历,也是一个重要步骤,对将来走上工作岗位也有着很大帮助。
突然想起鲁迅先生的一句话:这里本来没有路,只是走的人多了,也便成了路。生活的路呢?生活的路也是人走出来的,每个人一生总要去很多陌生的地方,然后熟悉,而接着又要启程去另一个陌生的地方。
作为初涉社会的开端,这里有许多回忆和联想,面对残酷的现实社会,每个人都无法选择逃避,除了勇敢面对,我们也无从选择!
走向明天,我依然走我自己!不再茫然…
‘伍’ 单片机交通灯实训报告
交通灯控制系统设计,这个问题可以找我。秋秋:二五三一二六三七二六。
‘陆’ 一个花样流水灯单片机程序(要求1,3,5,7灯亮,2,4,6,8灯亮然后全灭)
先把P1口全部接低电平。
ORG 0000H。
AJMP START。
ORG 0040H。
AA:MOV P1,#55H。
ACALL DELAY。
MOV P1,#0AAH。
ACALL DELAY。
MOV P1,#00H。
ACALL DELAY。
AJMP AA。
DELAY:MOV R5,#256。
LOOP2:MOV R4,#256。
LOOP1:NOP。
NOP。
DJNZ R4,LOOP1。
DJNZ R5,LOOP2。
RET。
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。
在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
‘柒’ 单片机:16个发光二极管组成的流水灯实验
电路图注意:1、P0口里应加上排阻,图里我没画出来。
2、单片机最小系统所需的晶振、复位电路我也没画。
临时帮你做的图,写的程序,细节就不是很完善啦,凑合着看吧!!
下面是程序,_crol_()函数是让temp的值左移一位的即执行一次该函数,temp的值由11111110到11111101,再执行一次是11111011……
_cror_()是右移。
#include<reg51.h>
#include<intrins.h>//包含对_crol_(),_cror_()函数的说明的头文件
unsignedchartemp,i;
voiddelay(unsignedintz)//延时子程序,晶振11.0592M时延时大概1毫秒
{
unsignedintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()
{
while(1)
{
temp=0xfe;
for(i=0;i<8;i++)//流水灯从P0^0口到P0^7口
{
P0=temp;
temp=_crol_(temp,1);
delay(5);
}
i=0;
temp=0xfe;
for(i=0;i<8;i++)//流水灯从P1^0口到P1^7口
{
P1=temp;
temp=_crol_(temp,1);
delay(5);
}
i=0;
temp=0x7f;
for(i=0;i<8;i++)//流水灯从P1^7口到P1^0口
{
P1=temp;
temp=_cror_(temp,1);
delay(5);
}
i=0;
temp=0x7f;
for(i=0;i<8;i++)//流水灯从P0^7口到P0^0口
{
P0=temp;
temp=_cror_(temp,1);
delay(5);
}
i=0;
}
}
‘捌’ 单片机,花样流水灯
K1 BIT P3.0
K2 BIT P3.1
ORG 0000H
JMP START
START:
MOV TMOD, #01H
SETB TR0
MOV R4, #7FH
MOV R5, #7FH
MOV R6, #0FEH
M_LOOP:
JNB K1, K1_PROG
JNB K2, K2_PROG
MOV P1, R4
MOV A, R4
RR A
MOV R4, A
CALL DL1S
JMP M_LOOP
;---------------------------------
K1_PROG:
MOV A, R5
ANL A, R6
MOV P1, A
MOV A, R5
RR A
MOV R5, A
MOV A, R6
RL A
MOV R6, A
CJNE R6, #0EFH, K1_DL
MOV R5, #7FH
MOV R6, #0FEH
K1_DL:
CALL DL1S
JMP M_LOOP
;---------------------------------
K2_PROG:
MOV R3, #16
LP2:XRL P1, #255
CALL DL1S
DJNZ R3, LP2
JMP M_LOOP
;---------------------------------
DL1S:
MOV R2, #20
LP1:MOV TL0, #LOW (65536-50000)
MOV TH0, #HIGH(65536-50000)
JNB TF0, $
CLR TF0
DJNZ R2, LP1
RET
;---------------------------------
END
‘玖’ 单片机实训心得
兄弟。我也是实习这个,真有缘。 把我的借你抄吧。
单片机实训心得
这个星期参加单片机实习,让我受益匪浅,让我对这个书本大小的电路板有了更深刻的认识。这次实习我们使用控制电路的单片机是AT89S52。开始点亮第一个发光二极管就出问题,这对准备大干一场的我是个不小的打击。老师过来检查发现我用的是P0口,而其他同学用的是P1口,十分欣慰,指正P0口应从第二个端口接线。之后的实习也是波折起伏,发光二级管,数码管,独立按键,定时计速器,程序调试无数次,从中也总结出不少调试的技巧,写好一个漂亮的程序,首先需要冷静的思考,其次需要细心的排序,排除先后主次的关系。接着逻辑性要明显,每一句要明确存在的意义。其中有很多程序是我自己写的,因为一个跟着老师板书的学生是永远没有自己的作品的。虽然其中存在很多错误,但是我在调试中成长。一个星期的实习很快就过去了。在此我感谢老师的教导,感谢同学们的鼓励,感谢自己的独树一帜,让我对这个小小的电路板有了大大的认识。
(其实我觉得单片机实习真的没什么好写的,随便扯。要不就抄实习报告上面的任务指南。单片机说来说去就是一个板子,又不可能说成一朵花。哎。。。)
‘拾’ 单片机C语言 两个按键控制8位花样流水灯,P1.0接按键k1,P1.1接按键k2,P0口的8位接8个发光二极管
汇编程序如下:
; 花样流水灯(8个发光二极管以各种形式循环点亮)
; 功能:流水灯(8个发光二极管循环以1S间隔以各种形式循环点亮)
ORG H ;伪指令,指定程序从H开始存放
LJMP MAIN ;跳转指令,程序跳转至MAIN处执行
ORG H ;伪指令,指定程序从H开始存放
MAIN: MO SP, #60H ;给堆栈指针赋初值
MO P1,#0FFH ;给P1口赋值
MO DPTR,#TABLE;查表
LIGHT: MO R4,#42 ;设置循环次数
LOOP: MO A,#42 ;给A赋初值
SUBB A,R4 ;将A的值与R4的值相减,结果存在A中
MOC A,@A+DPTR ;将A+DPTR的值所对应的TABLE中的值赋给A
MO P1,A ;将A的值赋给P1口
LCALL DEL1S ;调用1S延时子程序
DJNZ R4,LOOP ;判断R4是否为0,不为0跳转,为0顺序执行
LJMP LIGHT ;跳转指令,跳转至LIGHT处继续执行
;1S延时子程序(11.MHz晶振,误差0微秒)
DEL1S: MO R5, #H
DL1S0: MO R6, #0A4H
DL1S1: MO R7, #H
DJNZ R7, $
DJNZ R6, DL1S1
DJNZ R5, DL1S0
RET
TABLE: ;定义表格数据
DB 0FFH ;全灭
DB 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐个点亮
DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H H H ;依次逐个叠加
DB H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减
DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开
DB 07EH 03CH H H H H 03CH 07EH ;两边叠加后递减
DB H ;全亮
END ;程序结束指令
C语言程序如下:
/* 该实验是花样流水灯(8个发光二极管以各种方式循环点亮),功能是花样流水灯(8个发光二极管以1S间隔以各种方式循环点亮) */
#include//包含reg.52文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
uchar code table[]={
0xff,//全灭
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//依次逐个点亮
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,//依次逐个叠加
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//依次逐个递减
0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e,//两边靠拢后分开
0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,//两边叠加后递减
0x00,//全亮
;//¶¨ҥѭ»·Ӄʽ¾ݱ
/*Aµď֏ȊLj«ð£¬ȻºΖぁ£¬ȻºΖ
ȻºΖݼ»º߿¿£ºª£¬Ȼºߵݼ
ºa£ѭ»·£¡*/
void in()//inº¯ʽ
{
a=0;//¸
while(1)//whileѭ»·
{
P1=table[a];//½«a˹ԚµableµĖµ¸³¸
delay();//1Sѓʱד³̐ɠ a ;//aµĖµ¼Ӓ»
if(a==42)//²⊔aʇ·Ƥ2
a=0;//¸µ
}
}
void delay(uint z)//1msѓʱד³̐¨¹±䑓ʱʱ¼F{
uint x,y;
for(x=z;x