0-9999计数器程序
单片机原理应用实验指导书

《单片机原理与应用》课程实验指导书电子、机电及电气项目与自动化专业适用吴茂屈莉莉王飞编佛山科学技术学院二00 九年十月前言以往我校的单片机实验教案通常是使用启东DAIS 系列单片机微机仿真实验系统进行单片机实验教案的,DAIS 系统可以做二十多项实验,系统机构十分复杂,功能非常强大,但是在使用过程中也发现了一些不足的地方那个: 厂家为了技术保密,把核心电路都屏蔽了,我们不能了解实验系统的工作原理,另外系统庞大,不方便学生带回宿舍实验,不方便学生课外学习。
根据我校学生对单片机课程学习的需求, 我们在参考其他公司的产品的基础上,结合课程的实际情况,开发了适合学生入门学习的单片机学习板,FD-51 学习板,该学习板设置了包括LED数码管、LCD1602液晶、AD\DA转换器件等单元电路,可以做几十个单片机实验,而且本实验板我们是以配件的形式提供给学生,让学生自己焊接调试线路板。
学生不但可以学习软件编程技术,还可以学习硬件焊接及调试技术,可以更好地锻炼学生的动手操作能力。
目录系统介绍 (2)软件实验:实验一清零程序............. (4)实验二拆字程序.................... .. (5)实验三拼字程序.................... .. (5)实验四数据区传送子程序 (6)实验五查找相同数个数 (6)硬件实验:实验A 工业顺顺序控制 (7)实验B 简单IO口扩展实验 (8)实验一P1 口输出流水灯实验 (11)实验二P1 口输出交通灯实验 (11)实验三八段数码管显示实验 (12)实验四键盘实验.................. . (12)实验五遥控解码实验 ............. .. (12)实验六计数器实验..................... .. (13)实验七继电器控制实验 .................... (13)实验八定时器实验 (14)实验九单片机串行口通讯实验 (14)实验十电子时钟 (14)实验十一外部中断实验<急救车与交通灯) (15)实验十二AT24C02读写实验...... .......... . (15)实验十三93C46读写实验....... ........... (16)实验十四LCD1602字符型液晶控制显示实验 (16)实验十五LCD12864点阵型液晶控制显示实验 (17)实验十六A/D转换(数字电压表>实验 (17)实验十七D/A转换(波形发生器>实验 (18)实验十八计算机温度数据采集与处理 ............... . (19)系统介绍一、FD-51单片机学习板简介为了适应我校单片机课程教案的需要,我们在参考其他厂家学习板的基础上,再根据我校单片机课程教案大纲的要求,基于简单、使用的原则,开发了FD-51 单片机实验板。
SINUMERIK西门子系统加工中心编程各代码

西门子系统,在机床没有回零点时,也可以循环起动的方法。
在启动状态下(诊断—机床设定)输入DB126 DBX4.0,B,1西门子系统,等分圆周孔,钻孔循环的另一种方法,MACLL CYCLE81(100,0,5,,20)HOLES 1 或2(0,0,126,90,360/7,7)MACLL1,是直线2,是圆周0,起始角度0,起始点Z值126,半径90,第一孔的起始角度360/7,在360度内钻7个孔7,一共要钻7个孔西门子系统按键说明:区域转换键菜单扩展键返回键加工显示键自动方式单段运行手动方式;门子系统操作面板,英—汉对照说明:JOG 手动方式窗口:PresetScratch 对刀Handwheel 手轮ICN ICN…………………Gfct+transf G功能Auxiliary func 功能表Spindles 主轴功能Axis federate 轴功能表Zoom act .val 坐标值放大Act.val MCS 机床坐标系/绝对坐标系;<<<<<<<<<<<<<<<<<<<<<<<<<<<AUTO自动方式窗口:Over-storeDRF offsetProgram control 程序控制Block searchHandwheel 手轮Correct programProgram overview…………………Gfct+transf G功能Auxiliary func 功能表Spindles 主轴功能Axis federate 轴功能表Zoom act .val 坐标值放大Act.val MCS 机床坐标系/绝对坐标系;<<<<<<<<<<<<<<<<<<<<<<<<<<<MDA 方式窗口Program control 程序控制Handwheel 手轮Editor function 编辑MDA file fct MDA程序管理…………………Gfct+transf G功能Auxiliary func 功能表Spindles 主轴功能Axis federate 轴功能表Zoom act .val 坐标值放大Act.val MCS 机床坐标系/绝对坐标系Delete MDA buffer 删除MDA缓冲区;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 按区域转换键后的窗口:Machine 机床Parameter 参数Program 程序Services 服务Diagnosis 诊断Startup 起动…………………AUTO 自动方式MDA MDA方式JOG 手动方式R.EPOSREF;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 按Parameter参数选择键后的窗口:Magazine list 刀具补偿R parameter R参数Setting data 设定数据(维修时用)Zero offset 零点偏置User data 用户数据Actire ZO+compens 坐标激活Tool manageme 刀具管理…………………Axes+ 轴+Axes- 轴-Rotation scale mirr Base ZOSet ZO;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 按Program程序选择键后的窗口:Work—pieces 工件Part programs 工件程序Sub—programs 子程序User cycles 用户循环Clip—board 剪粘板Log 记录…………………Interactiv programing 对话式编程New 新的Copy 复制Inserl 粘贴Delete 删除Rename 重命名AlterenableInteractiv programing 对话式编程New 新的Load 装载Unload 卸载Smulation 模拟Manage programs 程序管理Seleet 选择Save setup data 保存数据;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 按Services服务选择键后的窗口:Data in 数据输入Data out 数据输出Manage data 数据管理Data selection 数据选择Interface 接口…………………V24 RS232C接口PG 编程器Disk 磁盘Archive… 文档NC card NC卡;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 按Diagnosis诊断选择键后的窗口:Alarms 报警Messages 信息Alarm log 报警记录Serrice displays 服务显示Plc status LC状态…………………Display newStore logSort young—old;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<按Program control程序控制,选择键后的窗口:• Skp:skip block跳过语句• Dry:dry run federate空运行• ROV:rap:trat o/ride 快速倍率• M01:program stop程序停止• DRF RF offset DRF偏差•RT: program test 程序测试SBL1: λ每一个机床切削后停止SBL2: 每一条语句后停止λSBL3: λ循环停止Display 显示Display all blocks 显示所有程序段λλ Display erav bloks anly 仅显示程序段移动;西门子系统打开两个程序窗口,可以相互复制程序段的操作步骤:新建一个文件或打开一个文件—→按“双页面键”—→打开第二个文件—→按“程序段选择键”,选中要复制的程序段—→按“复制程序段”键—→按NEXT/Window键,也就是把光标换到另一个文件下面—→按粘贴程序段键—→按“确定软键”。
施耐德PLCTwidoPLC可编程控制器第六章、指令

第六章、指令6-1 布尔指令6-2 标准功能块6-2-1 定时器功能块6-2-2 计数器功能块6-2-3 移位寄存器功能模块(%SBRi)6-2-4 步进计数器功能模块(%SCi)6-3 数字处理指令6-3-1 赋值指令6-3-2 比较指令6-3-3 算术指令6-3-4 逻辑指令6-3-5 移位指令6-3-6 转换指令6-3-7 单/双字转换指令6-3-8 浮点算术指令6-3-9 三角指令6-3-10 转换指令6-3-11 整数转换指<-> 浮点6-3-12 表求和功能6-3-13 表比较指令6-3-14 表查找指令6-3-15 表最大值和最小值查找功能6-3-16 表中某个值的出现次数6-3-17 表循环移动功能6-3-18 表排序功能6-4 程序控制指令6-4-1 END指令6-4-2 跳转指令6-4-3 子程序指令6-5 专用功能块6-5-1 LIFO/FIFO寄存器功能模块(%Ri) 6-5-2 脉宽调制功能模块(%PWM)6-5-3 脉冲发生器输出功能模块(%PLS)6-5-4 磁鼓控制器功能模块(%DR)6-5-5 高速计数6-5-6 超高速计数器功能模块(%VFC)6-5-7 调度模块6-6 通讯指令6-6-1 信息发送/接收6-6-2 数据交换控制6-1 布尔指令掌握要点:布尔指令:用语所有位元件Load指令(装入):LD,LDN,LDR,LDF分别对应常开,常闭,上升沿,和下降沿其中: N 代表“非”R 代表“上升沿”F 代表“下降沿”程序例:逻辑AND 指令: AND, ANDN , ANDR , ANDF。
逻辑与指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的逻辑与操作。
程序例:逻辑OR指令: OR , ORN , ORR , ORF,逻辑或指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的逻辑或操作。
程序例:赋值指令ST, STN, S, 和R分别对应直接,反转,置位,和复位线圈,其中: N 表示输出的非S 表示强制置位R 表示强制复位程序例:异或指令(XOR, XORN, XORR, XORF)异或指令执行操作数(或它的反转数,或上升沿,或下降沿)和前面指令的布尔运算结果间的异或操作。
FANUC0I系统隐藏你的9000程序

FANUC0I....程序.........系统隐藏你的......90000I..系统..........程序.........9000~~9999........就可以隐藏你的..参数..NO3202#4..是.:.修改详细修改如下......:.口令..............)和参数......No.3210(PASSWD....No.3211(KEYWD)................功能..............可以通过参数..参数..No.3202#4(NE9)将程序锁住以保护程序.......到...........No.9000No.9999.......将不能被修改。
...........................No.9000.......在锁住状态下除非输入了正确的口令否则程序.......到.No.9999锁住状态意味着参数.....的设置值不同这些参数中的设置..................KEYWD..值与参数......的.设置.........PASSWD值不显示当.....的设置值相同时就可以解锁当参数....................参数.......KEYWD......的设置值与参数..PASSWDPASSWD...0.时.......显示为表明......没有设置......PASSWD锁住和解锁的步骤:.........锁住...方式....:. 1 .置为..MDI2 .设置参数开关为可写这时在...P/S100........报警...上显示............CNC3 .设置参数..............No.3210(PASSWD)...............这时就设定为锁住状态4 .将参数写入开关置为禁止写入.............5 .按下解除报警状态........解锁.....方式..MDI..:. 1 .置为2 .设置参数开关为可......报警...P/S100.....上显示........写这时在....CNC3 .在参数......No.3210(PASSWD)........................相同的值这时锁住状..............中设置与参数...No.3211(KEYWD)态解除...4 .将参数...0....NE9(No.3202#4)..............设置为5 .将参数写入开关置为禁止写入.............6 .按下解除报警状态........7 .程序..No.9000.......到.No.9999 .......现在就可以编辑了........详细说明....设置参数....PASSWD:.......当参数...PASSWD ......中设置非....0 .值时就设置了锁住状态然而参数.............. PASSWD ......仅在锁住状态尚未设置时当............PASSWD=0 ........或.PASSWD=KEYWD ............才可以设置如......果在其它情况下设置该参数就会出现一个不能写入的警告当设置了锁住状态后当...................................PASSWD0,........且.PASSWD KEYWD ...........参数..NE9 ...就会..自动..设置为...1 .如果在这时试图将........NE9...改.为.0 .就会出现一个不能写入的警告.............改变参数....PASSWD:.......当锁住状态解除后当.........PASSWD=0 ........或.PASSWD=KEYWD ............就可以更改.....设置状态在解锁步骤的第...........3 .步后可以在参数.......PASSWD ......中设置一个新的参数从这时起必须...............在.KEYWD .....中设置一个新值才能解除锁住状态...............锁住和解锁的步骤........在参数...PASSWD ......中设置...0:..当在参数....PASSWD ......中设置...0 .时显示数字.....0 .并且口令功能被设........为无效换句话说口令功能可以通过将................KEYWD .....中的值设为与......KEYWD .....中一样的值或者干........脆不设置....PASSWD ......来取消为了确保不进入锁住状态必须千万..................小心不要在参数.......PASSWD ......中设置非....0 .值.重新锁住....:.在锁住状态解除后可以通过在.............PASSWD ......参数中设置一个不同的值来重新设定或.................者通过关掉.....NC ..电源再打开后将.......KEYWD .....复位来设定.....警告..一旦设定了锁住状态参数...........NE9 ...就不能被设为......0 .并且参数....PASSWD<br>..........在锁住状态解除之........前或者执行清除所有内存的操作之前不能进行修改在设置.........................PASSWD ......时要千万小心......0.系统是...10.4....不相信你可以试试........。
单片机数码管动态显示1234-9999

一、实验目的1.掌握Keil软件的基本使用2.学习和掌握C语言编写程序的一般格式3.了解数码管与单片机的接口方法;4.了解数码管性能及动态显示编程方法;5.了解并掌握单片机系统中定时器中断控制的基本方法;二、实验内容用定时器中断实现四位数码管动态显示从1234-9999。
三、实验原理3.1基础知识介绍A.数码管是LED的升级,每位数码管里面继承了8个LED,点亮数码管就是点亮数码管里面的LED。
要在数码管上面显示相应的值,就是点亮不同位置的LED。
数码管有共阴和共阳两种,共阴数码管公共端是所有LED的负极连接在一起,相反共阳数码管公共端是所有LED的正极连接在一起。
一般公共端称作“位选”,控制每一个LED的称为“段选”。
数码管主要是利用视觉暂留的效果,通过快速循环点亮数码管方式,将数据呈现出来。
数码管如图1.2所示1.2数码管1.3数码管实物图/B.定时器定时器也可看作是对计算机机器周期的计数器。
因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号。
故其频率为晶振频率的1/12。
如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间刚好为1μs。
定时器有两种工作模式,分别为计数模式和定时模式。
对Px,y 的输入脉冲进行计数为计数模式。
定时模式,则是对MCU的主时钟经过12分频后计数。
因为主时钟是相对稳定的,所以可以通过计数值推算出计数所经过的时间。
计数器的计数值存放于特殊功能寄存器中。
T0(TL0-0x8A, TH0-0x8C), T1(TL1-0x8B, TH1-0x8D)定时器工作原理如下图由上图可见与定时器相关的寄存器主要有下面这几个:TMOD、TCON、TL0、TH0、TL1、TH1。
下面介绍一下这几个寄存器16位加法计数器:是定时计数器的核心,其中TL0、TH0、是定时计数器0的底八位和高八位;TL1、TH1是定时计数器1的底八位和高八位;并且高八位和底八位可单独使用。
欧姆龙plc指令

欧姆龙CPM1A系列PLC基本指令cpm1a系列PLC的基本逻辑指令与FX系列PLC相似,梯形图的表达方式也大致相同。
在此,列表显示了cpm1a系列PLC的基本逻辑指令(请参见表4-8)。
表4-8给出了cpm1a系列PLC的基本逻辑指令名称,指令符号功能操作号将LD读入逻辑线或电路块的第一个常开触点00000〜0191520000〜25507hr0000〜1915ar0000〜1515lr0000〜1515tim / cnt000〜127tr0〜7 * TR仅用于LD指令反向ld不读取逻辑线或电路块的第一个常闭触点常开触点与和串联常闭触点与非和非串联或与常开触点并联是否与常闭触点不平行电路块与LD串联连接,一个电路块不带LDLD或并联电路输出输出逻辑线的运算结果00000〜0191520000〜25507hr0000〜1915ar0000〜1515lr0000〜1515tim / cnt000〜127tr0〜7 * TR仅用于out指令输出取反不会反转输出逻辑线的运算结果将继电器状态设置为开重置RSET以将继电器重置为关闭Timing Tim打开延迟计时器(减法)的设置时间0〜999.9s Tim/ cnt000〜127的设置值0〜9999的计时单位为0.1s,计数单位为1次计数CNT减法计数器设置值0〜9999次欧姆龙CPM1A系列PLC功能指令功能指令也称为特殊指令。
cpm1a系列PLC提供的功能指令主要用于实现程序控制,数据处理和算术运算。
这种指令在简单的编程器上没有相应的命令键。
它仅为每条指令提供一个功能码,用两位数字表示。
输入此类指令时,请先按“ Fun”键,然后按相应的代码。
下面将介绍一些常用的功能指令。
1.无操作指令NOP(0 0 0)该指令不执行任何逻辑运算,因此称为空操作,它不使用继电器,也不需要操作号。
指令应用程序在调试程序时会在程序中保留一个地址,也可以用来微调扫描时间。
2. End指令end(01)该指令单独使用,不需要操作数。
c语言程序代码

c语言程序代码(总22页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1.要求在屏幕上输出下一行信息。
This is a c program.程序:#include<>int main(){printf(“this is a c program.\n”);return 0;}2.求两个整数之和。
程序:#include<>int main(){int a,b,sum;a=122;b=234;sum=a+b;printf(“sum is %d\n”,sum);return 0;}3.求两个整数之间的较大者。
程序:#include<>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d\n",c);return 0;}int max(int x,int y){int z;if(x>y)z=x;else z=y;return(z);}4.有人用温度计测量出华氏发表示的温度(如69°F),今要求把她转换成以摄氏法表示的温度(如20℃)。
公式:c=5(f-32)/9.其中f代表华氏温度,c代表摄氏温度。
程序:#include<>int main(){float f,c;f=;c=9)*(f-32);printf("f=%f\nc=%f\n",f,c);return 0;}5.计算存款利息。
有1000元,想存一年。
有一下三种方法可选:(1)活期:年利率为r1;(2)一年定期:年利率为r2;(3)存两次半年定期:年利率为r3。
分别计算一年后按三种方法所得到的本息和。
程序:#include<>int main(){float p0=1000,r1=,r2=,r3=,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);return 0;}6.给定一个大写字母,要求以小写字母输出。
VF设置一览表

通或断
23
9XXX PROGS EDIT LOCK
9XXX程序编辑锁定
通或断
74
9XXX PROGS TRALE
9XXX程序追踪
通或断
75
9XXX PROGS SINGLE BLK
9XXX程序单程序段
通或断
162
DEFAULT TO FLOAT
漂移预设
OFF/ON
GRPHICS(图形)
3
3D GRAPHICS
G51缺省比列尺
1至8380.000
72
DEFAULT G68 ROTATION
G68缺省旋转
0至360.0000
73
G68 INCREMENTAL ANGLE
G68增量角度
通或断
P
30
4TH AXIS ENABLE
可使用第四轴
OFF
34
4TH AXIS DIAMETER
第四轴直径
0至9.9999寸
MIRROR IMAGE B AXIS
B轴镜像
通或断
130
TAP RETRACT SPEED
攻丝退回速度
4
PROGRAM 3 (程序3 )
RS—232 PORTS(RS—232接口)
11
BAUD RATE SELECT
波特率选定
4800
12
PARTY SELECT
奇偶选择
NONE(无)ODD(奇)EVEN(偶)ZERO(零)
TOOL RELEASE LOCK OUT
刀具释放闭锁
通或断
16
DRY RUN LOCK OUT
空运转闭锁
通或断
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、0-9999计数器的低层设计(VHDL语言代码)
分频器程序:
l ibrary ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity div is
generic(n: integer := 50000000);
port(
clk :in std_logic;
q :out std_logic
);
end div;
architecture bhv of div is
signal count :integer range n - 1 downto 0 := n - 1; begin
process(clk)
begin
if clk'event and clk='1' and clk'last_value = '0' then count <= count - 1;
if count >= n / 2 then
q <= '0';
else
q <= '1';
end if;
if count <= 0 then
count <= n - 1;
end if;
end if;
end process;
end;
计数器程序:
l ibrary ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt_10 is
port(clk,en,reset :in std_logic;
cnt1,cnt2 :out std_logic_vector(3 downto 0)); end;
architecture bhv of cnt_10 is
signal temp1,temp2:std_logic_vector(3 downto 0);
signal c:std_logic;
begin
cnt1 <= temp1;cnt2<= temp2;
p1:process(clk,reset)
begin
if reset='1'then temp1 <="0000";
elsif clk'event and clk='1'then
if en='1'then
if temp1 <"1001"then temp1 <=temp1+1;c<='0';
else temp1 <="0000";c <='1';
end if;
end if;
end if;
end process p1;
p2:process(reset,c)
begin
if reset = '1' then temp2<="0000";
elsif c'event and c = '1' then
if en = '1' then
if temp2<"1001"then temp2<= temp2+1;
else temp2<="0000";
end if;
end if;
end if;
end process p2;
end;
数码管显示程序:
library ieee;
use ieee.std_logic_1164.all;
entity display is
port(clk_s :in std_logic;
data1, data2 :in std_logic_vector(3 downto 0);
dig :out std_logic_vector(1 downto 0);
seg :out std_logic_vector(7 downto 0) );
end;
architecture bhv of display is
signal cnt :std_logic;
signal d :std_logic_vector(3 downto 0);
begin
p0: process(clk_s)
begin
if clk_s'event and clk_s = '1' then cnt <= not cnt;
end if;
end process p0;
p1: process(cnt)
begin
case cnt is
when '0' => dig <= "10"; d <= data1;
when '1' => dig <= "01"; d <= data2;
end case;
end process p1;
p2: process(d)
begin
case d is
when "0000" => seg <= "11000000";
when "0001" => seg <= "11111001";
when "0010" => seg <= "10100100";
when "0011" => seg <= "10110000";
when "0100" => seg <= "10011001";
when "0101" => seg <= "10010010";
when "0110" => seg <= "10000010";
when "0111" => seg <= "11111000";
when "1000" => seg <= "10000000";
when "1001" => seg <= "10010000";
when others => seg <= "11111111";
end case;
end process p2;
end;。