共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三

1 C 语言编程实训语言编程实训 实训指导书三实训指导书三 适应专业 应用电子技术适应专业 应用电子技术 广州康大职业技术学院自动化系广州康大职业技术学院自动化系 二二 0 一一 0 年十一月年十一月 2 C 语言编程实训语言编程实训 实训三八红旗手实训三八红旗手 单片机时钟程序设计单片机时钟程序设计 一 实训目的 1 掌握 LED 显示 键盘 定时 计数器综合应用程序的设计方法 2 熟悉运用 PROTEUS ISIS 仿真调试单片机时钟程序的基本操作 二 实训设施 PROTEUS 计算机软件 PC 机 三 实训要求 1 使用 C 语言编程 实现由单片机控制 LED 数码管显示时 分 秒的电子时钟 并具有用按 键修改时钟参数的功能 采用 2 个按键 2 写出 1000 字以上的实训总结报告 内容以单片机时钟程序设计及源程序清单为主 四 实训内容 1 设计单片机时钟硬件系统 1 学习单片机时钟工作原理 6 位七段 LED 显示器 共阳极数码管 采用动态扫描的方法进行显示 即逐个循环点亮 各位显示器 这样虽然在任一时刻只有一位显示器被点亮 但是由于间隔时间较短 不超 过 10 毫秒 且人眼具有视觉残留效应 因此看起来与全部显示器持续点亮效果完全一样 动态扫描时 单片机芯片的 P1 口 P1 0 P1 5 输出段控信号 P3 口 P3 0 P3 5 输 出位控信号 当两口为高电平时 该字段就不显示 当两口为低电平时 就显示相应字段 时间校正的操作方法 两按键串联 接在单片机芯片的 P2 4 与 P2 5 之间 按下按键 K1 可调整 分 按下按键 K2 可调整 时 2 使用 PROTEL 绘制电路原理图 从 PROTEUS 库中选取以下元器件 7SEG MPX2 CA 或 7SEG MPX6 CA 六位数码管 AT89C51 单片机 BUTTON 按键 CAP CAP ELEC 电容 电解电容 CRYSTAL 晶振 RES 电阻 放置元器件 放置电源和地 终端 连线 元器件属性设置 3 电气检测 绘制完全的电路原理如图 3 1 所示 图 3 1 单片机电子时钟电路原理图 2 学习识读单片机时钟程序 程序清单 include include define define uintuint unsignedunsigned intint define define ucharuchar unsignedunsigned charchar voidvoid keys keys sbitsbit P30 P3 0 P30 P3 0 sbitsbit P31 P3 1 P31 P3 1 sbitsbit P32 P3 2 P32 P3 2 sbitsbit P33 P3 3 P33 P3 3 sbitsbit P34 P3 4 P34 P3 4 sbitsbit P35 P3 5 P35 P3 5 sbitsbit key P2 4 key P2 4 sbitsbit key1 P2 5 key1 P2 5 4 ucharuchar codecode table 10 table 10 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 ucharuchar hour 23 minute 59 second 0 hour 23 minute 59 second 0 uintuint a b dd ee gg hh a b dd ee gg hh staticstatic charchar count 0 count 0 voidvoid delay uintdelay uint z z intint x y x y for x z x 0 x for x z x 0 x for y 110 y 0 y for y 110 y 0 y voidvoid int1 int1 interruptinterrupt 1 1 usingusing 2 2 TH0 65536 50000 256 TH0 65536 50000 256 TL0 65536 50000 256 TL0 65536 50000 256 count count voidvoid main main TMOD 0 x01 TMOD 0 x01 TH0 65536 50000 256 TH0 65536 50000 256 TL0 65536 50000 256 TL0 65536 50000 256 EA 1 EA 1 ET0 1 ET0 1 TR0 1 TR0 1 for for a hour 10 a hour 10 b hour 10 b hour 10 dd minute 10 dd minute 10 ee minute 10 ee minute 10 gg second 10 gg second 10 hh second 10 hh second 10 keys keys P3 0X00 P3 0X00 P1 table a P1 table a P30 1 P30 1 delay 1 delay 1 P3 0X00 P3 0X00 P1 table b P1 table b P31 1 P31 1 delay 1 delay 1 P3 0X00 P3 0X00 P1 table dd P1 table dd 5 P32 1 P32 1 delay 1 delay 1 P3 0X00 P3 0X00 P1 table ee P1 table ee P33 1 P33 1 delay 1 delay 1 P3 0X00 P3 0X00 P1 table gg P1 table gg P34 1 P34 1 delay 1 delay 1 P3 0X00 P3 0X00 P1 table hh P1 table hh P35 1 P35 1 delay 1 delay 1 if count 20 if count 20 count 0 count 0 second second if second 60 if second 60 second 0 second 0 minute minute if minute 60 if minute 60 minute 0 minute 0 hour hour if hour 24 if hour 24 hour 0 hour 0 voidvoid keys keys if key 0 if key 0 delay 5 delay 5 if key 0 if key 0 while key while key delay 5 delay 5 minute minute if minute 60 if minute 60 minute 0 minute 0 6 delay 10 delay 10 if key1 0 if key1 0 delay 5 delay 5 if key1 0 if key1 0 while key1 while key1 delay 5 delay 5 hour hour if hour 24 if hour 24 hour 0 hour 0 delay 10 delay 10 3 PROTEUS 仿真 1 加载目标代码文件 鼠标指针指在器件 AT89C51 上 先右击再左击 在弹出的属性编辑对话框 Program File 一栏中单击打开按钮 出现文件浏览对话框 找到单片机时钟的机器码文件 单击 打开 按钮 完成添加文件 在 Clock Frequency 栏中把频率设定为 12MHZ 单击 OK 按钮退出 2 全速仿真 单击运行按钮 启动仿真 仿真运行片断如下图 3 2 所示 通过按动开关 K1 K2 闭 合 可以进行 分 和 时 的加 1 调整 7

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值