asys
发表于 2024-6-21 18:30:13
第五集讲的是c语言的基础知识
printf函数的使用 例如 printf("%d",1);
以及进制之间的转换
常用的运算符例如加(+)减(—)乘(*)除(/)
模(余)运算符(%):不允许出现浮点型,余数正负取决于被除数正负
自增(++i,–i;i++,i–)
二、位运算符
右移(>>)左移(<<)
按位与(&)
按位或(|)
按位异或(^)
取反(~)
数据的基本类型
asys
发表于 2024-6-21 18:33:53
第六集讲的是led的闪烁
delay我一般直接用stc——isp直接生成 如图
还有的是程序的封装头文件的编写
模块化编程
asys
发表于 2024-6-21 18:39:32
本帖最后由 asys 于 2024-6-21 18:43 编辑
第七集和第八集讲的是io的操作
读写电压
这里具体是通过寄存器读取按键的电压来检测按键的动作
先是初始化io口配置时钟 再用if对按键状态进行检测
按下执行相应动作 松开执行相应动作 如图
还有用蜂鸣器做了一个按键提示音和其他事情的提示音
asys
发表于 2024-6-21 18:50:40
本帖最后由 asys 于 2024-6-22 10:32 编辑
第九集和第十集学习的是数码管
认识了数码管和内部接线图
知道了它的控制原理
直接看程序吧
图1
这里位码是选择要显示的数码管
这里的断码是要选择显示的内容
通过循环 短时间的快速选择数码管并显示内容 就可以实现动态显示
asys
发表于 2024-6-21 18:58:47
第十一集和十二集讲的是定时器的使用
首先要设定的是定时器的模式这里选用的 是16位自动重载
对tmod寄存器的最后两位写入0 0即可
因为TCON是可位寻址 也就是可以对它上面的每个位进行单独操作 TF0 = 0; //清除TF0标志可以直接这样操作
写入定时器计数寄存器这个值需要计算可以直接用stcisp生成
那么最后一步开计时开中断
EA=1 ;//这里是开总中断
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
建议还是stcisp生成
asys
发表于 2024-6-22 10:05:21
第十三集是简易多任务
根据按键按下的时间长短来执行不同任务
具体原理是按键按下时开始计时 按键松开时计时结束
读出记录的时间 去选择要执行的任务
一般我会在按下时进中断检测按键是否按下
按下时进中断 打开定时器
松开时进中断关闭定时器
再读出对应数值来选择对应任务
asys
发表于 2024-6-22 10:28:21
第十五集是51的exti
那么第一步就要使能 io口中断如图1 PxINTE中断使能寄存器
看图2呢就要把对应的中断线打通就行
对应寄存器PxINTF中断标志寄存器 这里是中断请求的发出
EA为中断 总开关
图2 的最后的那一部分是拨对应开关来设置中断的优先级
到这里整个中断线就打通了