51单片机和dac0832输出方波、矩形波和正弦波由液晶1602显示的c语言程序内容摘要:

0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, //输出电压从最小值到 0(正弦波 1/4 部分) 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,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}。 void delay(uchar z) { uint x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } void triangle_out() //三角波输出 { DAdata=triangle_tab[wavecount++]。 if(wavecount64) wavecount=0。 DA_S1=0。 //打开 8 位输入寄存器 DA_S1=1。 //关闭 8 位输入寄存器 } void sine_out() //正弦波输出 { DAdata=sine_tab[wavecount++]。 DA_S1=0。 //打开 8 位输入寄存器 DA_S1=1。 //关闭 8 位输入寄存器 } void square_out() //方波输出 { judge=~judge。 if(judge==1) DAdata=0xff。 else DAdata=0x00。 DA_S1=0。 //打开 8 位输入寄存器 DA_S1=1。 //关闭 8 位输入寄存器 } /************1602 液晶的相关函数 *************/ define lcd_ports P1 sbit rs=P2^2。 sbit rw=P2^3。 sbit lcden=P2^4。 void write_(uchar ) { rs=0。 //置零,表示写指令 lcden=0。 lcd_ports=。 delay(5)。 lcden=1。 delay(5)。 lcden=0。 } void write_date(uchar date) { rs=1。 //置 1,表示写数据(在指令所指的地方写数据) lcden=0。 lcd_ports=date。 delay(。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。