单片机数码晶体管000-999设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机数码晶体管000-999设计

片上系统技术课程设计 题 目: 数码管的显示 学 号: 200916022218 姓 名: 保昆 班 级: 电信092 教 师: 张明胜 2012年5月21日一.实验目的及设备 3 1.1实验目的 3 1.2 实验设备 3 二.实验原理及思路 3 2.1实验原理 3 2.2实验思路 3 三.实验准备及步骤 4 3.1实验准备 4 3.2实验步骤 4 四.实验内容 6 4.1实验原理图 6 4.2实验程序代码 7 (1)CH452_I2C.h代码 7 (2)Define.h代码 9 (3)key.h代码 11 (4)Key.c代码 11 (5)Seven_seg.c代码 13 4.3结果分析: 16 五 心得体会 16 一.实验目的及设备 1.1实验目的 (1)熟悉并学习运用I2C总线的读写方式。 (2)运用CH452芯片的数码管显示功能,熟悉两线制访问CH452芯片的工作原理。 1.2 实验设备 硬件:PC机 GX-CIDE-SOC/SOPC综合创新开发实验平台 GX-CIDE-SOC/SOPC综合创新开发实验平台核心板 软件:Quartus II 8.0 Nios II 8.0 二.实验原理及思路 2.1实验原理 根据I2C总线时序要求,对CH452进行操作,送地址,送控制字,送数据。数码管显示是以BCD译码方式显示。 2.2实验思路 用七段数码管前三位显示000-999,计数周期为1s;按F1进行加1操作并用数码管显示。按F2计数停止,并显示当前数。按F3进行减1操作;当数从000-999时再加1变为000;当数从999-000时再减1变为999。 三.实验准备及步骤 3.1实验准备 打开实验箱开关,连接好JTAG下载线,将开发平台上的MODUL_SEL组合开关的1、2、7拨上,3、4、5、6、8拨下,使两个共阳极数码管显示为C2。 3.2实验步骤 (1)打开Quartus II 8.0,打开工程cide_c2,进行SOPC操作,裁剪所需要的内容,综合一下在分配管脚。 图一 管脚分配 (2)启动Nios II IDE并新建一个空白C/C++工程,命名为bk,在SOPC Builder System中选择之前建立好的硬件系统cide_c2.ptf。 图二 器件选择 (3)转换工程路径,将提供的程序seven_seg.c,CH452_I2C.h,define.h加入到建立好的Nios II工程中,修改程序代码符合实验要求。 (4)在System Library设置页中,把程序和数据区都指定为sdram。 (5)在Quartus II中下载文件,编译整个工程,查找语法错误。 图三 下载界面 (6)全速运行程序,按下按键观察数码管的显示。 四.实验内容 4.1实验原理图 图四 原理图 4.2实验程序代码 (1)CH452_I2C.h代码 #include system.h #include altera_avalon_pio_regs.h #include alt_types.h #include priv/alt_busy_sleep.h #include stdio.h #include sys/alt_irq.h #include define.h void CH452_I2c_Start_2(void) // 操作起始,两线制方式,SDA用做中断输出,使用以下两个函数 { IOWR_ALTERA_AVALON_PIO_DIRECTION(SEG_KEY_SDA_BASE, 1); IOWR_ALTERA_AVALON_PIO_DIRECTION(SEG_KEY_SCL_BASE, 1); IOWR_ALTERA_AVALON_PIO_DATA(SEG_KEY_SDA_BASE, 1); IOWR_ALTERA_AVALON_PIO_DATA(SEG_KEY_SCL_BASE, 1); usleep(5); IOWR_ALTERA_AVALON_PIO_DATA(SEG_KEY_SDA_BASE, 0); usleep(5); IOWR_ALTERA_AVALON_PIO_DATA(SEG_KEY_SCL_BASE, 0); //usleep(3); } void CH452_I2c_Stop_2(void) // 操作结束 { IOWR_ALTERA_AVALON_PIO_DIRECTION(SEG_KEY_SDA_BASE, 1); IOWR_ALTERA_AVALON_PIO

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档