《基于51单片机的三角波发生器》由会员分享,可在线阅读,更多相关《基于51单片机的三角波发生器(7页珍藏版)》请在人人文库网上搜索。

1、包括/振幅05可调频率1001000#包括#包括#定义uchar无符号字符#定义uint无符号整数#定义dac1 _ h x字节0x 7 fff/1230的高地址#定义dac1 _ l x字节0x3fff/1230的低位地址,并开始转换sbit cs 7221=p11;/7221芯片选择sbit din 7221=p10;/7221的数据端sbit clk 7221=p12;/7221的时钟端子uchar DISPBUF8=0,1,2,3,4,5,6,7 ;/显示缓冲区斯比特so=p15;/165的数据输出斯比特sh=p14;/转移165的班次结束斯比特clk=p13;/165的时钟端子#定义。

2、fosc12 /晶体频率uint idata time0 _ 0/临时变量,用于计算计时uint time0/定时时间长度uint吕品=100;/默认频率为100位TIME 1=0;/用于计时标记比特石开=0;/用于计时标记无效延迟(uint n);/延迟子程序初始无效7221(无效);/MAX7221初始化无效WR7221(uchar地址,uchar数据);/MAX7221编写程序void max 7221 display(uchar *缓冲区);/MAX7221显示程序void time 2 ms(void);/定时器0初始化程序void time 0 _ int(void);/定时器0中。

3、断服务程序无效发送(uchar高,uchar低);/DAC1230输出转换开始无效DAC1230(无效);/输出三角波uchar scankey(无效);/键盘扫描无效键(void);/键盘处理无效显示(void);/显示频率main()initial 7221();/初始化MAX7221max 7221 display(DISPBUF0);/显示01234567延迟(10000);/延迟disp();/显示频率时间2毫秒();/定时器初始化而(1)键();/键盘处理如果(石开=1)/允许三角波输出DAC 1230();/输出三角波无效发送(uchar高,uchar低)/数模转换器1230输出。

4、转换开始DAC1_h=(高4)|(低4);/高8位输出DAC1 _ l=(low 4);/低4位输出开始转换Void DAC1230(void)/输出三角波uchar i,k;对于(k=0;k=15K )/上升高字节的调整对于(I=0;I=5;I )/低字节在一个周期内调整16*6=96个输出发送(k,I * 51);/DAC1230输出做;同时(TIME1!=1);/等到时间到了时间1=0;/清除时间标记对于(k=0;k=15K )/下降高字节调整对于(I=0;I=5;I )/低字节调整发送(15-k,255-I * 51);做;同时(TIME1!=1);/等到时间到了时间1=0;/清除时间。

5、标记/-扫描键盘,当没有按键时,返回键值i=(0-7) j=0f。uchar scankey(无效)uchar i=0,j=0x0fsh=0;/收集和加载延迟(1);sh=1;/你可以移动延迟(100);对于(I=0;i8;I )/8位密钥读取clk=0;/先读第一个数字如果(so=0)/如果按下相应的键,则为0,否则为1返回(I);/返回密钥号clk=1;/上升沿偏移返回(j);/没有按键时返回0f无效键(无效)uchar k;uint pinlv0/临时频率号pinlv0=吕品;k=scan key();/读取关键数字如果(k=0) /是否按下了频率调整按钮延迟(1000);/延迟去抖k=。

