单片机C语言基础编程源码六则

时间:2023-03-19作者:佚名

1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三角波的周期和最大值通过入口参数能够改变。

#include #define DAC0832 XBYTE[0x7FFF] void san(unsigned char max1,unsigned char zhou1)

{ unsigned char i,j,max,zhou;max=max1;zhou=zhou1;while(1)

{ for(i=0;i0,i——)

{ DAC0832=i;for(j=0;j1,j——)

{ for(i=0;i*(ptr i 1))

{ temp=*(ptr i 1);*(ptr i 1)=*(ptr i);*(ptr i)=temp;} *ptr1=*(ptr 20/2);}

2.在数字滤波中有一种叫做“去极值平均滤波”技术,就是对采集的数据按照从大到小或者从小到大进行排序,然后去掉相同数目的极大值和极小值,对中间部分数据求算术平均值作为采样值。试编写一函数,对存放在片外数据存储器中从0x150开始的16个单元的采样数据,用选择法进行“去极值平均滤波”,把得到的采样数据存放到0x14f单元中。

void teaf()

{ unsigned char xdata *ptr;unsigned char data temp,i,j,*ptr1;ptr=0x150;ptr1=0x4f;for(j=16;j>1,j——)

{ for(i=0;i*(ptr i 1))

{ temp=*(ptr i 1);*(ptr i 1)=*(ptr i);*(ptr i)=temp;} temp=0;for(i=0;i void main()

{ unsigned char data *dpt;unsigned char i=0,temp;dpt=0x40;while(1)

{ temp=_getchar();if(temp==0x0d)

break;*(dpt i)=temp;i ;}

3.利用库函数scanf编写一函数,实现从单片机串行口接收数据的C51程序,把接收的数据存放在片外数据存储器从0x240开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

include void main()

{ unsigned char xdata *xdpt;unsigned char i=0,temp;xdpt=0x240;while(1)

{ scanf(“%c”,if(temp==0x0d)

break;*(xdpt i)=temp;i ;}

4.利用库函数putchar编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片内数据存储器从0x50开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

include void main()

{ unsigned char data *dpt;unsigned char i=0;dpt=0x50;while(*(dpt i)!=0x0d)

{ putchar(*(dpt i));i ;}

5.利用库函数printf编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片外数据存储器从0x100开始的区域,遇到回车符CR(ASCII码是0x0d)结束。

include void main()

{ unsigned char xdata *xdpt;unsigned char i=0;xdpt=0x100;while(*(xdpt i)!=0x0d)

{ printf(“%c”,*(xdpt i));i ;}

6.编写一定时器/计数器0定时100ms中断处理函数,使函数实现时钟的功能,即产生时钟的秒、分钟和小时。设定时初值的高、低字节分别为TIMER_H和TIMER_L.设fosc=6mhz #include sfr TIMER_H=0x8b;sfr TIMER_L=0x8a;unsigned char data shi,fen,miao,bfm;

void main()

{ TMOD=0x01;TIMER_H=15536/16;TIMER_L=15536;ET0=1;EA=1;TR0=1;while(1);}

void time0_int() interrupt 1 { TIMER_H=15536/16;TIMER_L=15536;bfm ;if(bfm==10)

{ bfm=0;miao ;} if(miao==60)

{ miao=0;fen ;} if(fen==60)

{ fen=0;shi ;} if(shi==24)

{ shi=0;}

相关阅读

电动机保护的三大法宝

电气自动化的时代,电动机无论在生产中还是生活中都扮演重要角色,在使用期间,对其保护措施也是必不可少的,其中,常见的热继电器和电动机保护器是常用的保护利器。 今天就举...
2023-06-27
电动机保护的三大法宝

电工新手必知,磁性材料的磁特性是什么?

磁滞回线是什么? B - H 曲线是什么?在之前学习磁的基本物理量的时候我就提到过这两个概念,当时没有以此展开讲解,其实就是在这等着大家呢。继上次大家学习了什么是磁性材料和...
2023-06-27
电工新手必知,磁性材料的磁特性是什么?

PLC的工作原理

plc 有两种基本的工作状态,即运行 (RUIN) 状态与停止 (STOP) 状态(在 S7-200 中还存在 TEAM 状态)。在运行状态, PLC 通过反映控制要求的用户程序来实现控制功能。为了使 PLC 的输出能及...
2023-03-21
PLC的工作原理

分享一个双晶体管嗡嗡声去除电路

只需组合等量的反相位嗡嗡声,就可以显着消除音频信号中的嗡嗡声。 在上面所示的嗡嗡声去除器电路中,两个晶体管都可以是廉价的低增益或高增益品种。 预设VR1可以与预设VR2一起...
2023-06-05
分享一个双晶体管嗡嗡声去除电路

20种最常见照明灯接线电路图,电工错过就可惜了

电工最常见电路 包括电力配电系统接线图,电气仪表安装接线图,照明灯控制电路图,电动机控制电路图,电视、通信电路图,家用电器电路图,设备保护电路图,安全报警电路图。...
2023-06-11
20种最常见照明灯接线电路图,电工错过就可惜了

热销商品

手术衣一次性防护服打农药防尘实验服参观服加厚透气无纺布隔离衣

手术衣一次性防护服,作为一种重要的医疗防护用品,广泛应用于医院、实验室等场所。它采用加厚透气无纺布制成,具有优良的防尘、防污、防病毒能力,能有效保护医护人员免...
14

LED柜内照明灯 AC220V 4W 7W配电箱导轨式 LL10-W 高压柜内照明灯

LED柜内照明灯AC220V 4W/7W配电箱导轨式LL10-W是一款专为高压柜、配电箱等封闭电气设备设计的紧凑型照明产品。采用高效LED光源,功耗低(4W/7W可选),亮度高,寿命长,节能...
7

密封胶条包邮耐磨耐高温耐腐蚀圆柱棒丁晴/氟胶实心硅胶胶条红色

本品采用优质丁腈橡胶(NBR)或氟橡胶(FKM)及实心硅胶材质制成,呈红色圆柱棒状,具备卓越的耐磨、耐高温(-40℃至+200℃以上,氟胶可达250℃)、耐腐蚀性能,适用于酸、碱、油类等...
1

雷士照明led筒灯孔灯客厅吊顶天花灯嵌入式过道筒灯射灯桶灯家用

雷士照明LED筒灯是一款专为现代家居设计的嵌入式照明产品,适用于客厅、吊顶、过道、卧室等空间。采用高品质LED光源,光线柔和均匀,显色指数高,有效还原真实色彩,营造舒...
5.78

小木锤木锤子实木木榔头圆头木锤实木棰木头锤子木柄锤黄檀手工锤

小木锤采用优质黄檀木精心打造,通体实木结构,质地坚硬、纹理细腻,手感温润舒适。圆头设计兼顾敲击与整形功能,适用于木工、雕刻、家具组装及日常维修等场景。木柄经精...
3.4

网站栏目