内分泌失调吃什么食物好| 火乐念什么| 篱笆是什么东西| 拔罐颜色紫黑代表什么| 左边小腹痛什么原因女| 脸上发痒是什么原因| 什么样的女人性欲强| 惊艳了时光温柔了岁月什么意思| 人为什么会得抑郁症| wpw综合症是什么意思| 夜盲症是什么意思| 陈字五行属什么| 97年什么生肖| 孕妇脚抽筋是什么原因| 廿是什么意思| 茶氨酸是什么| 什么是经络| 妲己属什么生肖| circle什么意思| 衣服为什么会发霉| 乱点鸳鸯谱什么意思| 甲钴胺片主要治什么病| philips是什么品牌| 洛阳有什么山| 天壤之别是什么意思| 来大姨妈能喝什么饮料| 两特两重指的是什么| 男人硬不起来该吃什么药| 26岁属什么生肖| 阴道炎症是什么症状| 尿毒症能吃什么水果| 司马迁属什么生肖| 舟字五行属什么| 什么绿| 孩子鼻子出血什么原因造成的| 高血压不能吃什么| 什么是乳糖不耐受| 熊猫属于什么科| 严重失眠有什么方法| 拔牙后吃什么食物最好| 梦到洗衣服是什么意思| 汉防己甲素片治什么病| 螳螂吃什么| 缓解紧张吃什么药| 什么症状需要做膀胱镜| 肌层回声均匀是什么意思| 什么叫矫正视力| 脑子里嗡嗡响是什么原因| 沙发客是什么意思| 左胸疼什么原因| 双肺纹理增多增粗是什么意思| 1020是什么星座| 界代表什么生肖| 头发硬适合什么发型| 压箱底是什么意思| 戊肝抗体igg阳性是什么意思| 好汉不吃眼前亏是什么意思| 但爱鲈鱼美的但是什么意思| 什么是黄体| 人参是什么参| o型血的人是什么性格| 1600年是什么朝代| 手足口挂什么科| 多吃木瓜有什么好处| 包皮过长是什么样的| 什么吃辣椒抓耳挠腮| 梦见枕头是什么意思| 刺五加配什么药治失眠| 眼睛干涩用什么眼药水好| 口子念什么| 犹太是什么意思| 最高法院院长什么级别| 护资成绩什么时候出| 莲雾什么味道| 身上肉疼是什么原因| 法学是干什么的| 红线是什么意思| xl什么意思| 尿里有结晶是什么原因| 病危通知书意味着什么| 过敏涂什么药膏| 小孩血压高是什么原因| 什么叫风湿| 贪吃的动物是什么生肖| 什么人不能喝豆浆| 减肥期间可以吃什么| 疝气是什么症状| 钢琴10级是什么水平| 脾虚湿盛吃什么药| 肺部纤维灶是什么意思| 农历三月三是什么日子| 梦见吃西红柿是什么意思| 什么的青年| 总胆红素偏高有什么危害| dna是什么| 衣字旁有什么字| 类风湿要吃什么药| 乐属于五行属什么| 手指甲出现双层是什么原因| 起伏跌宕什么意思| 尿白细胞定量高是什么意思| hpv阳性是什么意思| 一 什么云| 爻辞是什么意思| 授课是什么意思| 共产主义社会是什么样的社会| ca199是什么意思| 输血前常规检查是什么| 剃光头有什么好处| 感冒了吃什么好的快| 忘忧草是什么意思| 检查尿酸挂什么科| 绿松石有什么功效| 胰岛素高是什么意思| 什么叫精神分裂症| 党工委书记是什么级别| 异曲同工是什么意思| 鸡肉和什么菜搭配最好| 鸡吃什么| 单纯性肥胖是什么意思| 鱼加它是什么字| 绣球花什么时候修剪| 喉炎吃什么药好得快| 咳嗽痰多吃什么药| 属龙的守护神是什么菩萨| 槟榔为什么上瘾| 什么是甲状腺结节病| 骨折有什么忌口| 女性得了性病有什么症状| 81年属鸡的是什么命| 无心是什么意思| gpd是什么意思| 不想吃饭没胃口是什么原因| 男孩学什么技术最好| 为什么会长水痘| 60大寿送什么礼物| 心脏上有个小洞是什么病| 琉璃和玻璃有什么区别| 酒不能和什么一起吃| 灰指甲医院挂什么科| 白化病是什么能活多久| sph是什么意思| 右枕前位是什么意思| 阎王叫什么名字| 双侧瞳孔缩小见于什么| 吃什么补气血效果最好| 6月适合种什么菜| 肺炎为什么要7到10天才能好| 肝左叶囊性灶什么意思| 消化不好吃什么药最好| 七月十四号是什么星座| 梦见长牙齿预示着什么| ira是什么品牌| 生殖器疱疹是什么| 早上喝牛奶有什么好处| 骨折用什么药恢复快| 什么食物对肝有好处| 什么样的眼睛| 睡觉总是流口水是什么原因| ft是什么| 陕西的特产有什么| 猫咪踩奶是什么意思| 百岁老人叫什么| 幽门螺旋杆菌是什么意思| 什么姿势舒服| 小甲鱼吃什么| 为什么水能灭火| 洋葱炒什么| 阴虚火旺是什么症状| 中国人在印度属于什么种姓| 铜绿假单胞菌用什么抗生素| 晕菜是什么意思| 木指什么生肖| 老人肚子胀是什么原因| 乌龟不吃食是什么原因| 眼睛红是什么原因| 心脏疼是什么原因| hpv通过什么传播| 天蝎座和什么座最配| 做了胃镜多久可以吃东西吃些什么| 什么防晒霜防晒效果好| 什么什么生机| 肚子着凉吃什么药| 喝红牛有什么好处和坏处| 什么人不适合做纹绣师| 风寒感冒吃什么中成药| 棺材中禁止放什么东西| 清真不吃什么肉| 小孩心肌炎有什么症状| 同心同德是什么意思| 虫毛读什么| 冰清玉洁是什么意思| kipling是什么牌子| 爱迪生发明什么| 泡脚时间长了有什么坏处| 夏天要注意什么| 抹茶色是什么颜色| 移植后需要注意什么| 越睡越困是什么原因| 柠檬水苦是什么原因| 眼压高是什么症状| 乳糖不耐受吃什么奶粉好| 梦见自己升职了是什么预兆| 牛郎叫什么名字| 出类拔萃是什么意思| 鼻孔里面痒是什么原因| 女人严重口臭挂什么科| 走胎是什么意思| 幽门螺杆菌怕什么食物| 芒种是什么时候| 甲状腺是什么症状表现| 低压高吃什么| 什么给我带来快乐| 疣是什么原因造成的| 女人梦见蛇是什么意思| 吃螃蟹不能喝什么饮料| 胃胀不消化吃什么药| 脾胃有火是什么症状| 9月30日是什么纪念日| 什么牌奶粉好| 办理公证需要什么材料| 琪是什么意思| 骨头炖什么好吃| pci是什么意思| 带状疱疹是什么病| 梦见种玉米是什么意思| 敏感肌是什么样的| 1957属什么生肖| 排长是什么军衔| 困水是什么意思| 道谢是什么意思| 检查脑袋应该挂什么科| 血糖低会出现什么症状| 金字旁加全字念什么| 人流前需要检查什么项目| 小三阳吃什么药| 下游是什么意思| 了凡四训讲的是什么| 东北有什么好玩的景点| 属龙的今年要注意什么| 牙齿酸胀是什么原因| bic是什么意思| 卤水是什么水| 什么的嫩芽| 肠道湿热吃什么药| 经常手淫会导致什么| 甘油三酯高吃什么药最好| 什么泡水喝杀幽门螺杆菌| 18岁属什么生肖| 麦高芬是什么意思| 地龙是什么生肖| 个子矮穿什么好看| 儿童上火了吃什么降火最快| 逆时针揉肚子起什么作用| 睡鼠吃什么| 护肝吃什么好| 美女如云什么意思| 飞机上什么东西不能带| 检查腰部挂什么科| 刘备儿子叫什么| 什么时间人流| 夏天喝什么汤| 头一直摇晃是什么病| 高烧吃什么药退烧快| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 企业专区 ? TI ? 【TIMSPM0MCU焕新大作战】+课程2任务1+数码管递减显示数字

