基于proteus仿真的数字电子秤内容摘要:
WDLCM)。 //写数据到 LCM子函数 void DisplayOneChar(uchar X,uchar Y,uchar DData)。 //显示指定坐标的一个字符子函数 void DisplayListChar(uchar X,uchar Y,uchar code *DData)。 //显示指定坐标的一串字符子函数 void weishu(uint m)。 void weishu1(uint m)。 void display(void)。 uchar Adc0832(unsigned char channel)。 void alarm(void)。 void data_pro(void)。 /**********main funcation************/ void main(void) { delay(500)。 //系统延时 500ms启动 //ad_data=0。 //采样值存储单元初始化为 0 initLCM( )。 WriteCommandLCM(0x01,1)。 //清显示屏 DisplayListChar(0,0,str0)。 DisplayListChar(0,1,str2)。 while(1) { ad_data =Adc0832(0)。 //采样值存储单元初始 化为 0 alarm()。 data_pro()。 display()。 if(k==1) { DisplayOneChar((s+7),1,table2[num1])。 x1=m。 y1=n。 y1=y1*10+x1。 } if(k==39。 *39。 ) { data_pro()。 WriteCommandLCM(0x01,1)。 weishu(z1)。 k=0。 } if(k==39。 =39。 ) { z1=z1*temp1。 WriteCommandLCM(0x01,1)。 DisplayListChar(0,1,str3)。 s=0。 weishu1(765)。 k=0。 } if(k==39。 39。 ) { WriteCommandLCM(0x80+0x40,1)。 WriteCommandLCM(0x01,1)。 z1=0。 s=0。 //防止清零时指针后移动 } } } /*********延时 K*1ms,**********/ void delay(uint k) { uint i,j。 for(i=0。 ik。 i++) for(j=0。 j100。 j++)。 } /**********写指令到 ICM子函数 ************/ void WriteCommandLCM(uchar WCLCM,uchar BusyC) { if(BusyC) lcd_wait()。 DATAPORT=WCLCM。 LCM_RS=0。 // 选中指令寄存器 LCM_RW=0。 LCM_RW=0。 // 写模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。 } /**********写数据到 LCM子函数 ************/ void WriteDataLCM(uchar WDLCM) { lcd_wait( )。 //检测忙信号 DATAPORT=WDLCM。 LCM_RS=1。 // 选中数据寄存器 LCM_RW=0。 // 写模式 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=0。 } /***********lcm内部等待函数 *************/ void lcd_wait(void) { DATAPORT=0xff。 //读 LCD 前若单片机输出低电平 ,而读出 LCD 为高电平 ,则冲突 ,Proteus仿真会有显示逻辑黄色 LCM_EN=1。 LCM_RS=0。 LCM_RW=0。 LCM_RW=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 while(DATAPORTamp。 BUSY) { LCM_EN=0。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 LCM_EN=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } LCM_EN=0。 } /**********LCM初始化子函数 ***********/ void initLCM( ) { LCM_EN=0。 DATAPORT=0。 delay(15)。 WriteCommandLCM(0x38,0)。 //三次显示模式设置,不检测忙信号 delay(5)。 WriteCommandLCM(0x38,0)。 delay(5)。 WriteCommandLCM(0x38,0)。 delay(5)。 WriteCommandLCM(0x38,1)。 //8bit数据传送, 2行显。基于proteus仿真的数字电子秤
相关推荐
单片机与 PC机接口部分 单片机数据传输部分 驱动与显示部分 5 图 2 AT89C2051 的引脚 MAX232 产品是由德州仪器公司( TI)推出的一款兼容 RS232 标准的芯片。 该器件包含 2 驱动器、 2 接收器和一 个电压发生器电路提供 TIA/EIA232F 电平。 该器件符合 TIA/EIA232F 标准,每一个接收器将 TIA/EIA232F 电平转换成 5V
Proteus 软件进行虚拟单片机实验,涉及到的实验实习内容全面、硬件投入少、实验过程中损耗小,并且学生可以在课 外自行的进行实验,具有明显的优势,对于单片机原理及应用课程的教学具有十分重要的意义。 另外通过本次设计能 增强学生 的 创新意识 , 培养学生综合运用所学知识分析问题 、 解决问题 及 信息 的 获取 、 文字 的 表达 等 能力。 黑龙江工程学院本科生毕业设计 XV 二
操作单元的地址。 位 0是读 /写操作位,进行读操作时,该位为 1;该位为 0则表示进行的是写操作。 控制字节总是从最低位开始输入 /输出的。 表 6为 DS1302的日历、时间寄 存器内容: “CH”是时钟暂停标志位,当该位为 1时,时钟振荡器停止, DS1302处于低功耗状态;当该位为 0时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前, WP 必须为 0。 当
“按钮,在视图下侧出现的”旋转“界面上选择“实体”按钮,以指定生成拉伸实体,单击“放置”按钮,打开上滑面板中的定义按钮,系统弹出“草绘”对话框,选取 FRONT 基准平面作为草绘平面,接受系统默认的生成方向,单击对话框 12 中“草绘”按钮,进入草绘界面。 ( 2)单击草绘工具栏中“中心线”按钮,绘制一条竖直中心线,然后按照图 41 所示的草绘剖面绘制草图。 单击“ 草绘器”工具栏按钮
基于特征 Pro/ENGINEER 使用用户 熟悉的特征作为产品几何模型的构造要素。 这些特征是一些普通的机械对象,并且可以按预先设置很容易的进行修改。 例如 : 设计特征有弧、圆角、倒角等等,它们对工程人员来说是很熟悉的,因而易于使用,并以这些简单特征为基础来进行更为复杂的几何形体的构造。 装配、加工、制造以及其他学科都使用这些领域独特的特征。 通过给这些特征设置参数 (不但包括几何尺寸
11 第二章 软件介绍 Pro/E 在参数化方面的优势 Pro/E 系统最典型的特点是参数化,体现参数化除使用尺寸参数控制模型外,还在尺寸之间建立数学关系式,使它们始终保持相对的大小、位置或约束条件。 在零件模式下,系统允许建立特征之间的关系式,使得零件中的不同特征产生关联,此时此刻的参数关系式成为零件关系式。 同时在零件与装配模式中,系统还允许在阵列特征或阵列元件间建立参数关系式。 Pro/E