什么是双开| 捭阖是什么意思| 阶段性是什么意思| 命里缺水取什么名字好| 头皮屑多用什么洗发水效果好| 代糖是什么| 浮现是什么意思| 红枸杞有什么功效| 安乐死是什么| hape是什么牌子| 芈月和秦始皇是什么关系| 换手率高说明什么| 兰精莫代尔是什么面料| 嘴唇干是什么原因引起的| 女人吃知了有什么好处| 10月4号是什么星座| 二月份出生的是什么星座| 五险都有什么| 肌电图是检查什么的| 包皮开裂是什么原因| 牛奶能做什么美食| 孕期脸上长痘痘是什么原因| 义字少一点念什么| 补体c4偏低是什么意思| 温州什么最出名| 心悸心慌焦虑吃什么药能缓解| prince是什么牌子| 痛风吃什么中药| 猪蹄子炖什么好吃| 澳大利亚属于什么洲| 痛风吃什么食物好得快| 什么是生物制剂| 茶艺师是做什么的| 龟皮痒用什么药膏| 脑梗吃什么药可以恢复的快| 长命百岁的动物是什么| 为什么会晨勃| 猕猴桃对身体有什么好处| 什么叫钝痛| 立秋当天吃什么| 携字去掉提手旁读什么| 无畏无惧是什么意思| 电解质什么意思| 口干舌燥是什么原因引起的| 钮祜禄氏现在姓什么| 铁树开花是什么意思| 哥谭市是什么意思| 伊玛目是什么意思| 肌酐高什么原因| 男生13厘米属于什么水平| 梦见明星是什么预兆| 欣赏一个人是什么意思| 头发发黄是什么原因| 干咳 吃什么药| 灵芝孢子粉有什么用| 拉雪橇的狗是什么狗| 中老年人吃什么钙片好| 万象更新是什么生肖| 梦见黑棺材是什么征兆| 白细胞介素是什么| 金骏眉属于什么茶| 梦到离婚是什么征兆| 梦见自己丢钱了什么征兆| 内火旺是什么原因| 什么是毒龙| 广东属于什么气候| 小腹一直疼是什么原因| 定坤丹适合什么人吃| 阳气不足吃什么中成药| 什么是树莓| 肾结水有什么危害| 沉脉是什么意思| 碳酸氢根偏低什么意思| 孕20周做什么检查| 美乃滋是什么| 血糖高的人早餐吃什么好| 到此为止是什么意思| 头臂长是什么意思| 至死不渝下一句是什么| 宫内早孕什么意思| 感叹号像什么| 拉水便吃什么药| 西西里的美丽传说讲的什么| 打火机里面的液体是什么| 睡觉起来头晕什么原因| 梦见吃雪糕是什么意思| 多酚是什么| 碧根果和核桃有什么区别| 脱发吃什么维生素| 人参长什么样| 激素六项都是查什么| 糖尿病2型是什么意思| 定坤丹什么时候吃最好| 什么原因引起血糖高| 蜂蜜不能和什么一起吃| 舞象之年是什么意思| 半月板变性是什么意思| 西梅不能和什么一起吃| 四大菩萨分别保佑什么| 睡美人最怕什么脑筋急转弯| 两个人在一起的意义是什么| 情花是什么花| 羊冲什么生肖| 为什么会长荨麻疹| 黑手是什么意思| 梦到蛇预示着什么意思| 女汉子什么意思| 妥了是什么意思| 皮皮虾吃什么| 不排卵是什么原因| 麦冬和什么相克| 吃鹰嘴豆有什么好处| 428是什么意思| 梦见大蟒蛇是什么预兆| abo是什么| 黄大仙是保佑什么的| Iud是什么| 唐氏儿是什么意思| 膝超伸是什么| 长期喝咖啡有什么危害| 死后是什么感觉| mc是什么| 宝宝多吃什么蔬菜好| 经常勃起是什么原因| 基础医学是什么| 1月17日是什么星座| 女性潮热是什么症状| 高锰酸钾是什么东西| 小猫呕吐吃什么药| 腹泻吃什么食物好| 农历7月是什么月| 盆腔炎吃什么消炎药| 牛油是什么油| 酒干倘卖无是什么意思| 颈动脉有斑块吃什么药| 喉咙痛流鼻涕吃什么药| 吃什么水果通便| 连襟是什么意思| 高血压1级是什么意思| 罄竹难书的罄什么意思| 天相是什么意思| 手臂有痣代表什么| 漫展是干什么的| 7月28是什么星座| 益气养阴是什么意思| 脑梗吃什么食物| 宫颈炎是什么原因引起的| 打呼噜挂什么科室| 建议MRI检查是什么意思| 做绝育手术对女人有什么影响| 行善积德是什么生肖| 少阳证是什么意思| 做梦坐飞机是什么意思| 维生素b5又叫什么| 频繁流鼻血是什么原因| 芈姝结局是什么| 虎的贵人是什么生肖| 7月15什么星座| 诸葛亮字什么| 身体机能是什么意思| 卡姿兰属于什么档次| 上火喝什么茶效果最好| 5月12号是什么日子| 盐酸哌替啶是什么药| 尿出红色的尿是什么原因| 9.22是什么星座| 止鼾什么方法最有效| 元辰是什么意思| 小孩子发烧抽搐是什么原因| 过什么不什么| 拉风是什么意思| 口真念什么| 苹果不能和什么一起吃| 奄奄一息的息是什么意思| 高血糖吃什么比较好| 身上长水泡是什么原因| 小腿发凉是什么原因造成的| 西葫芦是什么| 梦见铲雪预示着什么| 血糖高吃什么水果最好| 风风火火是什么生肖| 做病理意味着什么| 身高用什么单位| macd是什么意思| sds是什么| 晚上吃什么不胖| 什么是穿堂风| 一会硬一会软什么情况| 15度穿什么衣服合适| 来姨妈不能吃什么水果| 尿检是检查什么的| 12月9日什么星座| 甲状腺球蛋白抗体高是什么原因| 阿拉伯人属于什么人种| 东莞有什么好玩的| 狗狗尾巴溃烂用什么药| 脑淤血是什么原因引起的| 干咳是什么病的前兆| 气管痉挛是什么症状| 慢性咽炎吃什么| 阿胶配什么吃不上火| 日加一笔变成什么字| 煊字五行属什么| 9月24日什么星座| 梅毒是什么样的| 眼皮有痣代表什么| 解表是什么意思| 为什么会长痱子| 流浓黄鼻涕是什么原因| 小本创业做什么生意好| 区长是什么级别| 猕猴桃是什么季节的水果| 75年的兔是什么命| 鱼饼是什么做的| 手筋鼓起来是什么原因| 失眠用什么药好| 李子有什么功效| 户口本可以干什么坏事| 曼妥思是什么糖| 养肝吃什么好| 颈椎轻度退行性变是什么意思| rr是什么意思| 一个金字旁一个川读什么| 玉字是什么结构| 5月11日是什么星座| 金骏眉茶是什么茶| 喉咙干痒吃什么药| 女m是什么意思| 血小板低是什么原因引起的| 继发性高血压什么意思| 吃完头孢不能吃什么| 胆囊炎是什么| 什么叫戈壁滩| 卷柏是什么植物| 早上9点到10点是什么时辰| 老年人脚浮肿是什么原因| 看见蝙蝠有什么预兆| 在屋顶唱着你的歌是什么歌| 什么鬼大家都喜欢| 金牛座女和什么星座最配| 赵匡胤为什么不传位给儿子| 翅膀车标是什么车| 腹痛腹泻吃什么药| 萎缩性胃炎是什么意思| 灰指甲有什么危害| 驾驶证照片是什么底色| 干燥综合症是什么病| 张国荣什么时候去世的| 信任是什么意思| 为什么会脑供血不足| 白带长什么样| 跖疣是什么原因引起的| 尿路感染吃什么药消炎| rh血型鉴定阳性是什么意思| 类风湿关节炎不能吃什么食物| 建议MRI检查是什么意思| 小腿红肿是什么原因引起的| 炎症吃什么药| 左肾钙化灶什么意思| 吃燕窝有什么功效| 什么东西驱蛇效果最好| 吃什么水果减肥最快减肚子| 孕妇应该多吃什么水果| 什么网站可以看黄色视频| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 企业专区 ? TI ? 【TIMSPM0MCU焕新大作战】+课程2任务1+数码管递减显示数字

