Ⅰ 鍗旷墖链哄备綍浜х敓鏂规尝锛
浜х敓鏂规尝鑴夊啿淇″彿镄勬柟娉曟湁澶氱嶏纴浠ヤ笅浠嬬粛鍏朵腑涓ょ嶏细
浣跨敤瀹氭椂鍣锛氩崟鐗囨満涓镄勫畾镞跺櫒鍙浠ヨ緭鍑轰竴瀹氶戠巼鍜屽崰绌烘瘆镄勬柟娉㈣剦鍐蹭俊鍙枫傚叿浣撴ラゅ备笅锛
锛1锛夎剧疆瀹氭椂鍣ㄧ殑璁℃暟鍣ㄥ埯鍊煎拰閲嶈呰浇鍊硷纴浠ョ‘瀹氩畾镞跺櫒镄勮℃暟锣冨洿鍜岃℃椂锻ㄦ湡銆 锛2锛夎剧疆瀹氭椂鍣ㄧ殑宸ヤ綔妯″纺锛屼緥濡傛ā寮1鎴栨ā寮2銆 锛3锛夊紑钖瀹氭椂鍣ㄤ腑鏂鍜岃℃暟鍣ㄣ傚畾镞跺櫒涓鏂瑙﹀彂镞讹纴浜х敓涓娆℃柟娉㈣剦鍐蹭俊鍙枫
浣跨敤GPIO鍙o细鍗旷墖链虹殑阃氱敤杈揿叆杈揿嚭鍙o纸GPIO锛変篃鍙浠ラ氲繃璁剧疆杈揿嚭楂树绠鐢靛钩镄勬柟寮忎骇鐢熸柟娉㈣剦鍐蹭俊鍙枫傚叿浣撴ラゅ备笅锛
锛1锛夊皢GPIO鍙h剧疆涓鸿緭鍑烘ā寮忋 锛2锛夐氲繃淇鏀笹PIO鍙g数骞虫潵鐢熸垚鏂规尝鑴夊啿淇″彿锛屽嵆鍏埚皢GPIO鍙g数骞崇疆楂桡纴缁忚繃涓瀹氭椂闂村悗鍐嶅皢GPIO鍙g数骞崇疆浣庯纴鍗冲彲鐢熸垚鏂规尝鑴夊啿淇″彿銆
浠ヤ笂涓ょ嶆柟娉曞潎鍙浠ョ敓鎴愭柟娉㈣剦鍐蹭俊鍙凤纴鍏蜂綋鏂规硶鍙镙规嵁瀹为檯搴旂敤杩涜岄夋嫨銆
浠呬緵鍙傝冿纴璋㈣阿锛
Ⅱ 单片机波形发生器仿真图怎么调节
使用方法按下向上键切换波形。按下回车键进入频率设置,输入数字再按回车后保存,如果不想保存按下ESC键退出设置。起始时可能需要调整示波器才能正常显示波形。频率可调方波发生器设计,有图,有代码,protues仿真,易于实现。
利用数模转换器PCF8591实现简易波形发生器(可以输出正弦波、方波、三角波和锯齿波。可以通过按键选择波形和频率。事先用MATLAB生成波形数据,点数越多,波形越逼真)。
PCF8951是一个单电源低功耗的8位CMOS数据采集器件,具有4路模拟输入,1路模拟输出,一个串行I2C总线接口用来与单片机通信。三个引脚A0,A1,A2,用于编程硬件地址,允许最多8个器件连接到I2C而不需要额外的电路。器件的地址,控制以及数据都是通过I2C总线来传输。其中引脚1,2,3,4是4路模拟输入,引脚5,6,7是I2C总线的硬件地址,引脚8为数字地,9脚和10脚是I2C总线的SDA和SCL。12脚是时钟选择引脚,高电平表示外部时钟输入,低电平表示使用内部时钟。14脚是基准源,15脚是DAC的模拟输出,16脚是供电电源VCC。
Ⅲ 如何用C语言编程使单片机产生方波信号
普通51的话需要模拟PWM,如果是加强版51有内置PWM模块,
PIC和AVR以及430还有STM也有集成PWM的型号!
如果是单纯输出方波的话就简单了。
程序如下:
//功能,按下P1_0的开关降低频率,按P1_1为升高频率
#include<AT89X52.H> //引用AT89X52的库文件
#defineucharunsignedchar //替换简称
#defineuintunsignedint //替换简称
ucharsm; //定义临时变量
voiddelay_ms(uintms) //延时子函数,一个循环12uS
{
while(--ms);
}
voidT0_IRQ(void)interruptTF0_VECTOR //定时器0中断函数
{
TH0=sm; //将变量赋予定时器0的高位
P2_0=!P2_0; //翻转IO
}
//寄存器初始化子函数
voidmcu_init()
{
ET0=1; //开定时器0中断
EA=1; //开总中断
TMOD=0x01; //设置为16位定时器0
TH0=0xFF; //填充定时器高位
TR0=1; //开定时器0
sm=0xFF; //变量初始化
}
voidmain() //主函数
{
mcu_init(); //调用初始化函数
while(1) //主循环
{
if((!P1_0)||(!P1_1)) //检测是否有按键按下
{
delay_ms(8333); //延时去抖
if(!P1_0) //如果是P1_0按键按下
{
while(!P1_0); //等待按键放手
if(sm) //检测变量不为0
{
--sm; //自减1
P2_1=1; //取消边界LED
}
elseP2_1=0; //到达边界点亮LED
}
elseif(!P1_1) //否则如果P1_1按键按下
{
while(!P1_1); //等待按键放手
if(sm<0xFF) //检测变量小于0xFF
{
++sm; //自加1
P2_1=1;
}
elseP2_1=0;
}
}
}
}