仿真图: 基于数码管显示,具有方波 正弦波 三角波 锯齿波放大功能,放大倍数支持1倍20倍30倍50倍放大
程序设计
#include #include sbit sbF1 = P2 ^ 0; //不进行放大处理 sbit sbF20 = P2 ^ 1; //放大20倍 sbit sbF30 = P2 ^ 2; //放大30倍 sbit sbF50 = P2 ^ 3; //放大50倍 sbit sbDIN = P3 ^ 0; //MAX7219的数据引脚 sbit sbLOAD = P3 ^ 1; //MAX7219的控制引脚 sbit sbCLK = P3 ^ 2; //MAX7219的时钟引脚 //显示缓冲区定义 unsigned char Disp_Buffer[8]= //MAX7219的输出缓冲 { 0,0,0,0,0,0,0,0 }; unsigned char Disp_Buffer1[8]= //MAX7219的输出缓冲 { 0,0,0,0,0,0,0,1 }; unsigned char Disp_Buffer20[8]= //MAX7219的输出缓冲 { 0,0,0,0,0,0,2,0 }; unsigned char Disp_Buffer30[8]= //MAX7219的输出缓冲 { 0,0,0,0,0,0,3,0 }; unsigned char Disp_Buffer50[8]= //MAX7219的输出缓冲 { 0,0,0,0,0,0,5,0 }; void DelayMS(unsigned int ms) //毫秒级延时函数 { unsigned int i,j; for( i=0;i } //写MAX7219函数,Addr为MAX7219的内部寄存器地址,Dat为待写入的数据 void Write7219(unsigned char Addr,unsigned char Dat) { unsigned char i; sbLOAD = 0; for(i=0;i<8;i++) //先送出8位地址 { sbCLK = 0; //时钟拉低 Addr <<= 1; //移位送出地址 sbDIN = CY; //送出数据 sbCLK = 1; //时钟上升沿 _nop_(); _nop_(); sbCLK = 0; } for(i=0;i<8;i++) //再送出8位数据 { sbCLK = 0; Dat <<= 1; //移位送出数据 sbDIN = CY; sbCLK = 1; _nop_(); _nop_(); sbCLK = 0; } sbLOAD = 1; } //MAX7129的初始化函数 void Initialise7219() { Write7219(0x09,0xff); //编码模式寄存器 Write7219(0x0a,0x07); //显示亮度控制 Write7219(0x0b,0x07); //扫描控制 Write7219(0x0c,0x01); //关闭模式控制寄存器设置 } void Wobbling () //延时程序防止按键抖动 { unsigned int i; for(i=0;i<1000;i++); } void main() { unsigned char i; Initialise7219(); //首先初始化MAX7129 DelayMS(1); //延时1毫秒 for(i=0;i<8;i++) { Write7219(i+1,Disp_Buffer[i]); //将显示缓冲区内的数据循环送出 } P1 = 0x00; //初始化端口 P2 = 0xFF; P1 = 0x11; //再不按键的情况下默认为不进行放大处理 while(1) { if (sbF1 == 0) //判断是否按下按键 { Wobbling(); //时间延时程序,软件防抖动 if( sbF1 == 0) //确定按下按键 { P1 = 0x11; //放大1倍 for(i=0;i<8;i++) { Write7219(i+1,Disp_Buffer1[i]); //显示放大1倍 } } } if(sbF20 == 0) //判断是否按下按键 { Wobbling(); //时间延时程序,软件防抖动 if(sbF20 == 0) //确定按下按键 { P1 = 0x22; //放大20倍 for(i=0;i<8;i++) { Write7219(i+1,Disp_Buffer20[i]); //显示放大20倍 } } } if(sbF30 == 0) //判断是否按下按键 { Wobbling(); //时间延时程序,软件防抖动 if(sbF30 == 0) //确定按下按键 { P1 = 0x44; //放大30倍 for(i=0;i<8;i++) { Write7219(i+1,Disp_Buffer30[i]); //显示放大20倍 } } } 文件仅供参考 链接:https://pan.baidu.com/s/1Ro5Ryg7k_E4AuBsxYmeQdA 提取码:cxa5
上一篇:51单片机驱动蜂鸣器发声教程
下一篇:基于51单片机的简易摇号抽奖机器
推荐阅读最新更新时间:2024-11-16 23:23
推荐帖子
- 读取CF卡的序列号的问题
- 我的程序如下:是在网上弄到的。//getCFSerialNumber.cpp:Definestheentrypointfortheapplication.//#includestdafx.h//mycode#includewindows.h#includewinioctl.h#defineIOCTL_DISK_BASEFILE_DEVICE_DISK#defineIOCTL_DISK_GET_STORAGEIDCTL_CODE(I
- paraller 嵌入式系统
- 请教各位前辈:泰克的老款二手频率计,1.3G, 1PPM,400元值得收么?
- 如题,卖家说机器里面看着非常新,功能正常,没用到贴片件。从用的元器件看是97年出的。指标比国产便宜的机器还好很多,频率范围不太大但也够用了。问问各位高人还值得收吗?先谢了!请教各位前辈:泰克的老款二手频率计,1.3G,1PPM,400元值得收么?有自校正吗,没的话就别考虑,用段时间需要校正的,除非你自己有能力能校正。泰克的东西质量就是好啊,13年了,还能拿出来卖,不得不服~我买这个主要是为了测彩色副载波。这台机子里面有个10M的TCXO,精度就是1PPM
- 春之歌 测试/测量
- 用Seeed Studio BeagleBone Green Wireless开发板解决物联网应用开发面临的挑战
- 物联网(IoT)快速发展,成为了创新的主要驱动力,吸引了来自互联网应用和传统嵌入式设备领域的许多开发者。因为应用常常设计新的、未经测试的产品概念,此类产品的市场仍不确定。因此,使用能够快速做出原型机并进行早期用户接受测试开发方法非常重要。如果产品概念证明成功,就需要快速开发进入市场,以避免模仿竞争。传统的嵌入式开发在进行任何用户测试之前首先需要设计制造定制硬件原型。这代表了具有硬件设计能力的公司的大部分时间和成本,尤其是主板需要使用无线连接和传感器增强处理器或微控制器(MCU)。如果你
- maylove DSP 与 ARM 处理器
- WinCE中USB HID设备的读写问题
- 为什么在WindowsXP/2k...下可以CreateFile,可以WriteFile/ReadFile的USBHID设备在WinCE上却不行?1.我在HKLM\\Drivers\\Active\\2x\\下找到了这个HID设备(Name:sz:HID1:)2.我用CreateFile打开它,成功;但却无法Write/Read,至少WriteFile是不行的仁兄们,这是为何?我要想在WinCE上读写USBHID设备要怎么办?WinCE中USBHID设备的读写问题1是不是驱
- lgyno WindowsCE
- CPLD在时栅位移传感器中的应用
- 引言智能时栅位移传感器是在文献提出的时空坐标转换理论和文献提出的“场式运动坐标系”思想指导下,根据智能传感器的特点和设计方法,研制开发的一种全新的位移传感器。“以时间测量空间”的设计原理和思想新颖、独特,已获国家专利。与光栅等传统栅式位移传感器相比,具有制造工艺简单、结构简单、抗干扰能力强、成本低、智能化程度高等显著优势,具有很好的市场前景和竞争力。智能时栅位移传感器的工作原理是:用于拾取信号的动、定测头置于一旋转磁场内,旋转磁场是由按时间120°均分的三相交流电流接到按空间12
- frozenviolet 汽车电子
- DCDC反向预充
- 有做过DCDC反向预充的吗,拓扑如上,低压侧(右边)反向给高压侧(左边)母线电容充电。技术方案我已经知道了,但参数设计和仿真模型搞不出来,有大佬会吗?DCDC反向预充变压器的参数需要知道吧搜一下MPS的有现成方案TI也有一款芯片反向DCDC的华为手机的反充你可以去b站搜搜看有拆解能看到芯片。纯属好奇,开发这个功能的目的是什么呢?
- 爱干饭 汽车电子
设计资源 培训 开发板 精华推荐
- ADM00823、MIC22950 10A 同步降压稳压器评估板
- 具有电容缓冲功能的 LTC4306 4 通道、2 线总线多路复用器的典型应用
- LTC3624HMSE-25 5V 输出电压、2A 同步降压型稳压器的典型应用,具有 1MHz、突发模式操作
- STC8G-51单片机开发板
- MP26123DR-多串锂电池充电方案
- TMP04FT9温度传感器
- ADA4000-2ARZ运算放大器缓冲网络配置的典型应用电路
- PETALUMA (MAXREFDES30#):8通道同时采样模拟前端
- 开关频率为1.4MHz的AP5100 1.2A降压转换器的典型应用
- DC1422A-B,演示板双路匹配 10MHz 低噪声、低失真二阶 LP 滤波器