可编程控制器问题50fen

txwh 2003-10-19 08:52:36
敝厂有几台纺机,意大利圣东尼公司出品,托坡牌,它那个机器有个软件可以编织图案,其过场是这样的:
在普通电脑插上解码器,编好后拷软盘,再把软盘插入机器,编织。
我的问题是:
1、这种编程是否属于可编程控制器?
2、这个解码器是否必须?
3、可编程控制器那个编程与一般的编程差别大吗?难不难?
4、解码器有地方买吗?
我不知把问题讲清楚否?望朋友解答,不胜感谢!
...全文
33 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
klbt 2003-10-19
  • 打赏
  • 举报
回复
不清楚,帮你顶。
电子时钟设计 简介 该设计主要由单片机AT89C51和液晶显示器组成,实现常用的实时电子钟功能。利用 可编程芯片AT89C51强大的功能,我们了实现日历功能、时钟功能。该时钟使用液晶显示 器作为显示模块,使用3个弹性小按键作为输入模块,调节年、月、日、星期、时、分、 秒。 一.方案比较与论证 根据设计要求,该时钟系统可分输入部分、处理部分和显示数据部分。其中输入部分是 键盘输入数据调整要显示的内容,处理部分单片机接收并通过算法处理键盘输入的信息 变成显示模块所能接受的信息,显示部分是用来实时显示处理部分处理后的数据。 输入模块我们选用三个独立弹性小按键来实现,选用矩阵式键盘则太浪费资 处理模块我们选用了STC公司的STC89C52芯片来,与Atmel公司生产的AT89S52一样,也是 40脚双列直插式封装,这里芯片对刚学单片机的人来说容易入手,其功能也很强大,用 来实现一个电子钟完全足够了。 显示部分我们可有两种选择:数码管和1602液晶显示器。实现一个电子钟若用数码管则 需6个,所占空间相对大了些,而且我们还要实现日历的功能,需要更多的数码管,所点 空间翻倍,而且还会造成单片机I/O引脚滥用甚至不够用,用液晶显示器来实现则方便得 多,界面也相对友好,但液晶显示器有个缺点就是价格比较贵。因此我们最终选择了16 02液晶显示器。另处独立弹性小按键具有价格便宜、容易获得、容易控制等特点。 二.系统理论分析、计算与电路仿真 1、定时器与中断原理 电子钟主要是利用单片机的定时器/计数器和中断来实现。定时器实际是加1计数器,单 片机每运行一个机器周期定时器就自动加1,当计到所定的数N时,单片机就产生一次中 断,停下所做的工作,转而去执行中断服务程序。单片机每个机器周期等于外部晶振的 12个振荡周期,当外部晶振是12MHz时,则每个机器周期的时间是 Tcy = 12×1/12=1µm (2-1) 定数器设为N时,即每计到N时产生一次中断,而一次中断的时间为: t = N×Tcyµm (2-2) 当产生X(x根据N来设置,两者之积为1000000)次中断后我就知道过了1s,再通过液晶 显示出来,这样就达到了让液晶每隔一秒跳一下的目的了。 2、proteus仿真结果 3、液晶部分 图4-3 液晶1、2端口分别是工作电源的负、正极,15、16是液晶背光灯电源正负极,R4起限流 作用,避免电流过大烧坏背光灯。第3端口还可接一电位器,调节液晶显示对比度。无标 号的8个端口是数据端,通过一上拉电阻接到单片机的 P0口。 三.系统的软件设计(如必要,含有流程图) 1、程序流程图 流程图中的X表示液晶中秒、分、时、星期、年、月、日中的任一个。 图5-1 主程序流程图 图5-2 扫描键盘的子程序流程 四.系统测试及结果 测试结果总的来说很满意,比预计的还要好。但由于中断函数中代码较长,故存在 一定程度的误差,用秒表测试大约为每5分钟慢了一秒,这个问题是用单片机定时器来数 时所无法解决的,中断函数必定会较长,处理这一函数会花费一定的时间这就无法做到 让时钟走得很精确。解决方法是用一时钟芯片来实现,由于时钟芯片不好买又比较贵( 新的20几块一片),暂时就不考虑了,有机会再尝试。 1. 源程序 //主函数放在最后面 #include #define uchar unsigned char #define uint unsigned int sbit rs=P2^4;//定义液晶数据命令选择端 sbit lcden=P2^5;//液晶使能端 sbit s1=P2^0;//按键1 sbit s2=P2^1;//按键2 sbit s3=P2^2;//按键3 uchar count,s1num; char shi,fen,miao;//时、分、秒 char year,month,day,week;//年月日星期 void delay(uint x)//延时子程序 { uint j,k; for(j=x;j>0;j--) for(k=110;k>0;k--); } //----液晶写命令功能--- void write_com(uchar com) { rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } //---液晶写数据功能----- void write_date(uchar date) { rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5); lcden=0; } //----------写入时、分、秒--------? void write_sfm(uchar add,uchar date) { uchar shi,g

3,422

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