PIC单片机及FPGA实验系统设计 第14页
特别注意:PIC中断的优先级问题:PIC中的中断的优先级是人为设定的,先判断谁的中断标志溢出,就先执行谁的中断,比如图6-17的中断处理中,先判断的是T0中断标志,就先执行的T0中断,T0没有溢出,再执行其他的中断。
图 6 17
(辣)两个综合的程序:这里的综合程序里面的子程序前面大部分都已经出现过,所以,程序流程图也不在显示,这里将原理说明,有个别特殊处理再做特殊介绍。
(1)电子锁程序:文件dianzisuo.C(附录十三)
实现功能:综合例子,利用4×4键盘和数码管实现密码锁8位数码管显示,初始化时显示P..,接着输入最大6位数的密码。当密码输入完成后,按下确认键,进行密码比较,然后给出相应信息。在输入密码过程中,显示器只显示‘8’当数字输入超过6个时候发出报警信号。在密码输入过程中,若输入错误,可以利用“DEL”删除刚刚输入的错误的数字。
原理说明:输入是按照前面的shumaguan-1.C中所描述的方法一样的输入,显示,只是显示的时候,调用的是一个buf,但是按键盘所代表的数值却放到另外的一个buf,这样显示的时候可以只显示8,然后当按下enter时候,用数字存储buf里面的内容和设置的密码对比,相同则指示灯亮,否则报警标志触发报警程序。按下DEL可以删除刚输入的值,软件上设置一个标志位,让这个标志位减1。
键盘设计显示如下(图 6 18):
图 6 18
说明:10,11,12,13设计是为了按键盘判断方便
(2)水泥包装机:文件baozhuangji.C(附录十四)
这个程序是作者在公司参与制作的一个工程的一部分,主要作用是利用AD转换来测量重量水泥的重量,比如说设定50KG,当水泥的重量达到的时候。产生信号(标志位),中断机械操作。
原理说明:原理部分和AD转换相同。
特色部分:水泥重量的设定,数码管设定的跳动设计。
难点:AD转换精度不好掌握,装水泥的时候有冲力,可能瞬间把重量冲到设定值,解决AD转换的精度问题,可以使用位数更多的AD转换器,也可以在内部实现,对多次数的平均,这个方法可以缓解冲力问题。此外抗干扰设计也很重要。
(七)通信程序:文件MUC-MUC.ASM,mcu-mcu-cong.asm(附录十二)
这里的主要是用汇编实现了单片机与单片机的通信。一个是 主模式,一个是从模式,通信的重点在时序的设定,这里不做过多介绍。
6.2 FPGA软件设计与实现
6.2.1 Quartus II的简单使用介绍
Quartus II软件的简单介绍如下:
Quartus II软件的界面如下(图 6 19):
图 6 19
(1) Quartus II建立一个工程,点击file里面的New Project Wizard,出现下面的界面(图 6 20):
图 6 20
设置工程名称,这里设定为FPGA,下面这个是设置顶层文件实体名称。建议和工程名称相同,点next。
(2) 出现的界面如图 6 21,这一步是添加文件到工程文件里面,添加完毕点next,如果没有则直接点next。
图 6 21
(3) 随后出现的界面如下(图 6 22),这步为器件选择,可以选择器件,或者让系统自动选择
图 6 22
(4) 随后出现的是第三方工具选择窗口(图 6 23),这里没有用到第三房工具,所以直接选next。
图 6 23
(5) 随后出现的是Summary窗口(图 6 24)点Finish完成工程创建.
图 6 24
下面在工程中创建一个文件:点击File->New,出现下面窗口(图 6 25):
图 6 25
选择VHDL File然后选择OK,将新出现的文件保存,文件既可被放到新建好的工程里面。
综合:点击Tools->Complier Tools,出现综合工具窗口(图 6 26),点Start,即可以进行文件的综合。
图 6 26
仿真:
(1)创建一个仿真文件在File->New里面选择Vector Waveform Flie,创建.vwf波形文件(图 6 27)。
图 6 27
(2)添加输入输出,View->Utility Windows->Node Finder然后选List,将需要的
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>
PIC单片机及FPGA实验系统设计 第14页下载如图片无法显示或论文不完整,请联系qq752018766