基于51单片机的函数信号发生器刘志强内容摘要:
,0x0f ,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43 ,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80}。 uchar code sanjiao[]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66, 68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134, 136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194, 196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254, 255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198, 196,194,192,190,188,186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,140,138, 136,134,132,130,128,126,124,122,120,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,78,76,74,72,70, 68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2}。 void key_gongneng()。 uint key_sub_mul(uint movedate)。 void display()。 void control()。 uint T0_chuzhi,an_cishu,gedian,quzhi,fangbo_fre=250,fre=250,t0_aa,fangbo_quzhi,fangbo_fre_show,fre_show,flag,t0_cishu,t0_zhuangzhi。 void delay(uint xms)//延时函数; { uint i,j。 for(i=xms。 i0。 i) for(j=25。 j0。 j)。 } void write_(uint )//LCD 写命令; { lcdrs=0。 P0=。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } void write_date(uint date)//LCD 写数据; { lcdrs=1。 P0=date。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } /* init()程序为各部分功能初始化设置。 */ void init() { uint i。 TMOD=0x22。 //定时 0 工作方式为 2,定时器 1 工作方式为 2。 EA=1。 //开总中断。 EX0=1。 //开外部中断。 ET0=1。 ET1=1。 //开定时器 0 和定时器 1 中 断。 TH0=0。 TL0=0。 //定时器 0 装初值。 TH1=0。 TL1=0。 //定时器 1 装初值。 da_cs=0。 da_wr=0。 //开 DA 片选。 write_(0x38)。 write_(0x0c)。 write_(0x06)。 write_(0x01)。 //LCD 初始设置。 write_(0x80)。 for(i=0。 i17。 i++) { write_date(to_start[i])。 } } void main() { init()。 while(1) { if(flag==0) control()。 } } /* key_gongneng()为功能按键设置。 an_cishu==0 时表示什么也不输出。 an_cishu==1 表示输出方波。 an_cishu==2 时表示输出三角波。 an_cishu==3 时表示输出正弦波。 当 an_cishu==4 时 ,将其置 0。 */ void key_gongneng() { if(key2==0) { delay(10)。 if(key2==0) { an_cishu++。 if(an_cishu==4) { an_cishu=0。 } while(!key2)。 flag=0。 P1=0xff。 } } } /* key_sub_mul()此子程序用作频率加减。 */ uint key_sub_mul(uint movedate) { if(key1==0) { delay(5)。 //消抖。 if(key1==0) { if(movedate=500) movedate+=125。 if(movedate=50amp。 amp。 movedate500) movedate+=50。 if(movedate50) movedate+=5。 if(movedate5000) movedate=5000。 while(!key1)。 flag=0。 } } if(key0==0) { delay(5)。 //消抖。 if(key0==0) { if(movedate=50) movedate=5。 if(movedate50amp。 amp。 movedate=500) movedate=50。 if(movedate500) movedate=125。 if(movedate5) movedate=5。 while(!key0)。 flag=0。 } } return movedate。 } /* contr。基于51单片机的函数信号发生器刘志强
相关推荐
在讲解过程中,特别要注意讲清楚基本尺寸与实际尺寸、误差与公差、公差与偏差和实际偏差与极限偏差几者之间的区 别和联系,通过举例,使学生能深刻地理解它们的含义以及它们之间的关系,为后续内容的学习打下良好的基础。 另外,在讲授时使用多媒体课件和挂图教学,比较直观,学生容易理解接受。 最后,对于孔轴偏差的查表计算,课堂上应演示查表,并留给学生一定的时间让学生自己动手练习查表,学会孔轴偏差的确定
(3) 研究 AB,受力分析,画出受力图 (平面任意力系 ); (4) 选 A 点为矩心,列出平衡方程; ( ) 0 : co s co s 02co s 2A B DDlM F F l Q F halF Q Plh 415 在齿条送料机构中杠杆 AB=500 mm, AC=100 mm,齿条受到水平阻力 FQ 的作用。 已知 Q=5000
内衬橡胶、搪玻璃、聚四氟乙烯等耐腐蚀材料。 为控制反应温度,罐体外壁常设有夹套,内部也可安装蛇管。 标准釜底一般为椭圆。 根据釜盖与釜体连接方式的不同,搅拌釜式反应器可分为开式(法兰连接)和闭式(焊接)两大类。 目前,釜式反应器的技术参数已实现标准化。 本次设计采用搪玻璃釜式反应器,内设搅拌器,外设夹套。 主要技术参数的计算如下: (一 ) 反应器总容积的计算 1. 乙酰水样酰氯的制备 过程,
解网络连接,还需要专线做心跳监测,当主机 /应用发生故障时, Octopus 会马上监测到,将故障情况向管理员报警,然后根据策略自动或手工快速地将应用切换到过程的主 机。 重要说明的是,绝大多数容灾方案是支持主、备中心之间双向数据复制和应用切换的,并且支持多个不同物理地点间的容灾。 如何看待容灾的回报 一个容灾系统,由于需要 建立远程灾备中心,因此,企业需要从软件到硬件,进行多方面的投入。
h/lb=1500/1000= 经查表, μ的取值为: 计算长度: L01=k μh== L02=h+2a=+2 = 取: L0= λ=L0/i=由此得: φ= [N]=φAf=360N/mm2= ≥ 梁板下的钢管结构满足要求 (三) 、钢管加固 支撑的 搭设及拆除: 工艺流程
of, this will all refrigerator into a very rich world. Here we can from a different perspective on the refrigerator to make a deeper understanding. First, from a different perspective on the