sunguest 发表于 2025-3-5 19:33:43

第六课上冲哥介绍了花式点灯和灯光闪烁
延时函数的用法,使灯 闪烁


讲了dowhile和while的区别,while是先判断后
执行,do while是先执行后判断

介绍了--a和a--的区别,--a是先运算,后输出;a--是
先输出后运算。

https://www.stcaimcu.com/forum.php?mod=image&aid=86925&size=300x300&key=6ac86118fb4e2a62&nocache=yes&type=fixnone

上面语句的
结果是10,9,9和10,10,9

sunguest 发表于 2025-3-5 19:48:08

第六课下讲了函数的使用



模块化编程,后缀带c的文件进行函数定义,
后缀带h的文件对变量类型进行定义



后缀带h的文件用来声明,
后缀带c的文件用来定义函数

sunguest 发表于 2025-3-5 22:20:46

第7课上学习了按键的输入程序
按键的消抖程序

按键判断是否按下

根据按键的按下与否点亮灯


sunguest 发表于 2025-3-5 22:20:50

第7课下学习了按键的输入程序
灯的移位及闪烁程序
数组的使用

利用数组来实现流水灯的功能

定义数组


sunguest 发表于 2025-3-6 09:08:20

第8课介绍了蜂鸣器














sunguest 发表于 2025-3-6 19:51:37

第8集作业,学习总结
增加按键,使功能键可以循环亮




在h文件里定义按键,在c文件里定义函数

sunguest 发表于 2025-3-6 20:15:22

第9课,学习总结
数码管的认识、





数字的循环显示




sunguest 发表于 2025-3-6 20:51:00

第10集,数码管的动态显示



位籹码管16进制的计算表


程序数组定义


显示所需要的数字的方法








sunguest 发表于 2025-3-7 21:34:08

今天 下午收到了,可以说是梦寐以求的实验箱,迫不急待的想试试不停电下载这个功能{:ciya:}


当然首先要感谢宏晶科技对学习的支持,的确这是个实践的,跟着冲哥一起码代码会有更深刻的认识
看到这个新的板子一下子又忘记了如何下载了,翻了会儿说明,才找到p32键(不是复位键,我在这里浪费了好久时间),按下,再按电源键,松开,再松开p32,
就检测到实验箱了。神速的下载
可惜的是,第一次下载好后,弹出驱动程序安装失败,折腾了好久,感觉只有重启一个办法了,重启后,识别成功了。
看到编译好的文件嗖嗖的下载,只有一个字,大开眼界了。
还有一种用复位键下载的方法。就是下载程序时把复位引脚做i/o口用这个选择框不选,实验箱断次电,然后按复位键,进入下载
模式。




sunguest 发表于 2025-3-8 23:51:11

研究了一下板子的接线和冲哥的课程已经有很大的差别了。。
1.2板的数码管是用2个74hc595驱动的。冲哥的程序运行不了。


可以看出,3.2,3.4,3.5脚分别是数据的sck,rck,data.

/*************IO口定义    **************/
sbit    P_HC595_SER   = P3^4;   //pin 14    SER   data input
sbit    P_HC595_RCLK= P3^5;   //pin 12    RCLk    store (latch) clock锁存器
sbit    P_HC595_SRCLK = P3^2;   //pin 11    SRCLK   Shift data clock寄存器

向74hc595发送数据的函数,可以看出是一个16位的字节,前8位是并行输出,后8位
是串行输出,通过595的和第9脚输出,所以还要一个595进行解码。本板中并行输出码
为位码,串行输出码为段码。发送时是先送段码,后发送位码,说明是段码8位是串行,位码8位后发是并行。
void Send_595(u8 dat)
{
    u8i;
    for(i=0; i<8; i++)
    {
      dat <<= 1;
      P_HC595_SER   = CY;//单片机CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,
加法运算中有进位或减法运算中有借位则CY位置1,否则为0。CY位是累加器的进位、借位标志。
对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。
      P_HC595_SRCLK = 1;
      P_HC595_SRCLK = 0;
    }
/********************** 显示扫描函数 ************************/
void DisplayScan(void)
{
    Send_595(t_display]);   //输出段码
    Send_595(~T_COM);            //输出位码

    P_HC595_RCLK = 1;
    P_HC595_RCLK = 0;
    if(++display_index >= 8)    display_index = 0;//8位结束回0
}
页: 1 [2] 3
查看完整版本: 8051U实验箱学习记录