共9条 1/1 1 跳转至

【TIMSPM0MCU焕新大作战】+课程2任务1+数码管递减显示数字

高工
2025-08-04 00:20:32     打赏
百度 当天晚上他看到后边跟着警车,一着急就加速了,结果被怀疑成当时东莞正在大力整治的飞车党。

这节任务是用定时器中断实现数码管数值的递减。

数码管.jpg


借用网上的原理图,模块是共阳极,74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7'输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。8位数码管模块一共五个接口,还是使用PA26、PA13、PA27接口,具体接线如下所示。

3V3  --VCC

PA26--SCLK

PA13--RCLK

PA27--DIO

GND--GND

按照连接图连接开发板和数码管模块

led连接.jpg

然后通过syscfg工具配置定时器。

time1.JPGranhou

然后再配置GPIO口,和点灯类似,不再重复。

主代码如下:


  1. #include "ti_msp_dl_config.h"  

  2. #include <math.h>  

  3. #define NUM_MAXLENGTH 8  

  4. #define delay_us 32  

  5. typedef struct{  

  6.     uint32_t Num_start;  

  7.     uint8_t  Num_polarity;  

  8.     uint8_t  polarity_flag;  

  9.     uint8_t  func_mode;

  10.     uint8_t  stopwatch_status;

  11. }LED_Segment_Mode;  

  12. LED_Segment_Mode LS_Mode;  

  13. uint8_t Num_List[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf};  

  14. int32_t Num_Decrease=1;  

  15.   

  16. void HC595_CLKRisingEdge_Config(GPIO_Regs* PORTx,uint32_t PINx,uint32_t t1,uint32_t t2){  

  17.         DL_GPIO_clearPins(PORTx, PINx);  

  18.         delay_cycles(delay_us*t1);  

  19.         DL_GPIO_setPins(PORTx, PINx);  

  20.         delay_cycles(delay_us*t2);  

  21. }  

  22. void LED_Segment_WriteByte(uint8_t byte){  

  23.     for(uint8_t i=1;i<=8;i++){  

  24.         if(byte&0x80){  

  25.             DL_GPIO_setPins(PORT_HC595_PORT,PORT_HC595_PIN_HC595_DIO_PIN);  

  26.         }  

  27.         else  

  28.         {  

  29.             DL_GPIO_clearPins(PORT_HC595_PORT,PORT_HC595_PIN_HC595_DIO_PIN);  

  30.         }  

  31.         HC595_CLKRisingEdge_Config(PORT_HC595_PORT,PORT_HC595_PIN_HC595_SCLK_PIN,2,2);  

  32.         byte<<=1;  

  33.     }  

  34.   

  35. }  


  36. void LED_Segment_Display_Num_One(uint8_t Num_one,uint8_t index){  

  37. //    switch(Num_one){  

  38. //    case 0:  

  39. //        break;  

  40. //    }  

  41.     LED_Segment_WriteByte(Num_List[Num_one]);  

  42.     LED_Segment_WriteByte(1<<index);  

  43.     HC595_CLKRisingEdge_Config(PORT_HC595_PORT,PORT_HC595_PIN_HC595_RCLK_PIN,2,2);  

  44. }  


  45. void LED_Segment_Display_point(uint8_t Num_one,uint8_t index){  

  46. //    switch(Num_one){  

  47. //    case 0:  

  48. //        break;  

  49. //    }  

  50.     LED_Segment_WriteByte(Num_one);  

  51.     LED_Segment_WriteByte(1<<index);  

  52.     HC595_CLKRisingEdge_Config(PORT_HC595_PORT,PORT_HC595_PIN_HC595_RCLK_PIN,2,2);  

  53. }  


  54. void Num_LED_Segment_Process(uint32_t Num){  

  55.     uint8_t num_lsb=0;  

  56.     uint8_t i;  

  57.     for(i=0;i<NUM_MAXLENGTH;i++)  

  58.     {  

  59.         num_lsb=Num%10;  

  60.         Num/=10;  

  61.         LED_Segment_Display_Num_One(num_lsb,i);  

  62.         if(Num==0)break;  

  63.     }  

  64.   

  65.     if(LS_Mode.Num_polarity==0){  

  66.         LED_Segment_WriteByte(0xbf);  

  67.         LED_Segment_WriteByte(0x01<<(i+1));  

  68.         HC595_CLKRisingEdge_Config(PORT_HC595_PORT,PORT_HC595_PIN_HC595_RCLK_PIN,2,2);  

  69.     }  

  70. }  

  71.   

  72.   

  73. int main(void)  

  74. {  

  75.     SYSCFG_DL_init();  

  76.     NVIC_SetPriority(TIMER_0_INST_INT_IRQN, 2);  

  77.     NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);  

  78.     DL_TimerG_startCounter(TIMER_0_INST);  

  79. //  

  80.     NVIC_SetPriority(TIMER_1_INST_INT_IRQN, 1);  

  81.     NVIC_EnableIRQ(TIMER_1_INST_INT_IRQN);  

  82.     DL_TimerG_startCounter(TIMER_1_INST);  

  83.   

  84.     NVIC_SetPriority(GPIO_MULTIPLE_GPIOA_INT_IRQN, 0);  

  85.     NVIC_EnableIRQ(GPIO_MULTIPLE_GPIOA_INT_IRQN);  

  86.   

  87.     LS_Mode.Num_start=10;  

  88.     LS_Mode.polarity_flag=1;  

  89.     LS_Mode.Num_polarity=1;//默认显示正数  

  90.     LS_Mode.func_mode=0;  

  91.     LS_Mode.stopwatch_status=0;  

  92.     while (1) {  

  93.         delay_cycles(10);  

  94. //        LED_Segment_Display_Num_One(0x7f,0x01<<5);  

  95. //        LED_Segment_Display_point(0x7f,5);  

  96. //        Num_LED_Segment_Process_Float(0.356,2);  

  97.     }  

  98. }  

  99. void TIMER_0_INST_IRQHandler(void)  

  100. {  

  101.     switch (DL_TimerG_getPendingInterrupt(TIMER_0_INST))  

  102.     {  

  103.         case DL_TIMER_IIDX_ZERO:  

  104.             Num_LED_Segment_Process(Num_Decrease);  

  105.             break;  

  106.         default:  

  107.             break;  

  108.     }  

  109. }  

  110. void TIMER_1_INST_IRQHandler(void)  

  111. {  

  112.     switch (DL_TimerG_getPendingInterrupt(TIMER_1_INST)) {  

  113.         case DL_TIMER_IIDX_ZERO:  

  114. //            DL_GPIO_togglePins(GPIO_LEDS_PORT,GPIO_LEDS_USER_LED_1_PIN | GPIO_LEDS_USER_TEST_PIN);  

  115.             if(LS_Mode.func_mode==0){  

  116.                 if(LS_Mode.polarity_flag==1){  

  117.                     Num_Decrease--;  

  118.                     if(Num_Decrease<0)  

  119.                     Num_Decrease=LS_Mode.Num_start;  

  120.                 }  

  121.     //            else  

  122.     //            {  

  123.     //  

  124.     //                if(LS_Mode.Num_polarity==1){  

  125.     //                    Num_Decrease--;  

  126.     //                    if(Num_Decrease<0)  

  127.     //                        LS_Mode.Num_polarity=0;  

  128.     //                }  

  129.     //                else{  

  130.     //                    Num_Decrease++;  

  131.     //                    if(Num_Decrease==LS_Mode.Num_start)  

  132.     //                        LS_Mode.Num_polarity=1;  

  133.     //                }  

  134.     //            }  

  135.             }  

  136.             else  

  137.             {  

  138.                 if(LS_Mode.stopwatch_status==0)  

  139.                     Num_Decrease=0;  

  140.                 else if(LS_Mode.stopwatch_status==1)  

  141.                     Num_Decrease++;  

  142.                 else  

  143.                 {  

  144.                 }  

  145.             }  

  146.             break;  

  147.         default:  

  148.             break;  

  149.     }  

  150. }  

  151. void GROUP1_IRQHandler(void)  

  152. {  

  153.     switch (DL_GPIO_getPendingInterrupt(PORT_Key2_PORT)) {  

  154.         case PORT_Key2_PIN_Key2_IIDX:  

  155.   

  156.             switch(LS_Mode.stopwatch_status){  

  157.   

  158.             case 0:  

  159.                 LS_Mode.stopwatch_status++;  

  160.                 break;  

  161.             case 1:  

  162.                 LS_Mode.stopwatch_status++;  

  163.                 break;  

  164.             case 2:  

  165.                 LS_Mode.stopwatch_status=0;  

  166.                 break;  

  167.             default:  

  168.                 LS_Mode.stopwatch_status=0;  

  169.             break;  

  170.             }  

  171.          break;  

  172.          case PORT_Key1_PIN_Key1_IIDX:  

  173.              DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);  

  174.              if(LS_Mode.func_mode==0)  

  175.              {  

  176.                  Num_Decrease=0;  

  177.                  LS_Mode.stopwatch_status=0;  

  178.                  LS_Mode.func_mode++;  

  179.   

  180.              }  

  181.              else if(LS_Mode.func_mode==1)  

  182.              {  

  183.                  LS_Mode.func_mode--;  

  184.                  Num_Decrease=LS_Mode.Num_start;  

  185.              }  

  186.              else  

  187.              {  

  188.                  LS_Mode.func_mode=0;  

  189.                  Num_Decrease=LS_Mode.Num_start;  

  190.              }  

  191.          break;  

  192.          default:  

  193. //             DL_GPIO_togglePins(GPIO_LEDS_PORT, GPIO_LEDS_USER_LED_1_PIN);  

  194.              break;  

  195.     }  

  196. }  

