[求一个基于51单片机的C语言程序要求从串口接收一组数据然后将]串口收发数据,并通过P1口控制8个led显示数据 #include"reg52.h" unsigned char flag,temp; void Init() { SM0=0; SM1=1; REN=1; PCON=0x00; TMOD=0x20; TH1=0xfd; TL1=0xfd; T...+阅读
显示频率,幅度可调,可产生四种波形,正弦波,方波,锯齿波,三角波,希望你能喜欢,给你发了一张效果图,喜欢的话别忘了采纳我的回答啊#include#define uchar unsigned char#define uint unsigned int#define DAdata P0 //DA数据端口sbit DA_S1= P2^0; // 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存sbit DA_S2= P2^1; // 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存sbit key= P3^2;uchar wavecount; //'抽点'计数uchar THtemp,TLtemp;//传递频率的中间变量uchar judge=1; //在方波输出函数中用于简单判别作用uchar waveform; //当其为0、
1、2时,分别代表三种波uchar code freq_unit[3]=; //三种波的频率单位uchar idata wavefreq[3]=; //给每种波定义一个数组单元,用于存放单位频率的个数uchar code lcd_hang1[]=;uchar idata lcd_hang2[16]=;uchar code waveTH[]={ 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe};uchar code waveTL[]={ 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, //正弦波频率调整中间值 0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde, //三角波频率调整中间值 0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c}; /*************************************************************************************************/uchar code triangle_tab[]={ //每隔数字8,采取一次 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78, 0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff, 0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80, 0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00};uchar code sine_tab[256]={ //输出电压从0到最大值(正弦波1/4部分) 0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc, 0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec, 0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, //输出电压从最大值到0(正弦波1/4部分) 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef, 0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2, 0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80, //输出电压从0到最小值(正弦波1/4部分) 0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43, 0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13, 0x11,0x10,0x0e,0x0d,0x0b,0x0a,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;x>0;x--) for(y=110;y>0;y--);}void triangle_out() //三角波输出{ DAdata=triangle_tab[wavecount++]; if(wavecount>64) 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 P1sbit rs=P2^2;sbit rw=P2^3;sbit lcden=P2^4;void write_com(uchar com){ rs=0; //置零,表示写指令 lcden=0; lcd_ports=com; delay
(5); lcden=1; delay
(5); lcden=0; }void write_date(uchar date){ rs=1; //置1,表示写数据(在指令所指的地方写数据) lcden=0; lcd_ports=date; delay
(5); lcden=1; delay
(5); lcden=0; }void disp_lcd(uchar addr,uchar *temp1){ uchar num; write_com(addr); delay
(1); //延时一会儿??? for(num=0;num
以下为关联文档:
求单片机串口C语言程序要求可以发送一个数据到PC机可以接受不知道你是不是用的51单片机,给你一个程序参考一下吧。/**************************************函数功能: 在#MCU2的数码管上显示收到的学号后3位 若与自己的相符合,则发送Rig...
哪位大神有单片机的C语言程序展开全部 不同的上位机,通信协议是不一样的,就像组态王就有组态王和单片机的协议,LabVIEW有专门的VISA控件,这只是简单的发送,只能用串口助手看,你要是真的写入上位机还得按照人家...
如何使易语言程序窗口自动隐藏仿QQ.版本 2 .程序集 窗口程序集1 .子程序 _按钮1_被单击 _启动窗口.可视 = 假 _启动窗口.置托盘图标 (#托盘图标, “置托盘图标例程”) .子程序 __启动窗口_托盘事件 .参数 操作类...
怎样使用VC软件编译并运行C语言程序大致步骤如下: 1、打开软件,界面为 2、点击File-New,点击后出来对话框 3、选择Files-C++ Source File ,然后在右边的File栏填对应C语言的名称,如test.c,然后选择location可以选...
c语言程序解释这是一个51单片机程序. #include<reg51.h> #include<intrins.h> #define uchar unsigned char #define unit unsigned int uchar Count; sbit Dot=P0^7; uchar code DSY_COD...
谁能帮我注释下这个c语言程序已基本搞定。如下: #define PI 3.1415926 #define step 3 #define R 10 #include#include#include/* tc/tc++绘图功能函数必需的头文件 */ #include#includemain() /* 运动的...
编C语言程序用自定义函数实现字符串处理函数strcat strcpy/*** *char *strcat(dst, src) - concatenate (append) one string to another * *Purpose: * Concatenates src onto the end of dest. Assumes enough * space in dest. *...
用C语言程序通过自定义函数实现字符串处理函数strcat strcpy0.0+【我自己做的 【strlen { char ch1[10]="abc"; int i; for(i=0;ch1[i]!='\0';i++);//循环到不是\0为假(结尾) printf("len=%d",i);//循环次数就是字符串的长度 getch(); } 【str...
用ADC0832将电压转换成数值在液晶上显示的c语言程序急用于红#ifndef __AD0832_H__#define __AD0832_H__#define uchar unsigned char#define uint unsigned int sbit CS=P1^0; sbit CLK=P1^1; sbit DI=P1^2; sbit DO=P1^2;//uchar res...