一个小小的单片机仿真

  这是个作业,没啥东西好发就把它扔上来看看吧。话说电路画得稀烂,看来我果然不是那行的料。

C51单片机仿真电路

功能说明

  • 通过两个单片机来进行一个日期加时间的显示
  • 手动设置当前日期和时间
  • 设置闹钟,在某一时刻进行蜂鸣器震动

使用说明

  1. 运行时会有一个初始的默认时间,此时闹钟是不存在的。
  2. 调整时间前需要打开对应的控制开关后然后进行增加和减少的调整,SW1-SW6分别对应着小时、分钟、秒(任何操作将置零)、年、月、日,当开关开启时对应的下方灯亮,然后通过ADD_ACTION和SUB_ACTION操作数字的增加和减少。
  3. 闹钟的设置,采用了一个三向的开关,其中第三个为废弃的,表示关闭闹钟功能(即不输入电压)。当开关置为第一个时表示设置闹钟的时间,此时旁边的灯亮,操作只针对分钟和小时有效,且必须打开时间设置开关,然后通过加减操作控制。当开关拨动时不会触发任何操作依旧显示当前时间,当进行加减操作时会将当前闹钟显示出来,如果刚开机未设置则为当前时间。闹钟持续一分钟,可以通过关闭闹钟开关或者触发时间调整按钮ADD_ACTION和SUB_ACTION来关闭闹钟。

原理说明

  1. 时间与日期的输出,分别采用6个和8个74HC161进行串口转并口的输出,由于同步输出多个LED显示管闪烁厉害,故分为两个通过中断触发。
  2. 时间的更新:通过T2定时器进行每秒时间的更新,当遇到24小时全部走完时通过P2.0口输出低电平触发日期单片机(下称CPU2)的INT0中断,然后让其进行对应的处理。
  3. 时间的调整:通过实现时间单片机(下称CPU1)的INT0和INT1两个中断来调整时间,且同时通过P2.1口输出低电平触发CPU2的INT1中断进行日期调整。如果是加操作对应将CPU1的P2.2输出1,减操作输出0,此处连接到CPU2的P2.0口,在CPU2更新日期时通过判断P2.0的值来进行加或减。
  4. 闹钟的调整:当闹钟设置开启时,P0.3口设置为高电平,此时时间停止跳动(计时未停止),进入闹钟设置模式。通过加减操作来更新当前闹钟设置时间。一旦离开闹钟设置模式,P0.3更新为0,一秒后时间继续更新,闹钟值保存。
  5. 闹钟的触发:依据某一时刻秒钟重置时判断分钟和小时是否等于闹钟设置值,如果相等将P2.3口设置为1,然后通过三极管让蜂鸣器响。此时触发时间加减操作就会将P2.3置零,闹钟停止。
  6. 蜂鸣器的设置:这里选择的是直流蜂鸣器,将电压设置在2v连接高低电平即可。

14条评论在“一个小小的单片机仿真”

写下你最简单的想法