基于单片机数字时钟课程设计内容摘要:
码。 字型码与 LED 显示器各段的关系为 D7 D6 D5 D4 D3 D2 D1 D0 dp g f e d c b a 表 11 dp为小数点,字符 0、 2„„ F 的段码如表 12所示 字符 段码(共阴) 段码(共阳) 字符 段码(共阴) 段码(共阳) 0 3FH C0H 8 7FH 80H 1 06H F9H 9 6FH 90H 2 4FH A4H A 77H 88H 3 66H B0H B 7CH 83H 4 6DH 99H C 39H C6H 5 7DH 92H D 5EH A1H 6 07H 82H E 79H 86H 7 7FH F8H F 71H 8EH 表 12 下图是本系 统采用的共阴极 LED 七段数码显示器: 图 23 电路设计 本设计输入输出电路 该系统输入电路采用的是 P1 口中的 、 、 作为校正的输入分别为秒校正、分校正、时校正。 (如图 24) 图 24 系统的输出电路采用的是 P0 口 、 P3 和 P2口分别是 段码输出、循环彩灯输出和位选输出。 段码输出 P0 口外界一个 74ls373 作为输出锁存保证数据输出稳定 图 25 系统软件设计说明 该系统软件程序主要有主程序模块,定时中断服务程序, 中断等待服务程序,键盘服务程序,显示子程序服务程序等六大模块组成。 图 24 中按键从上往下设定为 S1,S2,S3。 S1 与 相连, S2 与 相连 ,S3 与。 当需要设定当前时间时,按一下 S2 键, 时 钟加 1;按一下 S1, 分钟 加 1;按一下 S1,秒钟加 1。 LED 的编程思想 本设计使用 LED 数码管显示, LED 显示器具有耗电少、成本低、配置简单灵活、安装方便、耐震动、使用寿命长等优点,因而应用广泛。 该方案控制最简单,但是只能显示有限的符号和数字,对于设计中复杂的显示功能显然不能胜任。 虽然点阵液 晶可以显示多种字符和图形,拥有友好的人机界面及强大的显示功能。 特别适用于智能控制的可编程人性化显示。 但是考虑到本设计的实际要求,使用数码管显示就足以达到要求了。 七段 LED 由七个发光二极管按日字排开,所有发光二极管的阳极连在一起成共阳极,阴极连在一块称共阴极接法。 当采用芯片驱动时不需要加限流电阻,其他情况下一般应外接限流电阻。 动态显示电路有显示块,字形码封锁驱动器,字位锁存驱动器三部分组成。 程序调试 1)将程序输入到 KEIL 的环境下; (如图 26 所示 ) 2)用单步运行和断点运行方式调试程序; 3)调试 T0 中断服务程序,首先在记数单元 39H、 3AH、 3BH、 3CH 单元中预置数,调试秒单元向分单元进位及分单元向时单元的进位,最后将 T0 中断服务程序统调通过; 4)在 39H、 3AH、 3BH、 3CH 单元中预置数,调试显示程序; 5)调试主程序,使闹钟走时系统工作正常。 图 26 Proteus 软件仿真 ①仿真步骤 第一步:用 KEIL 软件对程序进行编译,编译通过后,会自动生成 HEX 文件。 第二步:在 Proteus 的元件库中找到 STC89C52 以及相应的元件,按照硬件设计中的说明把各 部件连接起来组成一个时钟的硬件系统。 第三步:把在伟福环境调试下生成的 .HEX 文件装入到 STC89C52 里,点击运行符号就可以使软硬件的配套设施在 Proteus 的环境下仿真实现。 第四步:验证系统能否实现所要求的功能 ,并检验错误。 ② 仿真过程中出现的错误及解决措施 1)当把程序生成的 .HEX 文件装入到 STC89C52 后运行时,显示模块出现数字显示错误,但是软硬件都没有错误,经检查是它们不配套,在修改扫描显示控制字而且改变硬件布线顺序后方显示正常。 2) P0 口是漏极开路的并行 I/O 口和分时复用数据地址总线,在用作 I/O口是必须接上拉电阻,否则造成电平不稳地,从而显示出乱码。 由于对硬件不了解产生错误。 3)在设计的初期把主程序设计成顺序结构,但是在运行的时候没有注意到这个问题,没有按照软件说明中的顺序操作。 ③ 仿真结果 开始仿真时,显示如图 27所示: 图 27 按一下 minute 按键,分钟加一。 如下图 28 图 28 按一下 hour 按键,时钟加一。 如下图 29 图 29 protel99 制作 原理图 : PCB 图: 如 果能制作到 PCB 板,那么焊接和连接都非常的简单,而且制作出的作品性能稳定,美观。 课程设计元器件清单 元器件名称 类型 数量 价格(元) 单片机 STC89C52 1 5 底座 DIP40 1 DIP16 1 数据锁存器 74LS373 1 瓷片电容 22pf 2 晶振 12MHZ 1 按键 开关 4 LED 灯 红色 9 排阻 A09471 470 欧 1 自锁开关 单刀双掷 1 若干导线 铜线 若干 数码管 4位 5461AS 共阴 2 单排座 1*40 1 课程设计体会 单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识 ,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节 ,是对我们实际工作能力的具体训练和考察过程,为自己今后从事与单片机控制系统有关的工作打下了基础。 虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚开始时还是有点一头雾水,不知道该从哪里下手。 令人欣慰的是经过几周的学习,虽然过程很艰辛,问了很多朋友,但是总算实现了定时闹钟的功能,所有的努力都很值得。 这几周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。 以下是我本次单片机课程设计的几点心得与体会: 1. 在设计程序之前 ,务必要对所 学 单片机 课程的内容 有一个系统的了解 ,知道单片机片内 片外的内容及其功能。 2. 设计程序采用什么编程语言并不是非。基于单片机数字时钟课程设计
相关推荐
准确度是测量结果中系统误差与随机误差的综合。 4.分辨率高 数字电压表在最低电压量程上末位 1 个字所代表的电压值,称为仪表的分辨力,它反映仪表灵敏度的高低。 分辨力随显示位数的增加而提高。 分辨率是指所能显示的最小数字(零除外)与最大数字的百分比。 例如 31/2 位 DVM 的分辨率为 1/1999≈ %。 需要指出,分 辨力与准确度属于两个不同的观念。 从测量角度看
管显示模块如图 图 7 所示:为产生更加显示效果,数码管采用动态显示的方式,与 89C51 之间通过锁存 7 段译码驱动器、上拉电阻连接,便于驱动和满足阻抗匹配、限压分流的作用,此外利用三极管分别工作在饱和区与截止区的不同性能起到数字开关的功效。 图 3 数字电压表系统原理电路图 单片机技术课程设计说明书 ( 2020) 9 图 4 分压、 A/D 转换 图 5 单片机数值处理
key2=1。 key3=1。 flag1=0。 flag3=0。 temp_h=0。 temp_l=0。 } void delayms(unsigned int v) { unsigned int m,n。 for(m=v。 m0。 m) for(n=73。 n0。 n)。 } void display()//温度显示函数 { shi=temp/100。 //获取十位
)。 软件编译采用 KEIL C51 软件, Keil C51 是美国 Keil Software 公司出品的 51系列兼容单片机 C语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。 用过汇编语言后再使用 C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。 另外重要的一点
程学院 2020 届本科生毕业设计 1 1 绪 论 课题的背景 步进电机是一种将脉冲信号转换成相应的线性位移(角位移)的电磁装置,是一种纯粹的数字控制电机。 由于步进电机的精确性和良好的性能, 可以将数字脉冲控制的信号直接转换成一定数值的线性位移,并且自动的产生定位转矩,进而使转轴锁定。 当前打印机,机器人,数控机床等设备都是以步进电机为核心。 在各种控制系统及办公自动化设备等领域中
Flash存储器结合在一起,特别是可反复擦写的 Flash存储器 可有效地降低开发成本。 9 图 311 单片机的引脚 ( 1) Vcc:供电电压。 ( 2) GND:接地。 ( 3) P0口: P9口为一个 8位漏级开路双向 I/O口,每脚可吸收 8TTL门流。 当P1口的管脚第一次写 1时,被定义为高阻输入。 P0能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在