6、scan key();如果(k=0) /按下按钮调整频率 do k=scan key(); while(k=0);/等待按钮被释放对于(;(k=scan key();添加if(k=1)/延迟(1000);/延迟去抖k=scan key();添加if(k=1)/ do k=scan key();同时(k=1);/等待按钮被释放pinlv0当频率超过1000赫兹时,如果(引脚0=1001) /设置为100pinlv0=100否则,如果(k=2)/减延迟(1000);/延迟去抖k=scan key();如果(k=2)/减 do k=scan key();而(k=2);/等待按钮被释放pin LV 0。

7、-;当频率低于100赫兹时,如果(pinlv0=99) /设置为1000pinlv0=1000否则,如果(k=3)/确认键延迟(1000);/延迟去抖k=scan key();如果(k=3)/确认键 do k=scan key();同时(k=3);/等待按钮被释放吕品=pinlv0时间2毫秒();/改变时间、时间和频率disp();/显示变化频率打破;/返回否则,如果(k=4)/取消键延迟(1000);/延迟去抖k=scan key();如果(k=4)/取消键 do k=scan key();而(k=4);/等待按钮被释放打破;/返回否则,如果(k=5)(石开=0)/是否按下了三角波输出按钮延。

8、迟(1000);/延迟去抖k=scan key();if(k=5) do k=scan key();而(k=5);/等待按钮被释放石开=1;/输出三角波否则,如果(k=6)(石开=1)/停止输出三角波的按钮被按下延迟(1000);/延迟去抖k=scan key();if(k=6) do k=scan key();而(k=5);/等待按钮被释放石开=0;/停止输出三角波Void time2ms(void) /T0定时器初始化TMOD=0x 01;/T0工作模式1/*定时设置*/时间0=1000000/吕品/96;/每次数模转换的时间时间0 _ 0=65536-时间0 * fosc/12;/计算初。

9、始值TH0=(时间0 _ 0/256);/加载定时器0的初始值TL0=(时间0 _ 0% 6);TR0=1;/启动定时器0ET0=1;/打开定时器0中断EA=1;/打开总中断/*定时器0中断服务子程序,*/void time0_int(void)中断1TH0=(时间0 _ 0/256);/重新加载定时器0的初始值TL0=(时间0 _ 0% 6);时间1=1;/标志位时间无效延迟(uint n) /延迟程序uint i1,J1;对于(i1=0;i1i)?1:0;/依次从高位置到低位置开始_ nop _();_ nop _();CLK 7221=1;/时钟高上升边沿锁定数据_ nop _();_ 。

10、nop _();对于(I=0;i8;I) /写入8位数据CLK 7221=0;/时钟低DIN7221=(数据(0x80i)?1:0;/依次从高位置到低位置开始_ nop _();_ nop _();CLK 7221=1;/时钟高上升边沿锁定数据_ nop _();_ nop _();cs 7221=1;/芯片选择无效Void Initial7221(void)/MAX7221初始化WR7221(0x0A,0x0A);/亮度地址0AH,0x000x0F,0x0F是最亮的WR7221(0x0B,0x 07);/扫描发光二极管编号地址0BH,0x000x07,最多扫描8个数码管WR7221(0x0C,0x 01);/工作模式地址0x0C.0x003360关闭;0x01:正常WR7221(0x09,0xff);/编码模式地址0x09。0x000xFF:哪个位为1,哪个位支持编码无效max7221显示(uchar *缓冲区)/max7221显示子程序uchar I;对于(I=0;i8;I)/8支max7221显示器数码管WR7221(i 1,*(缓冲区I);/调整MAX7221的写子程序无效显示(无效)DISPBUF0=吕品/1000;/千dispbuf1=pinlv00/100;/百位数dispbuf2=pinlv0/10;/十位数dispbuf3=pinlv;/十位数Max722。

单片机三角波c语言程序,基于51单片机的三角波发生器相关推荐

  1. 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序

    基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...

  2. 基于51单片机的数字电压表c语言程序,基于51单片机的数字电压表的设计..doc

    数字电压表的设计目录 TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc282204562" 绪论1 HYPERLINK \l & ...

  3. c51单片机音乐门铃C语言程序,基于51单片机的无线音乐门铃设计

    include #define sound_amount 5 // 歌曲的数量 sbit pause=P2^5; // 播放 暂停 sbit speaker=P2^7; // 无源蜂鸣器 // uns ...

  4. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

  5. 湿度控制c语言程序,基于51单片机的湿度控制系统设计.doc

    基于51单片机的湿度控制系统设计 基于51单片机的湿度控制系统设计 摘要 关键词:单片机:湿度传感器:ADC0832数模转换 目 录 序 言1 第一章 系统的整体设计方案2 1.1设计内容2 1.2系 ...

  6. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  7. 水塔水位测量c语言程序,基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)...

    基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)(任务书,开题报告,外文翻译,论文18000字) 摘  要 为了能实现水位监测与控制,以STC89C52作为核心控制芯片,进行了水位检测系统控 ...

  8. 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...

    基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...

  9. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

  10. 基于51单片机的光照强度检测c语言程序,基于51单片机光照强度检测报告.doc

    基于51单片机光照强度检测报告 课程设计报告 课程名称: 智能仪器课程设计 题 目: 基于51单片机的光照强度 摘要 光敏电阻测光强度系统,该系统可以自动检测光照强度的强弱并显示让人们知道此时光照强度 ...

最新文章

  1. ASP .NET Core Web MVC系列教程二:添加控制器
  2. 【CV秋季划】人脸美颜与风格化视频上新
  3. PMcaff大讲堂:竞品分析项目管理课程总结分享
  4. leetcode279 完全平方数
  5. 24种常用HTML常用实例
  6. MySQL实战 | 01 当执行一条 select 语句时,MySQL 到底做了啥?
  7. 使用Laravel Eloquent ORM 时如何查询表中指定的字段 1
  8. mysql maven 自动生成_【图文经典版】maven自动生成dao层
  9. java 包的package和import语句
  10. 元旦节前python网络编程趣味小游戏
  11. java计算101~200之间的素数
  12. 一文看清Libra全景(超长22000字,慎点)
  13. OSChina 周六乱弹 ——论单身的11大好处
  14. PHP单元测试框架 - PHPUnit介绍
  15. Unity VFX粒子系统入门笔记-2-制作简易火焰特效
  16. 【LaTex】第二行作者居中(IEEEtran模板)
  17. STAR法则的简历应用
  18. 解决vue低版本ios,安卓手机浏览器打开H5页面空白的问题
  19. uniapp 微信小程序 获取refs是空对象
  20. Web APIs-事件流、事件委托、其他事件、元素尺寸与位置

热门文章

  1. 浑浑噩噩10年,入坑软件测试,6年干到测试leader,非科班的我也能当程序员!
  2. Windows11在Edge浏览器中打开IE浏览器兼容的页面,在Edge浏览器打开加载ActiveX控件的页面
  3. python发送文件_利用python传送文件
  4. 滴滴如何调度_滴滴智能调度浅析
  5. 程序员创业:从有想法 - 公司注册 - 项目路演 - 一对一投资人商谈
  6. 最近抖音上虚拟元宇宙项目-猜歌名,代码解析
  7. 云购系统、一元云购系统接入短信验证及订单通知功能
  8. 输入起止坐标,返回途径网格。
  9. 问题 C: 所罗门王的宝藏
  10. Windows异常学习笔记(三)—— VEHSEH