共1条 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






共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
九死一生什么生肖 超声波是什么意思 水彩笔用什么能洗掉 灏是什么意思 层出不穷是什么意思
小鸟什么 老花眼有什么办法可以恢复 心肌桥是什么意思 咳嗽可以喝什么 七情六欲指的是什么
梦见苍蝇很多是什么意思 rue是什么意思 泡是什么意思 西药是什么药 承欢膝下是什么意思
每天拉肚子是什么原因引起的 什么是畸胎瘤 囊内可见卵黄囊是什么意思 为什么叫香港脚 老年人腿疼是什么原因引起的
天蝎座女和什么星座最配hlguo.com 目前除皱最好的方法是什么adwl56.com sma是什么病hcv8jop0ns4r.cn 鱼跃龙门是什么意思hcv8jop0ns7r.cn 甲子日是什么意思hcv7jop7ns4r.cn
upup是什么意思hcv8jop4ns1r.cn bb是什么意思hcv9jop0ns5r.cn 鲜章是什么意思hcv8jop2ns0r.cn 2013属什么生肖520myf.com 大什么什么手hcv7jop4ns6r.cn
三月份生日是什么星座hcv8jop5ns6r.cn 意有所指是什么意思hcv8jop8ns3r.cn 1999年发生了什么hcv9jop4ns9r.cn 省管干部是什么级别hcv9jop0ns9r.cn 211属于什么大学hcv7jop7ns4r.cn
桂鱼吃什么食物hcv8jop5ns6r.cn 舌苔白是什么原因beikeqingting.com 阳痿有什么症状hcv8jop3ns6r.cn egfr医学上是什么意思hcv8jop5ns3r.cn 什么入什么出gangsutong.com
百度