推荐阅读最新更新时间:2024-03-16 15:21
用C51语言编写1+2+3 +‥‥‥+99+100的求和运算程序
#include reg51.h typedef unsigned int uint; typedef unsigned char uchar; uchar smgcode ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff};//共阳数码管 uchar smgbit ={0xfe,0xfd,0xfb,0xf7}; uchar value ={0,0,0,0}; void delay(uint x)//延时函数 { uchar i; while(x--)for(i=0;i 120;i++); } void main(void) {
[单片机]
STM32IO口8位操作移位的方式
当我们采用并口传输数据的时候都会用如下的方法进行数据传输 #define DATAOUT(x) GPIOB- ODR=x; STM32IO口都是16位的,所以当调用DATAOUT的时候就直接对GPIOB的16个IO口总体进行操作。但是我们如果只是选择高8位或者低8位的时候就需要进行移位操作,到底该怎么移位呢现在我们来看如下代码。 如果我们选择的是0-7位IO口那么传输数据的时候代码如下 void LCD_DrawPoint_16Bit(u16 color) { #if LCD_USE8BIT_MODEL==1 LCD_CS_CLR; LCD_RD_SET; LCD_RS_SET;//дµØÖ· DATAOUT(color 8
[单片机]
C51在程序设计中的内存分配问题
C中内存分为四个区 栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。 堆:用来存放由动态分配函数(如mal LOC )分配的空间。是由程序员自己手动分配的,并且必须由程序员使用free释放。如果忘记用free释放,会导致所分配的空间一直占着不放,导致内存泄露。 全局区:用来存放全局变量和静态变量。存在于程序的整个运行期间,是由编译器分配和释放的。 文字常量区:例如char *c = “123456”;则”123456”为文字常量,存放于文字常量区。也由编译器控制分配和释放。 程序代码区:用来存放程序的 二进制 代码。 例子(一) int a = 0; //全局区 void main()
[单片机]
STM32 IO口双向问题
如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain, 同时在引脚上连接一个上拉电阻,可将它用作(准)双向输入输出口。 输出时: GPIOx- ODR =输出值; 输入时: 读时先输出高电平(否则有可能因先前低电平输出锁死IO口为低电平),然后读. GPIOx- ODR = 0xFFFF; 变量 = GPIOx- IDR;
[单片机]
基于单片机的多功能数字钟系统设计与分析
0 引言 随着科技的发展,电子技术也在不断地向前飞速发展。本设计是制作一款多功能数字钟,其具有显示年、月、日,时、分、秒、星期及闹钟功能,而且秒、分、时、日、月、年可自动关联进位。秒具备清零功能,分、时、日、月、年可自动修改、手动设置等功能。它是以一块AT89S52芯片作为主控模块,采用DS1302作为定时来源的多功能数字钟。多功能数字钟结构较简单,因此便于操作使用。它具有高度的智能化和集成化,是现代人办公、生活、学习的好帮手,具有广阔的市场前景。同时,它具有闹铃和播放音乐等功能,由于这些完善的功能,它必将越来越受到社会各界人士的欢迎。 1 系统方案的论证与选择 1.1 各模块方案的论证与选择 1.1.1 主控模块的论证与选
[单片机]
51单片机读写AT29C040的C51程序
给大家介绍一个51单片机读写AT29C040的c51程序 #include 《reg51.h》 #include 《intrins.h》 unsigned char time; void int_t0(void) interrupt 1 { time++; } unsigned char d; //rec data bit rec(void) { TH0=0;time=0; while (!RI) {if (time》1) return(1);} RI=0; d=SBUF; return(0); } void sen(unsigned char dd) { SBUF=dd; while (!TI) {} TI=0; } voi
[单片机]
单片机小白学步(22) IO口:蜂鸣器的使用/三极管的工作原理
====================================== 这一篇继续上一篇的内容,我们来做实验四:按键控制有源蜂鸣器,按下按键蜂鸣器响,释放按键不响。 蜂鸣器 实验四之前简单介绍下蜂鸣器。蜂鸣器有两种,无源蜂鸣器和有源蜂鸣器,一般用于发出报警的声音。声音是由震动产生的,大家都见过喇叭,喇叭里面有磁铁和线圈。给线圈通上不断变化的电压,在磁铁产生的磁场中就会运动。于是和线圈固定在一起的振膜就会震动,于是就能听见声音了,而无源蜂鸣器和喇叭效果基本一样。和无源蜂鸣器不同的是,有源蜂鸣器内部就有发声电路,通上电压合适的直流电就会发出叫声。另外,有源蜂鸣器有正负极之分。图中是常用的一种工作电压为5V的有源蜂鸣器,正面标有
[单片机]
51单片机普通IO口模拟串行口之查询方式
论坛新老朋友们。祝大家新年快乐。在新的一年开始的时候,给大家一点小小的玩意。工程师经常碰到需要多个串口通信的时候,而低端单片机大多只有一个串行口,甚至没有串口。这时候无论是选择高端芯片,还是更改系统设计都是比较麻烦的事。我把以前搞的用普通I/O口模拟串行口通讯的程序拿出来,供大家参考,希望各位兄弟轻点拍砖。基本原理:我们模拟的是串行口方式1.就是最普通的方式。一个起始位、8个数据位、一个停止位。模拟串行口最关键的就是要计算出每个位的时间。以波特率9600为例,每秒发9600个位,每个位就是1/9600秒,约104个微秒。我们需要做一个精确的延时,延时时间+对IO口置位的时间=104微秒。起始位是低状态,再延时一个位的时间。停止位是
[单片机]