编译下载运行,结果如下:

8.JPG4.JPG2.JPG






专家
2025-08-04 08:09:01     打赏
2楼

不错啊,感谢分享


高工
2025-08-04 11:26:16     打赏
3楼

不错啊,感谢分享


专家
2025-08-04 20:49:30     打赏
4楼

谢谢分享


专家
2025-08-04 20:51:47     打赏
5楼

谢谢分享


专家
2025-08-04 20:56:20     打赏
6楼

谢谢分享


工程师
2025-08-04 09:43:56     打赏
7楼

感谢分享


助工
2025-08-04 17:51:58     打赏
8楼

谢谢楼主分享。


助工
2025-08-04 16:29:42     打赏
9楼

谢谢分享


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
葡萄籽有什么功效 大秀是什么意思 香茅是什么 包皮发炎用什么药 脾胃虚弱吃什么好
蝙蝠是什么类 刺身是什么意思 1月30号是什么星座 黄花菜什么人不能吃 做梦梦到蛆是什么意思
cfu是什么单位 乳糖不耐受吃什么药 嘴子是什么意思 肾病到什么程度腿会肿 吃什么降尿酸最快
NT是检查什么的 neu是什么意思 平躺头晕是什么原因 腚什么意思 1.8是什么星座
什么叫高脂血症hcv7jop5ns0r.cn 是故是什么意思hcv9jop5ns8r.cn 儿童经常流鼻血什么原因造成的hcv9jop3ns4r.cn 什么是丹凤眼bfb118.com 拜阿司匹灵是什么药hcv9jop2ns4r.cn
降钙素是查什么的hcv9jop4ns6r.cn 水泡长什么样子图片hcv8jop4ns3r.cn 周武王叫什么名字beikeqingting.com 做梦拉屎是什么意思hcv8jop4ns8r.cn 地蛋是什么hcv9jop2ns3r.cn
梦见妖魔鬼怪是什么意思hcv9jop0ns2r.cn 读什么hcv8jop6ns0r.cn 直落是什么意思jinxinzhichuang.com 25是什么意思hcv9jop2ns0r.cn 伤官配印是什么意思hcv9jop1ns3r.cn
地级市副市长是什么级别hcv9jop1ns1r.cn 清炖排骨放什么调料hcv8jop5ns2r.cn 趴在桌子上睡觉有什么坏处hcv9jop7ns0r.cn 半永久是什么意思beikeqingting.com 小叶增生和乳腺增生有什么区别hcv9jop4ns9r.cn
百度