#include <ny8.h> #include <stdint.h> #include "ny8_constant.h" #define UPDATE_REG(x) __asm__("MOVR _" #x ",F") #define uchar unsigned char #define uint unsigned int #define SegLATCH PB4 #define BitLATCH PB5 //SegLATCH 段锁存 BitLATCH 位锁存 __sbit KEY1 = PORTB:7; void GPIOInit(void) //初始化函数 {
IOSTA = 0B00000000; //设置A口为输出 PORTA = 0x00; IOSTB = 0B; PORTB = 0B; BPHCON= 0B0;//开7 上拉 其他关闭上拉 } void main(void) {
GPIOInit(); led(); while(1) {
myvar=0xfd;//位码 第一位数据 1111 1110 先送入8个位管 的位置值 到锁存芯片1,如数码管的 共阳/阴脚 也即选择拍在第几的管 led(); BitLATCH=1;//开启位锁存 BitLATCH=0;//开启后关闭 为了传一个数据后关 禁止再传导致数据错误 //有了段数 与可选开 第几个管 排列起来 就组成了 时分秒 这样的 有序数 myvar=0x80;//段码 第一位数据 0 在送入8个位的数据 到锁存芯片2 ABCDEFGH数码管的段 led(); SegLATCH=1;//开启段锁存 SegLATCH=0;//开启后关闭 为了传一个数据后关 禁止再传导致数据错误 } } //个人方法是 包含操作段 和位 以及IO口有序映射到1个变量 方便操作 ``
讯享网
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/129049.html