基于stc89c52单片机的简易计算器内容摘要:
oid wr_byte(uint8 dat) { uint8 i。 for (i=0。 i8。 i++) { SDA = dat amp。 0x01。 SCK = 1。 dat = 1。 SCK = 0。 } } /** * 读一个字节 */ uint8 rd_byte(void) { uint8 i, dat=0。 for (i=0。 i8。 i++) { dat = 1。 if (SDA) dat |= 0x80。 SCK = 1。 SCK = 0。 } return dat。 } void reset_ds1302(void) { RST = 0。 SCK = 0。 RST = 1。 } /** * 清除写 保护 */ void clear_ds1302_WP(void) { reset_ds1302()。 RST = 1。 wr_byte(0x8E)。 wr_byte(0)。 SDA = 0。 RST = 0。 } /** * 设置写保护 */ voidset_ds1302_WP(void) { reset_ds1302()。 RST = 1。 wr_byte(0x8E)。 wr_byte(0x80)。 SDA = 0。 RST = 0。 } /** * 设定时钟数据 */ void set_time(uint8 *timedata) { uint8 i, tmp。 for (i=0。 i7。 i++) // 转化为 BCD 格式 { tmp = timedata[i] / 10。 timedata[i] = timedata[i] % 10。 timedata[i] = timedata[i] + tmp*16。 } clear_ds1302_WP()。 reset_ds1302()。 RST = 1。 wr_byte(DS1302_W_ADDR)。 for (i=0。 i7。 i++) { wr_byte(timedata[i])。 delay(10)。 } wr_byte(0)。 SDA = 0。 RST = 0。 set_ds1302_WP()。 } /** * 读时钟数据( BCD 格式) */ void rd_time(uint8 *timedata) { uint8 i。 reset_ds1302()。 RST = 1。 wr_byte(DS1302_R_ADDR)。 for (i=0。 i7。 i++) { timedata[i] = rd_byte()。 delay(10)。 } SDA = 0。 RST = 0。 } void ds_init() { set_time(time)。 } 液晶显示屏显示模块 如上所述,当数字输入键盘有键按下的时候,经过程序识别,则会有相应结果被送入显示屏得到显示。 如果是数字键则直接放入液晶显示缓冲区,如果再次有数字键按下,则应将缓冲区的数字向高位移动一位,以构成两位数,之前输入的置之高位,并记录按键次数,每输入一个键值都 调用显示程序出来;如果是运算符,则执行相应的运算,送入单片机芯片C51 内进行计算后将结果调用显示程序显示结果。 该设计中选取的是 RT1602C型号液晶显示屏,如下图 图 ⑤ 显示电路 显示子程序 include //检验忙函数 void check_busy() { do { RS=0。 RW=1。 P0=0xff。 E=0。 E=1。 }while(busy)。 } //写命令函数 void wr_mand(uint8 ) { check_busy()。 RS=0。 RW=0。 P0=。 E=1。 delay(5)。 E=0。 } //写数据函数 void wr_data(uint8 dat) { check_busy()。 RS=1。 RW=0。 P0=dat。 E=1。 delay(5)。 E=0。 } //1602 显示函数 void display_1602(uint8 addr,uint8 *p) { wr_mand(addr)。 delay(10)。 while(*p!=39。 \039。 ) { wr_data(*p++)。 delay(10)。 } } //1602 初始化函数 void init_1602() { uint8 i。 for(i=0。 i3。 i++) { wr_mand(0x30)。 } wr_mand(0x38)。 delay(10)。 wr_mand(0x01)。 delay(10)。 wr_mand(0x06)。 delay(10)。 wr_mand(0x0c)。 } 硬件元件清单 系统元器件清单 见表 器件 单价 数量 总价 AT89C52 元 1 元 DS1302 元 1 元 RT1602C( LCD) 元 1 元 有源 蜂鸣器 元 1 元 电阻 排阻 元 1 元 10K 元 2 元 晶振 12MHZ 元 1 元 元 1 元 万能板 12*18 元 1 元 9*15 元 1 元 底座 AT89C52 元 1 元 DS1602 元 1 元 按键(大号) 元 18 元 杜邦线 元 10 元 电解电容 30PF 元 2 元 10UF 元 1 元 排针 元 1 元 排插 元。基于stc89c52单片机的简易计算器
相关推荐
Time 文件。 Quick Time Player Quick Time Player 是 Apple 公司的媒体播放器,现已推出了 Quick Time 版,还有 Windo ws 版和 Mac 版,其特点是和 Inter 紧密结合,安装是在网上进行的。 Quick Time Player 能够直接播放的格式有 Quick Time 电影、 AVI、 AIFF音 频、 SGI 图像、
在于与现有的各种控制方式相比,它有一系列受用户欢迎的特点: 1.可靠性高,抗干扰能力强 在恶劣的工业环境下工业产生对控制设备的可靠性提出很高的要求。 2.编程简单,易于掌握。 3.组合灵活使用方便。 4.功能强,通用性好。 5.开发周期短,成功率高。 PLC 的一般结构 根据 PLC实施控制的基本点分析, PLC采用了典型的计算机结构,主要由 CPU、 RAM、 ROM
中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放 大器与作为反馈引脚号 复用功能 RXD(串行输入口) TXD(串行输出口) (外部中断 0) (外部中 断 1) T0(定时器 0 的外部输入) T1(定时器 1 的外部输入) (外部数据存储器写选通) T1(定时器 1 的外部输入) 常州大学本科生毕业设计(论文) 第 9 页
— 9: 50 课间操 9: 50— 10: 10 第三节课 10: 10— 11: 00 第四节课 11: 10— 12: 00 4 中餐(广播) 12: 12: 30 午休 12: 30— 14: 20 预备铃 14: 20— 14: 30 第五节课 14: 30— 15: 20 第六节课 15: 30— 16: 20 文体活动 16: 30— 17: 30 晚餐 17: 30— 18:
延时 实现; 机械手 下降、上升、右行、左行的 限位由行程开关 BG BG BG BG4 来实现。 3 气动机械手的气压传动系统 图 22 气动机械手 的 气压传动系统图 系统的 控制面板操作与 工作方式 操作面板操作 机械手用来将工件从 A 点搬运到 B 点,输出 为 1 时工件被夹紧,为 0 时被松开。 工作方式选择开关的 5 个位置分别对应于 5 种工作方式,操作面板左下部的 6
、 价格低等优点。 调频范围广、控制精度高、动态性能好、舒适、安静、快捷 ,几乎可与直流电梯相媲美。 电梯融入先进的微机技术 ,使其更趋于高性能、高精度、大容量、微型化、数字化、智能化 ,所控制的电梯以其舒适、高效、节能而与直流电梯相媲美、相竞争 ,最终取而代之。 电梯运行优秀的舒适感一直是设计人员最终追求的目标,但是往往我们维修保养的电梯很难达到理想的运行舒适感