版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机综合课程相关设计第3章外围电路及控制系统设计为MiniSys加I/O功能16位定时/16位脉冲宽度调制PWM4×4键盘扫描电路4位7段LED显示控制UART控制看门狗控制中断的设计1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(1)MiniSys为I/O统一编址方式。将DATARAM地址分区,其中高256个字节用来做IO,一共是128个16位端口。0000H4KBRAM0FFFHFFFFHFF00H256BYTE1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(2)IO端口地址分配原则(可自行决定)将8根IO端口线(16位地址线的低8位,高8位为全1)的高4位用来译码得到最多16个接口电路的片选信号。低4位组成每个接口电路的16个字节端口地址,由于Minisys只有16位数据处理能力。所以每个接口电路实际上是有8个字端口地址。1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(3)对MiniSys的修改修改MemWrite和MemRead信号的逻辑。增加IORead和IOWrite信号,改MemtoReg为MemorIOtoReg。assignRegWrite=(R_format||Lw||Jalc||I_data)&&!(Jrn);//需要写寄存器的指令
assignMemWrite=((Sw==1)&&(ImmediatHigh[9:2]!=8’b11111111))?1:0;//写存储器,ImmediatHigh[9:0]是新增的输入信号=instructions[15..6]assignMemRead=((Lw==1)&&(ImmediatHigh[9:2]!=8’b11111111))?1:0;//读存储器
assignMemorIOtoReg=IORead||MemRead;//读操作需要从端口或存储器读数据到寄存器
assignIOWrite =((Sw==1)&&(ImmediatHigh[9:2]==8’b11111111))?1:0;//写端口
assignIORead=((Lw==1)&&(ImmediatHigh[9:2]==8’b11111111))?1:0;//读端口,ImmediatHigh[9:0]就是instructions[15:6]1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(4)增加一个MEMorIO模块运算单元存储单元译码单元Addresswdatardata1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(5)增加一个MEMorIO模块运算单元存储单元译码单元mAddressMEMorIOAddressPortNumbermrdataIrdatardatawdataiwdatamwdata片选信号注意它1/13/2023计算机综合课程相关设计为MiniSys加I/O功能(6)片选信号首地址LEDCtrlFF00HKEYCtrlFF10HCTCCtrlFF20HPWMCtrlFF30HUARTCtrlFF40HWDTCtrlFF50H具体端口分配1/13/2023计算机综合课程相关设计16位定时/计数器(1)功能两个定时/计数器CNT0和CNT1。具有计数和定时两个功能。计数方式下可以对输入的外部脉冲进行计数,当计数到初值寄存器的值的时候,设置状态寄存器的相应位。定时方式下,在时钟作用下计时器做减1,到1的时候设置状态寄存器的相应位,并在相应的COUT脚输出一个时钟的低电平(平时COUT是高电平)。状态寄存器在被读取后被清零。1/13/2023计算机综合课程相关设计16位定时/计数器(2)CNT0方式寄存器(FF20H)CNT1方式寄存器(FF22H);两个寄存器均为只可写××××××××××××××0150:定时1:计数0:非循环1:循环11/13/2023计算机综合课程相关设计16位定时/计数器(3)CNT0状态寄存器(FF20H)CNT1状态寄存器(FF22H);两个寄存器均为只可读,读取后被清0×××××××××××××0151:定时到1:计数到10:定时/计数未开始1:定时/计数开始1/13/2023计算机综合课程相关设计16位定时/计数器(4)CNT0初值寄存器(O)/当前值寄存器(I)(FF24H)CNT1初值寄存器(O)/当前值寄存器(I)(FF26H)××××××××××××××××015两个寄存器通过读/写线区别1/13/2023计算机综合课程相关设计16位定时/计数器(5)输入输出安排rdata15~rdata0(O)用于CPU读数据wdata15~wdata0(I)用于CPU写数据CS(I)片选端CLK(I)时钟信号Reset(I)复位信号pulse0,pulse1(I)两个CNT的外部脉冲信号address3~address0(I)端口地址IOW(I)写信号IOR(I)读信号COUT0,COUT1(O)定时/计数器输出1/13/2023计算机综合课程相关设计脉冲宽度调制PWM(1)功能内部一个16位计数器和一个16位对比值,计数器周而复始的加1计数,计数到计数器的最大值(默认为FFFFH)的时候转为0再计数。当计数器的值大于对比值,输出端输出低电平,否则输出高电平。对比值(默认为7FFFH)的不同决定了输出脉冲的占空比。计数器的最大值可以由软件设定,以便确定PWM的输出脉冲的调制频率。1/13/2023计算机综合课程相关设计脉冲宽度调制PWM(2)输入输出安排RESET(I)初始化address2~address0(I)端口地址D15~D0(I)用于写入对比值和最大值CS(I)片选端CLK(I)时钟信号IOW(I)写信号PWM(O)输出端1/13/2023计算机综合课程相关设计脉冲宽度调制PWM(3)内部寄存器最大值寄存器(FF30H)(只写)对比值寄存器(FF32H)(只写)使能寄存器(FF34H)(只写)×××××××××××××××015默认为00:不许输出脉冲1:允许输出脉冲1/13/2023计算机综合课程相关设计4×4键盘扫描电路设计(1)功能
自动扫描4×4的键盘,当有键按下的时候扫描键值,将键值记录到键值寄存器,并置位状态寄存器中的“有键”标志。当CPU读出键值后,将“有键”标志清除。1/13/2023计算机综合课程相关设计4×4键盘扫描电路设计(2)输入输出安排D15~D0(O)用于读出数据CS(I)片选端CLK(I)时钟信号line3~line0(I)键盘行输出线col3~col0(O)键盘列输入线address1~address0(I)端口地址IOR(I)读信号1/13/2023计算机综合课程相关设计4×4键盘扫描电路设计(3)内部寄存器键值寄存器(FF10H)(只读)状态寄存器(FF12H)(只读)×××××××××××××××0150:无键1:有键1/13/2023计算机综合课程相关设计4位7段LED显示控制(1)功能
通过向该控制电路写16位数据,经过译码控制共阳极的7段LED显示。16位数每半个字节控制一位7段LED,从高位到地位排列。××××××××××××××××015LED0LED1LED2LED31/13/2023计算机综合课程相关设计4位7段LED显示控制(2)7段共阳极LED
需要点亮的笔画需
要输出0。将a~g分别接输出
的7位数据的位0
~位6abcdefg1/13/2023计算机综合课程相关设计4位7段LED显示控制(3)输入输出安排Reset(I)初始化D15~D0(I)用于写数据CS(I)片选端IOW(I)写信号led00~led060位led输出线led10~led161位led输出线led20~led262位led输出线led30~led363位led输出线内部寄存器数据锁存器(FF00H)1/13/2023计算机综合课程相关设计简单UART控制(1)功能
负责控制将CPU来的8位数据并转串,然后按照异步串行通信数据格式输出,将串口来的8位串行数据串转并,并在CPU请求的时候输入给CPU。1/13/2023计算机综合课程相关设计简单UART控制(2)设计时注意事项XTAL可以是单独的时钟信号,和系统的CLK不一样。假设外部时钟XTAL的频率是波特率的16倍(本设计采用固定波特率9600b/s)接收器接收数据的采样率也是波特率的16倍(既XTAL频率)采用中间值采样的原则,也就是一个数据位占16个接收时钟宽度,在第8个时钟的时候采样。数据格式固定为1位起始位,8位数据位和1位停止位。起始位为0,停止位为1。串行输出线空闲状态为1。1/13/2023计算机综合课程相关设计简单UART控制(3)输入输出安排rdata7~rdata0(O)用于CPU读数据wdata7~wdata0(I)用于CPU写数据CS(I)片选端XTAL(I)外部时钟信号TxD(O)串行输出RxD(I)外部串行输入address2~address0(I)端口地址IOW(I)写信号IOR(I)读信号RESET(I)复位信号1/13/2023计算机综合课程相关设计简单UART控制(4)内部寄存器输出锁存器(FF40H)(只用8位)输入缓冲器(FF40H)(只用8位)状态寄存器(FF42H)××××××××××××××0151:输出完1:输入完状态寄存器在读出输入缓冲器后清D1位,在写入输出锁存器后清D0位。1/13/2023计算机综合课程相关设计看门狗电路(1)功能内含一个16位定时器,系统复位后计数值为FFFFH,之后每时钟计数值减1,当减到0的时候,向CPU发4个时钟周期的RESET信号,同时计数值恢复到FFFFH并继续计数。通过软件不断地定期写看门狗端口来复位看门狗,使计数器重新从FFFFH开始计数。注意增加看门狗电路后,CPU的RESET输入脚应该是系统复位信号和看门狗发出的复位信号的组合。1/13/2023计算机综合课程相关设计看门狗电路(2)输入输出安排wdata7~wdata0(I)用于CPU写数据CS(I)片选端CLK(I)外部时钟信号RST(O)输出给CPU的复位信号IOW(I)写信号RESET(I)系统复位信号1/13/2023计算机综合课程相关设计看门狗电路(3)内部逻辑
只要CS,IOW同时有效,看门狗电路就被复位,看门狗电路访问的端口地址是FF50H1/13/2023计算机综合课程相关设计中断的设计(1)为Minisys增加两个中断功能——中断0和中断1,中断0优先级大于中断1,不支持同级中断嵌套。将$26和$27设计为两个中断返回地址存放寄存器,分别在中断0和中断1到来的时候存放返回地址。它们分别称为$i0和$i1。这两个寄存器也改为系统寄存器,用户不可访问。1/13/2023计算机综合课程相关设计中断的设计(2)增加一个中断屏蔽寄存器IMASKR。××××××××××××××0150:允许中断01:屏蔽中断00:允许中断11:屏蔽中断1
这两位的置和清由硬件自动实现,当中断到来,跳转到服务子程序的时候置位,执行jr$i0或jr$i1的时候清相应的位。1/13/2023计算机综合课程相关设计中断的设计(3)中断处理中断向量的制定
将4KB程序ROM的FF8H~FFBH作为中断0的向量,FFCH~FFFH作为中断1的向量。用户程序应该在这两个地址放上j语句,跳转到真正的中断处理程序入口,如果没有中断处理程序,也要分别放上jr$i0和jr$i11/13/2023计算机综合课程相关设计中断的设计(4)中断处理中断响应的过程
1)将下一条指令的PC值存放到$i0或$i1
2)设置IMASKR的相应位,屏蔽有关中断
3)跳转到FF8或FFC中断返回过程(对jr$i0和jr$i1的处理)
1)清IMASKR的相应位,打开有关中断
2)执行jr$i0或jr$i11/13/2023计算机综合课程相关设计中断的设计(5)中断处理中断优先权
中断0优先于中断1,当两个中断同时到来,先处理中断0。中断嵌套
不允许同级中断嵌套,中断0可以嵌套在中断1中,也就是说中断0能够中断中断1的处理程序。1/13/2023计算机综合课程相关设计中断的设计(6)中断请求信号中断请求信号源
CTC16、KEY16、UART均可以发中断请求,可自选两个改成中断方式。中断请求信号属性
尽量采用电平触发,而且尽量使用多时钟周期的高电平触发。这样可以避免干扰信号的误判。多时钟周期高电平的实现可以考虑使用一个时钟计数器和状态机。1/13/2023计算机综合课程相关设计第4章软件设计伪指令堆栈的实现汇编编译程序测试与应用程序1/13/2023计算机综合课程相关设计伪指令(1)绝对地址定义ORG_DATA32位数据区双字地址
定义下一语句在数据RAM中的绝对地址。
例:ORG_DATA0000
bufDD0000ffff,55aa1234;ORG_CODE32位代码区双字地址
定义下一语句在程序ROM中的绝对地址。
例:ORG_CODEFF8
jint01/13/2023计算机综合课程相关设计伪指令(2)变量定义(仅支持32位变量定义,用十六进制表示值,变量名就是地址)
变量名DW值1,值2,……值n
(值都以16进制表示)例如:
bufDW0000ffff,55aa1234;
……
lw$V0,buf($Zero);load0000FFFF
注释符
;英文的注释文字1/13/2023计算机综合课程相关设计伪指令(3)标号定义与使用(标号名是地址)
标号名:语句
例如:
int0:lw$t0,12($t1)
jint0……1/13/2023计算机综合课程相关设计段定义伪指令(1)数据段定义伪指令
DATASEG;数据段开始
DATAENDS;数据段结束
例:
DATASEG;数据段开始
bufDD0000ffff,55aa1234
DATAENDS;数据段结束1/13/2023计算机综合课程相关设计段定义伪指令(2)代码段定义伪指令
CODESEG;代码段开始
CODEENDS;代码段结束
例:
CODESEG;数据段开始
lw$t0,buff($t1)
……
CODEENDS;数据段结束1/13/2023计算机综合课程相关设计程序结束伪指令格式
END标号
注意这里的标号一定要在汇编程序中出现过,程序结束伪指令不仅表明程序结束,更重要的是告诉汇编器,程序的第1句是哪一句。因此这里的标号应该是程序第1句的标号。1/13/2023计算机综合课程相关设计堆栈的实现(1)使用数据RAM的一部分作为堆栈
由于数据是32位
的,所以堆栈总共
有128个单元。
堆栈的操作以及
堆栈越界检查全由
软件实现。0000H0FFFH0E00H512B堆栈3584B数据区1/13/2023计算机综合课程相关设计堆栈的实现(2)堆栈操作(初始$SP=0FFFH)
压栈操作 出栈操作
sw$t0,0($sp) addi$sp,$sp,4
addi$sp,$sp,-4 lw$t0,0($sp)1/13/2023计算机综合课程相关设计汇编编译程序(1)目标
将用MiniSys汇编语言编写的MiniSys程序(含伪指令)编译成.mif文件,其中代码部分编译成,数据部分编译成。
注意mif文件中不要出现任何中文,包括注释中也不要用中文。1/13/2023计算机综合课程相关设计汇编编译程序(2)要求编译结果正确,格式正确。具有错误报告功能,可定位到错误语句的行。可直接用于QuartusII中进行芯片编译。在中,对于每条翻译过的指令码,用注释的方法将源代码及源代码后的注释附在后面以便调试的时候对照。(不能用中文)编译程序可以用C、C++、JAVA、DELPHI、PowerBuilder等任何一种语言来实现。MiniSys汇编指令书写格式参见指令系统的指令举例,汇编程序书写格式见后。1/13/2023计算机综合课程相关设计汇编编译程序(3)ORG_DATA0000 ;ThestartaddressofdataBUFDW000000FF,55005500ORG_CODE0000 ;Thestartaddressofcodestart:addi$t0,$Zero,0;Alabelforthefirststatement,$t0=0lw $v0,buf($t0) ;$v0=000000FF(buf[0])addi$t0,$t0,4lw $v1,buf($t0) ;$v1=55005500(buf[4])add$v0,v0,v1;$v0=$v0+$v1=550055FF addi$t0,$t0,4 sw$v0,buf($t0);buf[8]=550055FF j startendstart;Thelabelforendstatementisasthesameastheoneforthefirststatement.MiniSys汇编程序书写格式举例1/13/2023计算机综合课程相关设计汇编编译程序(4)文件DEPTH=1024;--10bitsofdataline,210=1024WIDTH=32;--thewidthofdatais32bitsADDRESS_RADIX=HEX;--describeaddressinhexDATA_RADIX=HEX;--describedatainhexCONTENTBEGIN 0:8c020000;--lw$20($0) 1:8c030002;--lw$32($0) [2..3FD]:00000000;3FE:01800008;--jr$i0;(jr$26)3FF:01C00008;--jr$i1;(jr$27)END;1/13/2023计算机综合课程相关设计汇编编译程序(5)文件DEPTH=1024;--10bitsofdataline,210=1024WIDTH=32;--thewidthofdatais32bitsADDRESS_RADIX=HEX;--describeaddressinhexDATA_RADIX=HEX;--describedatainhexCONTENTBEGIN 0:00000055; 1:000000AA; [2..3FF]:0000;END;1/13/2023计算机综合课程相关设计汇编编译程序(6)注意地址对应关系对于代码部分ORG_CODE的翻译
源程序的代码部分ORG_CODE后的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025沈阳药科大学教师招聘考试题目及答案
- 2025江西枫林涉外经贸职业学院教师招聘考试题目及答案
- 2026年美术水平测试高频考点及答案
- 2026年金融学结业考试易错题及答案
- 南开税务保研试题及答案
- 考研病理学试题及答案
- 2026中南大学湘雅二医院桂林医院(国家区域医疗中心)人才招聘24人建设考试参考试题及答案解析
- 2026年马鞍山某单位公开招聘劳务派遣制工作人员建设考试参考题库及答案解析
- 2026四川凉山州冕宁县第二人民医院招聘临床医学学术技术带头人建设笔试备考题库及答案解析
- 2026年上半年安徽淮南市田家庵区部分中小学引进紧缺专业人才招聘40人建设笔试模拟试题及答案解析
- 2021 年四川‘五类人员’选拔笔试题目及解析
- 超级实用的脚手架含量计算表脚手架计算表
- 2023年新高考全国Ⅱ卷语文真题(原卷版)
- 如何建立质量管理体系
- 高三地理二轮复习-河流微专题-径流量课件
- 特征值特征向量及其应用
- (中级)保健按摩师职业技能鉴定考试题库(汇总版)
- 回归分析方差分析
- 数控机床与编程-加工中心编程
- 中国传统民居建筑-客家土楼
- GB 25958-2010小功率电动机能效限定值及能效等级
评论
0/150
提交评论